On Fri, Jan 21, 2022 at 8:19 PM Alvaro Herrera <alvhe...@alvh.no-ip.org> wrote: > > If ATTACH PARTITION or CREATE TABLE .. PARTITION OF don't let you > specify replica identity, I suspect it's because both partitioning and > logical replication were developed in parallel, and neither gave too > much thought to the other. >
I think the reason CREATE TABLE .. syntax form doesn't have a way to specify RI is that we need to have an index for RI. Consider the below example: ---- CREATE TABLE parent (a int primary key, b int not null, c varchar) PARTITION BY RANGE(a); CREATE TABLE child PARTITION OF parent FOR VALUES FROM (0) TO (250); CREATE UNIQUE INDEX b_index on child(b); ALTER TABLE child REPLICA IDENTITY using INDEX b_index; ---- In this, the parent table's replica identity is the primary key(default) and the child table's replica identity is the b_index. I think if we want we can come up with some syntax to combine these steps and allow to specify replica identity during the second step (Create ... Partition) but not sure if we have a convincing reason for this feature per se. > > I suspect that a better way to attack this problem is to let ALTER TABLE > ... ATTACH PARTITION and CREATE TABLE .. PARTITION OF specify a replica > identity as necessary. > > My suggestion is to avoid painting us into a corner from which it will > be impossible to get out later. > Apart from the above reason, here we are just following the current model of how the update/delete behaves w.r.t RI. Now, I think in the future we can also think of uplifting some of the restrictions related to RI for filters if we find a good way to have columns values that are not in WAL. We have discussed this previously in this thread and thought that it is sensible to have a RI restriction for updates/deletes as the patch is doing for the first version. I am not against inventing some new syntaxes for row/column filter patches but there doesn't seem to be a very convincing reason for it and there is a good chance that we won't be able to accomplish that for the current version. -- With Regards, Amit Kapila.