diff --git a/simplexmq.cabal b/simplexmq.cabal index 237e66e89..b1c19bfdf 100644 --- a/simplexmq.cabal +++ b/simplexmq.cabal @@ -86,6 +86,7 @@ library Simplex.Messaging.Agent.Store.SQLite.Migrations.M20230615_ratchet_sync Simplex.Messaging.Agent.Store.SQLite.Migrations.M20230701_delivery_receipts Simplex.Messaging.Agent.Store.SQLite.Migrations.M20230720_delete_expired_messages + Simplex.Messaging.Agent.Store.SQLite.Migrations.M20230722_indexes Simplex.Messaging.Agent.TAsyncs Simplex.Messaging.Agent.TRcvQueues Simplex.Messaging.Client diff --git a/src/Simplex/Messaging/Agent/Store/SQLite/Migrations.hs b/src/Simplex/Messaging/Agent/Store/SQLite/Migrations.hs index 704a645ee..e3715c4c9 100644 --- a/src/Simplex/Messaging/Agent/Store/SQLite/Migrations.hs +++ b/src/Simplex/Messaging/Agent/Store/SQLite/Migrations.hs @@ -65,6 +65,7 @@ import Simplex.Messaging.Agent.Store.SQLite.Migrations.M20230531_switch_status import Simplex.Messaging.Agent.Store.SQLite.Migrations.M20230615_ratchet_sync import Simplex.Messaging.Agent.Store.SQLite.Migrations.M20230701_delivery_receipts import Simplex.Messaging.Agent.Store.SQLite.Migrations.M20230720_delete_expired_messages +import Simplex.Messaging.Agent.Store.SQLite.Migrations.M20230722_indexes import Simplex.Messaging.Encoding.String import Simplex.Messaging.Parsers (dropPrefix, sumTypeJSON) import Simplex.Messaging.Transport.Client (TransportHost) @@ -95,7 +96,8 @@ schemaMigrations = ("m20230531_switch_status", m20230531_switch_status, Just down_m20230531_switch_status), ("m20230615_ratchet_sync", m20230615_ratchet_sync, Just down_m20230615_ratchet_sync), ("m20230701_delivery_receipts", m20230701_delivery_receipts, Just down_m20230701_delivery_receipts), - ("m20230720_delete_expired_messages", m20230720_delete_expired_messages, Just down_m20230720_delete_expired_messages) + ("m20230720_delete_expired_messages", m20230720_delete_expired_messages, Just down_m20230720_delete_expired_messages), + ("m20230722_indexes", m20230722_indexes, Just down_m20230722_indexes) ] -- | The list of migrations in ascending order by date diff --git a/src/Simplex/Messaging/Agent/Store/SQLite/Migrations/M20230722_indexes.hs b/src/Simplex/Messaging/Agent/Store/SQLite/Migrations/M20230722_indexes.hs new file mode 100644 index 000000000..5c41a5f20 --- /dev/null +++ b/src/Simplex/Messaging/Agent/Store/SQLite/Migrations/M20230722_indexes.hs @@ -0,0 +1,20 @@ +{-# LANGUAGE QuasiQuotes #-} + +module Simplex.Messaging.Agent.Store.SQLite.Migrations.M20230722_indexes where + +import Database.SQLite.Simple (Query) +import Database.SQLite.Simple.QQ (sql) + +m20230722_indexes :: Query +m20230722_indexes = + [sql| +CREATE INDEX idx_processed_ratchet_key_hashes_created_at ON processed_ratchet_key_hashes(created_at); +CREATE INDEX idx_encrypted_rcv_message_hashes_created_at ON encrypted_rcv_message_hashes(created_at); +|] + +down_m20230722_indexes :: Query +down_m20230722_indexes = + [sql| +DROP INDEX idx_encrypted_rcv_message_hashes_created_at; +DROP INDEX idx_processed_ratchet_key_hashes_created_at; +|] diff --git a/src/Simplex/Messaging/Agent/Store/SQLite/Migrations/agent_schema.sql b/src/Simplex/Messaging/Agent/Store/SQLite/Migrations/agent_schema.sql index 898be9721..000f6812b 100644 --- a/src/Simplex/Messaging/Agent/Store/SQLite/Migrations/agent_schema.sql +++ b/src/Simplex/Messaging/Agent/Store/SQLite/Migrations/agent_schema.sql @@ -471,3 +471,9 @@ CREATE INDEX idx_messages_internal_snd_id_ts ON messages( internal_snd_id, internal_ts ); +CREATE INDEX idx_processed_ratchet_key_hashes_created_at ON processed_ratchet_key_hashes( + created_at +); +CREATE INDEX idx_encrypted_rcv_message_hashes_created_at ON encrypted_rcv_message_hashes( + created_at +);