On Wed, Feb 21, 2024 at 5:55 PM Bertrand Drouvot <bertranddrouvot...@gmail.com> wrote: > > > As far as the 0001 patch is concerned, it reports the > > invalidation_reason as long as slot_contents.data.invalidated != > > RS_INVAL_NONE. I think this is okay. > > > > Thoughts? > > Yeah, looking at the code I agree that looks ok. OTOH, that looks confusing, > maybe we should add a few words about it in the doc?
I'll think about it. > Looking at v5-0001: > > + <entry role="catalog_table_entry"><para role="column_definition"> > + <structfield>invalidation_reason</structfield> <type>text</type> > + </para> > + <para> > > My initial thought was to put "conflict" value in this new field in case of > conflict (not to mention the conflict reason in it). With the current proposal > invalidation_reason could report the same as conflict_reason, which sounds > weird > to me. > > Does that make sense to you to use "conflict" as value in > "invalidation_reason" > when the slot has "conflict_reason" not NULL? I'm thinking the other way around - how about we revert https://git.postgresql.org/gitweb/?p=postgresql.git;a=commitdiff;h=007693f2a3ac2ac19affcb03ad43cdb36ccff5b5, that is, put in place "conflict" as a boolean and introduce invalidation_reason the text form. So, for logical slots, whenever the "conflict" column is true, the reason is found in invaldiation_reason column? How does it sound? Again the debate might be "conflict" vs "invalidation", but that looks clean IMHO. -- Bharath Rupireddy PostgreSQL Contributors Team RDS Open Source Databases Amazon Web Services: https://aws.amazon.com