owpengram-server/deploy/migrations/0020_profile_message_state.up.sql
2026-06-04 01:37:39 +08:00

46 lines
1.5 KiB
SQL

-- 0020_profile_message_state: profile about, message edits, and read outbox updates.
ALTER TABLE users
ADD COLUMN IF NOT EXISTS about VARCHAR(255) NOT NULL DEFAULT '';
ALTER TABLE private_messages
ADD COLUMN IF NOT EXISTS edit_date INT NOT NULL DEFAULT 0;
ALTER TABLE message_boxes
ADD COLUMN IF NOT EXISTS edit_date INT NOT NULL DEFAULT 0;
CREATE INDEX IF NOT EXISTS message_boxes_read_receipt_idx
ON message_boxes (owner_user_id, peer_type, peer_id, box_id DESC)
WHERE NOT deleted AND NOT outgoing;
CREATE INDEX IF NOT EXISTS message_boxes_private_sender_owner_idx
ON message_boxes (message_sender_id, private_message_id, owner_user_id)
WHERE NOT deleted;
CREATE INDEX IF NOT EXISTS user_update_events_read_outbox_idx
ON user_update_events (user_id, peer_type, peer_id, max_id, date)
WHERE event_type = 'read_history_outbox';
ALTER TABLE user_update_events
DROP CONSTRAINT IF EXISTS user_update_events_type_check;
ALTER TABLE user_update_events
ADD CONSTRAINT user_update_events_type_check CHECK (
event_type IN (
'new_message',
'read_history_inbox',
'read_history_outbox',
'edit_message',
'contacts_reset',
'dialog_pinned',
'pinned_dialogs',
'dialog_unread_mark',
'peer_settings',
'delete_messages',
'dialog_filter',
'dialog_filter_order',
'dialog_filters',
'folder_peers',
'noop'
)
);