@makaio/storage-pg 1.0.0-dev-1782138936821 → 1.0.0-dev-1783370124483

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,3 @@
1
+ ALTER TABLE "sessions" ADD COLUMN "is_sidechain" boolean;--> statement-breakpoint
2
+ ALTER TABLE "turns" ADD COLUMN "turn_anchor_id" text;--> statement-breakpoint
3
+ CREATE UNIQUE INDEX "uniq_turns_session_anchor" ON "turns" USING btree ("session_id","turn_anchor_id");
@@ -0,0 +1,37 @@
1
+ WITH ranked_messages AS (
2
+ SELECT
3
+ message_id,
4
+ FIRST_VALUE(message_id) OVER (
5
+ PARTITION BY adapter_message_id, session_id
6
+ ORDER BY timestamp, message_id
7
+ ) AS keeper_message_id,
8
+ ROW_NUMBER() OVER (
9
+ PARTITION BY adapter_message_id, session_id
10
+ ORDER BY timestamp, message_id
11
+ ) AS duplicate_rank
12
+ FROM messages
13
+ WHERE adapter_message_id IS NOT NULL
14
+ )
15
+ UPDATE messages
16
+ SET edit_of = ranked_messages.keeper_message_id
17
+ FROM ranked_messages
18
+ WHERE messages.edit_of = ranked_messages.message_id
19
+ AND ranked_messages.duplicate_rank > 1;--> statement-breakpoint
20
+ WITH ranked_messages AS (
21
+ SELECT
22
+ message_id,
23
+ ROW_NUMBER() OVER (
24
+ PARTITION BY adapter_message_id, session_id
25
+ ORDER BY timestamp, message_id
26
+ ) AS duplicate_rank
27
+ FROM messages
28
+ WHERE adapter_message_id IS NOT NULL
29
+ )
30
+ DELETE FROM messages
31
+ USING ranked_messages
32
+ WHERE messages.message_id = ranked_messages.message_id
33
+ AND ranked_messages.duplicate_rank > 1;--> statement-breakpoint
34
+ DROP INDEX "idx_messages_adapter_message_id";--> statement-breakpoint
35
+ -- Migrations run transactionally during startup before bus handlers accept writes,
36
+ -- so rollback safety is preferred over CREATE INDEX CONCURRENTLY here.
37
+ CREATE UNIQUE INDEX "uniq_messages_adapter_message_id_session" ON "messages" USING btree ("adapter_message_id","session_id");