On Thu, Dec 18, 2025 at 3:04 PM vignesh C <[email protected]> wrote: > > On Thu, 18 Dec 2025 at 12:37, Shlok Kyal <[email protected]> wrote: > > > > Hi Team, > > > > While working on another thread, I noticed a bug introduced by commit > > as part of this thread. > > In function pg_get_publication_tables, We have code: > > ``` > > if (pub_elem->alltables) > > pub_elem_tables = GetAllPublicationRelations(RELKIND_RELATION, > > pub_elem->pubviaroot); > > else > > { > > List *relids, > > *schemarelids; > > > > relids = GetPublicationRelations(pub_elem->oid, > > pub_elem->pubviaroot ? > > PUBLICATION_PART_ROOT : > > PUBLICATION_PART_LEAF); > > schemarelids = GetAllSchemaPublicationRelations(pub_elem->oid, > > pub_elem->pubviaroot ? > > PUBLICATION_PART_ROOT : > > PUBLICATION_PART_LEAF); > > pub_elem_tables = list_concat_unique_oid(relids, schemarelids); > > } > > ``` > > > > So, when we create an 'ALL SEQUENCE publication' and we execute > > 'SELECT * from pg_publication_tables' > > We will enter the else condition in the above code, which does not > > seem correct to me. > > It will call functions which are not required to be called. It will > > also call the function 'GetPublicationRelations' which contradicts the > > comment above this function. > > > > Similar issue is present for functions "InvalidatePubRelSyncCache" and > > "AlterPublicationOptions". > > Thanks Shlok for reporting these issues, In the areas highlighted, we > can skip processing for sequences-only publications. The attached > patch implements these changes. >
We have '!pub->alltables' check at 2 more places: -- pgoutput_row_filter_init() -- pg_get_publication_tables() Do we need to worry about '!allsequences' at these 2 places as well? thanks Shveta
