Skip to content

Commit 5ed5eab

Browse files
committed
chore: add sequin publication for packages-db tables
Signed-off-by: Joana Maia <jmaia@contractor.linuxfoundation.org>
1 parent b9c833b commit 5ed5eab

1 file changed

Lines changed: 52 additions & 0 deletions

File tree

Lines changed: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,52 @@
1+
DO $$
2+
BEGIN
3+
IF NOT EXISTS (
4+
SELECT 1 FROM pg_publication WHERE pubname = 'sequin_pub'
5+
) THEN
6+
CREATE PUBLICATION sequin_pub
7+
FOR TABLE
8+
packages,
9+
versions,
10+
package_dependencies,
11+
package_maintainers,
12+
package_repos,
13+
maintainers,
14+
repos,
15+
repo_scorecard_checks,
16+
advisories,
17+
advisory_packages,
18+
advisory_affected_ranges
19+
WITH (publish_via_partition_root = true);
20+
END IF;
21+
END$$;
22+
23+
ALTER TABLE public.packages REPLICA IDENTITY FULL;
24+
ALTER TABLE public.versions REPLICA IDENTITY FULL;
25+
ALTER TABLE public.package_dependencies REPLICA IDENTITY FULL;
26+
ALTER TABLE public.package_maintainers REPLICA IDENTITY FULL;
27+
ALTER TABLE public.package_repos REPLICA IDENTITY FULL;
28+
ALTER TABLE public.maintainers REPLICA IDENTITY FULL;
29+
ALTER TABLE public.repos REPLICA IDENTITY FULL;
30+
ALTER TABLE public.repo_scorecard_checks REPLICA IDENTITY FULL;
31+
ALTER TABLE public.advisories REPLICA IDENTITY FULL;
32+
ALTER TABLE public.advisory_packages REPLICA IDENTITY FULL;
33+
ALTER TABLE public.advisory_affected_ranges REPLICA IDENTITY FULL;
34+
35+
-- versions (32) and package_dependencies (64) are hash-partitioned. REPLICA
36+
-- IDENTITY on the partitioned root does not cascade; set it on every leaf.
37+
DO $$
38+
DECLARE
39+
parent_table text;
40+
partition_oid regclass;
41+
BEGIN
42+
FOREACH parent_table IN ARRAY ARRAY['public.versions', 'public.package_dependencies']
43+
LOOP
44+
FOR partition_oid IN
45+
SELECT inhrelid::regclass
46+
FROM pg_inherits
47+
WHERE inhparent = parent_table::regclass
48+
LOOP
49+
EXECUTE format('ALTER TABLE %s REPLICA IDENTITY FULL', partition_oid);
50+
END LOOP;
51+
END LOOP;
52+
END$$;

0 commit comments

Comments
 (0)