{-# 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 :: 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 :: 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); |]