v43_0001_amit.1.patch.txt
text/plain
Filename: v43_0001_amit.1.patch.txt
Type: text/plain
Part: 0
diff --git a/src/backend/replication/pgoutput/pgoutput.c b/src/backend/replication/pgoutput/pgoutput.c
index d59a8f5032..17aeb80637 100644
--- a/src/backend/replication/pgoutput/pgoutput.c
+++ b/src/backend/replication/pgoutput/pgoutput.c
@@ -1081,7 +1081,7 @@ pgoutput_column_list_init(PGOutputData *data, List *publications,
int i;
int nliveatts = 0;
TupleDesc desc = RelationGetDescr(relation);
- bool gencolpresent = false;
+ bool att_gen_present = false;
pgoutput_ensure_entry_cxt(data, entry);
@@ -1098,20 +1098,19 @@ pgoutput_column_list_init(PGOutputData *data, List *publications,
if (att->attgenerated)
{
- if (bms_is_member(att->attnum, cols))
- gencolpresent = true;
-
- continue;
+ att_gen_present = true;
+ break;
}
nliveatts++;
}
/*
- * If column list includes all the columns of the table
- * and there are no generated columns, set it to NULL.
+ * Generated attributes are published only when they are
+ * present in the column list. Otherwise, a NULL column
+ * list means publish all columns.
*/
- if (bms_num_members(cols) == nliveatts && !gencolpresent)
+ if (!att_gen_present && bms_num_members(cols) == nliveatts)
{
bms_free(cols);
cols = NULL;