Re: adding partitioned tables to publications

Поиск
Список
Период
Сортировка
От Peter Eisentraut
Тема Re: adding partitioned tables to publications
Дата
Msg-id b6d8519b-353f-1949-79b5-460a6712e20f@2ndquadrant.com
обсуждение исходный текст
Ответ на Re: adding partitioned tables to publications  (Amit Langote <amitlangote09@gmail.com>)
Ответы Re: adding partitioned tables to publications  (Amit Langote <amitlangote09@gmail.com>)
Список pgsql-hackers
On 2019-12-06 08:48, Amit Langote wrote:
> 0001:  Adding a partitioned table to a publication implicitly adds all
> its partitions.  The receiving side must have tables matching the
> published partitions, which is typically the case, because the same
> partition tree is defined on both nodes.

This looks pretty good to me now.  But you need to make all the changed 
queries version-aware so that you can still replicate from and to older 
versions.  (For example, pg_partition_tree is not very old.)

This part looks a bit fishy:

+       /*
+        * If either table is partitioned, skip copying.  Individual 
partitions
+        * will be copied instead.
+        */
+       if (rel->rd_rel->relkind == RELKIND_PARTITIONED_TABLE ||
+               remote_relkind == RELKIND_PARTITIONED_TABLE)
+       {
+               logicalrep_rel_close(relmapentry, NoLock);
+               return;
+       }

I don't think you want to filter out a partitioned table on the local 
side, since (a) COPY can handle that, and (b) it's (as of this patch) an 
error to have a partitioned table in the subscription table set.

I'm not a fan of the new ValidateSubscriptionRel() function.  It's too 
obscure, especially the return value.  Doesn't seem worth it.

-- 
Peter Eisentraut              http://www.2ndQuadrant.com/
PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services



В списке pgsql-hackers по дате отправления:

Предыдущее
От: Stephen Frost
Дата:
Сообщение: Re: Fetching timeline during recovery
Следующее
От: Tom Lane
Дата:
Сообщение: Re: Optimization of NestLoop join in the case of guaranteed empty inner subtree