Re: Proposal: Conflict log history table for Logical Replication - Mailing list pgsql-hackers
| From | shveta malik |
|---|---|
| Subject | Re: Proposal: Conflict log history table for Logical Replication |
| Date | |
| Msg-id | CAJpy0uCUGb4u3t5pq9QnPC_jnr9N23bTe_rPYHM4XGW1yyUA8g@mail.gmail.com Whole thread |
| In response to | Re: Proposal: Conflict log history table for Logical Replication (Dilip Kumar <dilipbalaut@gmail.com>) |
| Responses |
Re: Proposal: Conflict log history table for Logical Replication
|
| List | pgsql-hackers |
On Mon, Apr 27, 2026 at 9:51 PM Dilip Kumar <dilipbalaut@gmail.com> wrote: > > On Mon, Apr 27, 2026 at 3:08 PM shveta malik <shveta.malik@gmail.com> wrote: > > > > Few comments on 001 alone: > > > > > > 1) > > postgres=# create publication pub1 for all tables except (table temp_table); > > ERROR: cannot specify relation "temp_table" in the publication EXCEPT clause > > DETAIL: This operation is not supported for temporary tables. > > > > postgres=# create publication pub1 for all tables except (table > > pg_conflict.pg_conflict_16395); > > ERROR: cannot add relation "pg_conflict.pg_conflict_16395" to publication > > DETAIL: This operation is not supported for conflict log tables. > > > > We shall change the error message for CLT in alignement with new > > EXCEPT error message added recently. > > Yeah we should do that. I see the string we used in > check_publication_add_relation() is non-schema qualified e.g. If you > see the example below, the schemaname is omitted in the error message. > Ideally, I would like this to be schema qualified but that can be > fixed separately. I agree. Initially I thought it might not be needed for temp table error. But this could be confusing for unlogged tables. I created 2 tables: public.t1 (logged) and s1.t1 (unlogged), the error became unclear for unlogged tables as it referred to t1 instead of s1.t1. Yes, this can be done in a new thread. > Therefore, I think we can use the same "errormsg" > for throwing the error for the conflict log table as well > > postgres[750473]=# create publication pub1 for all tables except > (table pg_temp_7.temp_table); > ERROR: 22023: cannot specify relation "temp_table" in the publication > EXCEPT clause > DETAIL: This operation is not supported for temporary tables. > LOCATION: check_publication_add_relation, pg_publication.c:90 > > > 2) > > \dRs+ > > List of subscriptions > > > > Name | .... Conflict log destination | Conflict log table > > sub1 | table | pg_conflict_16395 > > > > I know we discussed earlier whether to qualify the CLT with the schema > > name in the above output, and one of us suggested it was not needed. > > But on revisiting this thread, I wonder if including the > > schema-qualified name would be useful, as it makes it easier for users > > to refer to it quickly when needed. It took me a while to recall the > > schema name here. > > Yeah we can add schema name, I would change this. > > > 3) > > Also I would like to know which one is better here: > > > > \dRs+ giving 'Conflict log table' in tabular format (current way) > > > > Or giving it as 'Conflict log table' at the end, like: > > > > Conflict Log Table: > > "pg_conflict.pg_conflict_16395" > > > > I’m slightly inclined toward option 2, similar to how \dRp shows > > “Tables” and “Except tables” at the end; it catches the eye faster. > > But I don't have a strong opinion here. I'd be interested to hear what > > others think. > > I am not completely convinced, but I don't have a strong opinion > against it, so as you said, let's hear from others as well. > > > 4) > > When we create CLT during create-sub or alter-sub, can we please log > > it to logile, something like: > > LOG: created conflict log table "pg_conflict.pg_conflict_16395" for > > subscription "sub1" > > I will change this in the new version > > > -- > Regards, > Dilip Kumar > Google
pgsql-hackers by date: