Sync telesrv b96f2dd (feat(bot): complete keyboards callbacks and durable delivery). Skipped private docs and preserved public README files per sync rules; normalized the appearance seed log label for public naming.
49 lines
2.3 KiB
SQL
49 lines
2.3 KiB
SQL
ALTER TABLE public.bot_api_updates
|
|
ADD COLUMN callback_inline_dc_id integer NOT NULL DEFAULT 0,
|
|
ADD COLUMN callback_inline_owner_id bigint NOT NULL DEFAULT 0,
|
|
ADD COLUMN callback_inline_message_id integer NOT NULL DEFAULT 0,
|
|
ADD COLUMN callback_inline_access_hash bigint NOT NULL DEFAULT 0;
|
|
|
|
ALTER TABLE public.bot_api_updates
|
|
DROP CONSTRAINT bot_api_updates_callback_shape_check,
|
|
DROP CONSTRAINT bot_api_updates_peer_type_check,
|
|
DROP CONSTRAINT bot_api_updates_peer_id_check,
|
|
DROP CONSTRAINT bot_api_updates_message_id_check;
|
|
|
|
ALTER TABLE public.bot_api_updates
|
|
ADD CONSTRAINT bot_api_updates_peer_type_check CHECK (
|
|
peer_type IN ('user', 'channel')
|
|
OR (update_kind = 'callback_query' AND peer_type = '')
|
|
),
|
|
ADD CONSTRAINT bot_api_updates_peer_id_check CHECK (
|
|
peer_id > 0
|
|
OR (update_kind = 'callback_query' AND peer_id = 0)
|
|
),
|
|
ADD CONSTRAINT bot_api_updates_message_id_check CHECK (
|
|
message_id > 0
|
|
OR (update_kind = 'callback_query' AND message_id = 0)
|
|
),
|
|
ADD CONSTRAINT bot_api_updates_callback_shape_check CHECK (
|
|
(update_kind = 'callback_query'
|
|
AND callback_query_id <> 0
|
|
AND callback_user_id > 0
|
|
AND callback_chat_instance <> 0
|
|
AND COALESCE(octet_length(callback_data), 0) <= 64
|
|
AND source_pts = 0
|
|
AND (
|
|
(peer_type IN ('user', 'channel') AND peer_id > 0 AND message_id > 0
|
|
AND callback_inline_dc_id = 0 AND callback_inline_owner_id = 0
|
|
AND callback_inline_message_id = 0 AND callback_inline_access_hash = 0)
|
|
OR
|
|
(peer_type = '' AND peer_id = 0 AND message_id = 0
|
|
AND callback_inline_dc_id > 0 AND callback_inline_owner_id > 0
|
|
AND callback_inline_message_id > 0 AND callback_inline_access_hash <> 0)
|
|
))
|
|
OR
|
|
(update_kind IN ('message', 'edited_message')
|
|
AND peer_type IN ('user', 'channel') AND peer_id > 0 AND message_id > 0
|
|
AND callback_query_id = 0 AND callback_user_id = 0
|
|
AND callback_chat_instance = 0 AND callback_data IS NULL
|
|
AND callback_inline_dc_id = 0 AND callback_inline_owner_id = 0
|
|
AND callback_inline_message_id = 0 AND callback_inline_access_hash = 0)
|
|
);
|