> +     bool            am_partition = false;
>...
>       Assert(!isnull);
>       lrel->relkind = DatumGetChar(slot_getattr(slot, 3, &isnull));
>       Assert(!isnull);
> +     am_partition = DatumGetChar(slot_getattr(slot, 4, &isnull));

I think this needs to be GetBool.
You should Assert(!isnull) like the others.
Also, I think it doesn't need to be initialized to "false".

> +             /*
> +              * Even if the user listed all columns in the column list, we 
> cannot
> +              * allow a column list to be specified when REPLICA IDENTITY is 
> FULL;
> +              * that would cause problems if a new column is added later, 
> because
> +              * that could would have to be included (because of being part 
> of the

could would is wrong

> +     /*
> +      * Translate list of columns to attnums. We prohibit system attributes 
> and
> +      * make sure there are no duplicate columns.
> +      *
> +      */

extraneous line

> +/*
> + * Gets a list of OIDs of all column-partial publications of the given
> + * relation, that is, those that specify a column list.

I would call this a "partial-column" publication.

> +                                     errmsg("cannot set REPLICA IDENTITY 
> FULL when column-partial publications exist"));
> +      * Check column-partial publications.  All publications have to include 
> all

same

> +     /*
> +      * Store the column names only if they are contained in column filter

period(.)

> +      * LogicalRepRelation will only contain attributes corresponding to 
> those
> +      * specficied in column filters.

specified

> --- a/src/include/catalog/pg_publication_rel.h
> +++ b/src/include/catalog/pg_publication_rel.h
> @@ -31,6 +31,9 @@ CATALOG(pg_publication_rel,6106,PublicationRelRelationId)
>       Oid                     oid;                    /* oid */
>       Oid                     prpubid BKI_LOOKUP(pg_publication); /* Oid of 
> the publication */
>       Oid                     prrelid BKI_LOOKUP(pg_class);   /* Oid of the 
> relation */
> +#ifdef CATALOG_VARLEN
> +     int2vector      prattrs;                /* Variable length field starts 
> here */
> +#endif

The language in the pre-existing comments is better:
        /* variable-length fields start here */

> @@ -791,12 +875,13 @@ fetch_remote_table_info(char *nspname, char *relname,
>
>                 ExecClearTuple(slot);
>         }
> +
>         ExecDropSingleTupleTableSlot(slot);
> +       walrcv_clear_result(res);
> +       pfree(cmd.data);
>
>         lrel->natts = natt;
>
> -       walrcv_clear_result(res);
> -       pfree(cmd.data);
>  }

The blank line after "lrel->natts = natt;" should be removed.


Reply via email to