v14-0002-Fixup-review-Shlok-Kyal-2025-01-28.patch
text/plain
Filename: v14-0002-Fixup-review-Shlok-Kyal-2025-01-28.patch
Type: text/plain
Part: 1
Message:
Re: Virtual generated columns
Patch
Same data as JSON:
GET /api/v1/attachments/:id/patch
the parsed metadata as JSON — format, series position, per-file stats; never the diff bytes.
API reference →
Format: format-patch
Series: patch v14-0002
Subject: Fixup review Shlok Kyal 2025-01-28
| File | + | − |
|---|---|---|
| src/backend/commands/publicationcmds.c | 18 | 1 |
From 749b7adbf7bbfbf6428f99be57b7dce2f52f51db Mon Sep 17 00:00:00 2001
From: Peter Eisentraut <peter@eisentraut.org>
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