merged from gramsrv upstream

This commit is contained in:
onysd 2026-09-01 12:06:31 +03:00
parent 79c64ee916
commit 21a0856587
651 changed files with 54774 additions and 4590 deletions

View file

@ -0,0 +1,25 @@
-- system_key is the constructor-routing identity for global sticker sets. More
-- than one row makes messages.getStickerSet/inputStickerSet* nondeterministic
-- and can alternate clients between different catalogs after a restart.
-- StatusPack is now imported from the official export. Preserve the historical
-- synthesized set as an addressable short-name catalog, but only remove its
-- routing key when another real default-status set already owns that key.
UPDATE public.sticker_sets AS synthesized
SET system_key = '', updated_at = now()
WHERE synthesized.id = 7777000000000001
AND synthesized.system_key = 'emoji_default_statuses'
AND EXISTS (
SELECT 1
FROM public.sticker_sets AS real_set
WHERE real_set.system_key = synthesized.system_key
AND real_set.id <> synthesized.id
);
DROP INDEX IF EXISTS public.sticker_sets_system_key_idx;
-- Fail closed on any other duplicate instead of making the read path choose an
-- arbitrary row. Empty keys are ordinary/non-system sets and are not unique.
CREATE UNIQUE INDEX sticker_sets_system_key_idx
ON public.sticker_sets USING btree (system_key)
WHERE system_key <> ''::text;