From 749b7adbf7bbfbf6428f99be57b7dce2f52f51db Mon Sep 17 00:00:00 2001 From: Peter Eisentraut Date: Tue, 4 Feb 2025 17:31:42 +0100 Subject: [PATCH v14 2/3] Fixup review Shlok Kyal 2025-01-28 --- src/backend/commands/publicationcmds.c | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) diff --git a/src/backend/commands/publicationcmds.c b/src/backend/commands/publicationcmds.c index 801560c8fdc..06fb1823963 100644 --- a/src/backend/commands/publicationcmds.c +++ b/src/backend/commands/publicationcmds.c @@ -405,6 +405,14 @@ pub_contains_invalid_column(Oid pubid, Relation relation, List *ancestors, relation->rd_att->constr->has_generated_stored) *invalid_gen_col = true; + /* + * Virtual generated columns are currently not supported for logical + * replication at all. + */ + if (relation->rd_att->constr && + relation->rd_att->constr->has_generated_virtual) + *invalid_gen_col = true; + if (*invalid_gen_col && *invalid_column_list) return true; } @@ -431,7 +439,16 @@ pub_contains_invalid_column(Oid pubid, Relation relation, List *ancestors, * The publish_generated_columns option must be set to stored if * the REPLICA IDENTITY contains any stored generated column. */ - if (pubgencols_type != PUBLISH_GENCOLS_STORED && att->attgenerated) + if (att->attgenerated == ATTRIBUTE_GENERATED_STORED && pubgencols_type != PUBLISH_GENCOLS_STORED) + { + *invalid_gen_col = true; + break; + } + /* + * The equivalent setting for virtual generated columns does not + * exist yet. + */ + if (att->attgenerated == ATTRIBUTE_GENERATED_VIRTUAL) { *invalid_gen_col = true; break; -- 2.48.1