Re: Restrict publishing of partitioned table with a foreign table as partition
От | vignesh C |
---|---|
Тема | Re: Restrict publishing of partitioned table with a foreign table as partition |
Дата | |
Msg-id | CALDaNm2+eL22Sbvj74uS37xvt=haQWcOwP15QnDuVeYsjHiffw@mail.gmail.com обсуждение исходный текст |
Ответ на | Re: Restrict publishing of partitioned table with a foreign table as partition (vignesh C <vignesh21@gmail.com>) |
Список | pgsql-hackers |
On Fri, 14 Feb 2025 at 12:59, Shlok Kyal <shlok.kyal.oss@gmail.com> wrote: > > I have used the changes suggested by you. Also I have updated the > comments and the function name. There is another concurrency issue possible: +/* Check if a partitioned table has a foreign partition */ +bool +check_partrel_has_foreign_table(Form_pg_class relform) +{ + bool has_foreign_tbl = false; + + if (relform->relkind == RELKIND_PARTITIONED_TABLE) + { + List *relids = NIL; + + relids = find_all_inheritors(relform->oid, NoLock, NULL); Create a publication with publish_via_partition_root as true, hold the execution after check_partrel_has_foreign_table execution finishes. Then parallely execute the following: CREATE TABLE t1(id int) PARTITION BY RANGE(id); CREATE TABLE part1 PARTITION OF t1 FOR VALUES FROM (0) TO (5); CREATE TABLE part2 PARTITION OF t1 FOR VALUES FROM (5) TO (15) PARTITION BY RANGE(id); CREATE FOREIGN TABLE part2_1 PARTITION OF part2 FOR VALUES FROM (10) TO (15) SERVER fdw Now both the partitioned table having foreign table and a publication will be created. Regards, Vignesh
В списке pgsql-hackers по дате отправления: