diff --git a/src/db/internal/statements.cpp b/src/db/internal/statements.cpp index 328cf0c59..b0bf05cc8 100644 --- a/src/db/internal/statements.cpp +++ b/src/db/internal/statements.cpp @@ -42,7 +42,7 @@ namespace Statements { // TODO: Improve, check backends. constexpr AbstractStatement (const Statement &a, const Statement &b) : mSql{ a.sql, b.sql } {} - const char *getSql (Backend backend) const { + const char *get (Backend backend) const { return backend == Backend::Mysql && mSql[1] ? mSql[1] : mSql[0]; } @@ -85,7 +85,7 @@ namespace Statements { // Select statements. // --------------------------------------------------------------------------- - constexpr const char *select[SelectCount] = { + constexpr AbstractStatement select[SelectCount] = { [SelectSipAddressId] = R"( SELECT id FROM sip_address @@ -126,7 +126,7 @@ namespace Statements { // Select statements. // --------------------------------------------------------------------------- - constexpr const char *insert[InsertCount] = { + constexpr AbstractStatement insert[InsertCount] = { [InsertOneToOneChatRoom] = R"( INSERT INTO one_to_one_chat_room ( chat_room_id, participant_a_sip_address_id, participant_b_sip_address_id @@ -139,18 +139,15 @@ namespace Statements { // --------------------------------------------------------------------------- const char *get (Create createStmt, AbstractDb::Backend backend) { - (void)backend; - return createStmt >= Create::CreateCount ? nullptr : create[createStmt].getSql(backend); + return createStmt >= Create::CreateCount ? nullptr : create[createStmt].get(backend); } const char *get (Select selectStmt, AbstractDb::Backend backend) { - (void)backend; - return selectStmt >= Select::SelectCount ? nullptr : select[selectStmt]; + return selectStmt >= Select::SelectCount ? nullptr : select[selectStmt].get(backend); } const char *get (Insert insertStmt, AbstractDb::Backend backend) { - (void)backend; - return insertStmt >= Insert::InsertCount ? nullptr : insert[insertStmt]; + return insertStmt >= Insert::InsertCount ? nullptr : insert[insertStmt].get(backend); } } diff --git a/src/db/main-db.cpp b/src/db/main-db.cpp index ca2e97359..2c2d7f003 100644 --- a/src/db/main-db.cpp +++ b/src/db/main-db.cpp @@ -1697,7 +1697,9 @@ void MainDb::init () { if (getBackend() == Backend::Mysql) *session << - "CREATE TRIGGER IF NOT EXISTS chat_message_participant_deleter" + "DROP TRIGGER IF EXISTS chat_message_participant_deleter"; + *session << + "CREATE TRIGGER chat_message_participant_deleter" " AFTER UPDATE ON conference_chat_message_event FOR EACH ROW" " BEGIN" " IF NEW.state = " + Utils::toString(int(ChatMessage::State::Displayed)) + " THEN"