Files
simplex-chat/src/Simplex/Chat/Store/SQLite/Migrations/M20241125_indexes.hs
T
e05a35e26e core: support postgres backend (#5403)
* postgres: modules structure (#5401)

* postgres: schema, field conversions (#5430)

* postgres: rework chat list pagination query (#5441)

* prepare cabal for merge

* restore cabal changes

* simplexmq

* postgres: implementation wip (tests don't pass) (#5481)

* restore ios file

* postgres: implementation - tests pass (#5487)

* refactor DB options

* refactor

* line

* style

* style

* refactor

* $

* update simplexmq

* constraintError

* handleDBErrors

* fix

* remove param

* Ok

* case

* case

* case

* comment

---------

Co-authored-by: Evgeny Poberezkin <evgeny@poberezkin.com>
2025-01-10 11:27:29 +00:00

51 lines
1.5 KiB
Haskell

{-# LANGUAGE QuasiQuotes #-}
module Simplex.Chat.Store.SQLite.Migrations.M20241125_indexes where
import Database.SQLite.Simple (Query)
import Database.SQLite.Simple.QQ (sql)
m20241125_indexes :: Query
m20241125_indexes =
[sql|
-- contacts
DROP INDEX idx_chat_items_contacts;
DROP INDEX idx_chat_items_contacts_item_status;
CREATE INDEX idx_chat_items_contacts ON chat_items(user_id, contact_id, item_status, created_at);
-- groups
DROP INDEX idx_chat_items_groups;
DROP INDEX idx_chat_items_groups_item_status;
CREATE INDEX idx_chat_items_groups ON chat_items(user_id, group_id, item_status, item_ts);
CREATE INDEX idx_chat_items_groups_item_ts ON chat_items(user_id, group_id, item_ts);
-- notes
DROP INDEX idx_chat_items_notes_item_status;
CREATE INDEX idx_chat_items_notes ON chat_items(user_id, note_folder_id, item_status, created_at);
|]
down_m20241125_indexes :: Query
down_m20241125_indexes =
[sql|
-- contacts
DROP INDEX idx_chat_items_contacts;
CREATE INDEX idx_chat_items_contacts ON chat_items(user_id, contact_id, chat_item_id);
CREATE INDEX idx_chat_items_contacts_item_status on chat_items (user_id, contact_id, item_status);
-- groups
DROP INDEX idx_chat_items_groups;
DROP INDEX idx_chat_items_groups_item_ts;
CREATE INDEX idx_chat_items_groups ON chat_items(user_id, group_id, item_ts, chat_item_id);
CREATE INDEX idx_chat_items_groups_item_status on chat_items (user_id, group_id, item_status);
-- notes
DROP INDEX idx_chat_items_notes;
CREATE INDEX idx_chat_items_notes_item_status on chat_items (user_id, note_folder_id, item_status);
|]