Re: logical decoding and replication of sequences - Mailing list pgsql-hackers

From Tomas Vondra
Subject Re: logical decoding and replication of sequences
Date
Msg-id aaeab7d1-bfda-5753-30f0-4b544fd4b9aa@enterprisedb.com
Whole thread Raw
In response to Re: logical decoding and replication of sequences  (vignesh C <vignesh21@gmail.com>)
List pgsql-hackers
On 3/25/22 15:34, vignesh C wrote:
> On Fri, Mar 25, 2022 at 3:29 AM Tomas Vondra
> <tomas.vondra@enterprisedb.com> wrote:
>>
>> Hi,
>>
>> Pushed, after going through the patch once more, addressed the remaining
>> FIXMEs, corrected a couple places in the docs and comments, etc. Minor
>> tweaks, nothing important.
> 
> While rebasing patch [1] I found a couple of comments:
> static void
>  ObjectsInPublicationToOids(List *pubobjspec_list, ParseState *pstate,
> -    List **rels, List **schemas)
> +    List **tables, List **sequences,
> +    List **tables_schemas, List **sequences_schemas,
> +    List **schemas)
>  {
>   ListCell   *cell;
>   PublicationObjSpec *pubobj;
> @@ -185,12 +194,23 @@ ObjectsInPublicationToOids(List
> *pubobjspec_list, ParseState *pstate,
>   switch (pubobj->pubobjtype)
>   {
>   case PUBLICATIONOBJ_TABLE:
> - *rels = lappend(*rels, pubobj->pubtable);
> + *tables = lappend(*tables, pubobj->pubtable);
> + break;
> + case PUBLICATIONOBJ_SEQUENCE:
> + *sequences = lappend(*sequences, pubobj->pubtable);
>   break;
>   case PUBLICATIONOBJ_TABLES_IN_SCHEMA:
>   schemaid = get_namespace_oid(pubobj->name, false);
> 
>   /* Filter out duplicates if user specifies "sch1, sch1" */
> + *tables_schemas = list_append_unique_oid(*tables_schemas, schemaid);
> + *schemas = list_append_unique_oid(*schemas, schemaid);
> + break;
> 
> Now tables_schemas and sequence_schemas are being updated and used in
> ObjectsInPublicationToOids, schema parameter is no longer being used
> after processing in ObjectsInPublicationToOids, I felt we can remove
> that parameter.
> 

Thanks! That's a nice simplification, I'll get that pushed in a couple
minutes.

>   /* ALTER PUBLICATION <name> ADD */
>   else if (Matches("ALTER", "PUBLICATION", MatchAny, "ADD"))
> - COMPLETE_WITH("ALL TABLES IN SCHEMA", "TABLE");
> + COMPLETE_WITH("ALL TABLES IN SCHEMA", "ALL SEQUENCES IN SCHEMA",
> "TABLE", "SEQUENCE");
> 
> Tab completion of alter publication for ADD and DROP is the same, we
> could combine it.
> 

We could, but I find these combined rules harder to read, so I'll keep
the current tab-completion.

> Attached a patch for the same.
> Thoughts?

Thanks for taking a look! Appreciated.

> 
> [1] - https://www.postgresql.org/message-id/CALDaNm3%3DJrucjhiiwsYQw5-PGtBHFONa6F7hhWCXMsGvh%3DtamA%40mail.gmail.com
> 

regars

-- 
Tomas Vondra
EnterpriseDB: http://www.enterprisedb.com
The Enterprise PostgreSQL Company



pgsql-hackers by date:

Previous
From: Robert Haas
Date:
Subject: Re: SSL/TLS instead of SSL in docs
Next
From: Andrew Dunstan
Date:
Subject: Re: pgsql: Add 'basebackup_to_shell' contrib module.