diff options
author | Amit Kapila <akapila@postgresql.org> | 2024-12-09 09:11:45 +0530 |
---|---|---|
committer | Amit Kapila <akapila@postgresql.org> | 2024-12-09 09:11:45 +0530 |
commit | 2d0152d6147bb7d12eb120b7e749a323bf91aa6e (patch) | |
tree | 140f898479feb4b882113e95264005dcc29ef3de | |
parent | da99fedf8c1726326868d37a0e886caf9107d040 (diff) | |
download | postgresql-2d0152d6147bb7d12eb120b7e749a323bf91aa6e.tar.gz postgresql-2d0152d6147bb7d12eb120b7e749a323bf91aa6e.zip |
Improve the error message introduced in commit 87ce27de696.
The error detail message "Replica identity consists of an unpublished
generated column." implies that the entire replica identity is made up of
an unpublished generated column which may not be the case.
Reported-by: Peter Smith
Author: Shlok Kyal
Reviewed-by: Peter Smith, Amit Kapila
Discussion: https://postgr.es/m/CAHut+PuwMhKx0PhOA4APhJTLoBGNykbeCQpr_CuwGT-SkswG5w@mail.gmail.com
-rw-r--r-- | src/backend/executor/execReplication.c | 4 | ||||
-rw-r--r-- | src/test/regress/expected/publication.out | 4 |
2 files changed, 4 insertions, 4 deletions
diff --git a/src/backend/executor/execReplication.c b/src/backend/executor/execReplication.c index cfdf2eedf4d..368a40337aa 100644 --- a/src/backend/executor/execReplication.c +++ b/src/backend/executor/execReplication.c @@ -825,7 +825,7 @@ CheckCmdReplicaIdentity(Relation rel, CmdType cmd) (errcode(ERRCODE_INVALID_COLUMN_REFERENCE), errmsg("cannot update table \"%s\"", RelationGetRelationName(rel)), - errdetail("Replica identity consists of an unpublished generated column."))); + errdetail("Replica identity must not contain unpublished generated columns."))); else if (cmd == CMD_DELETE && !pubdesc.rf_valid_for_delete) ereport(ERROR, (errcode(ERRCODE_INVALID_COLUMN_REFERENCE), @@ -843,7 +843,7 @@ CheckCmdReplicaIdentity(Relation rel, CmdType cmd) (errcode(ERRCODE_INVALID_COLUMN_REFERENCE), errmsg("cannot delete from table \"%s\"", RelationGetRelationName(rel)), - errdetail("Replica identity consists of an unpublished generated column."))); + errdetail("Replica identity must not contain unpublished generated columns."))); /* If relation has replica identity we are always good. */ if (OidIsValid(RelationGetReplicaIndex(rel))) diff --git a/src/test/regress/expected/publication.out b/src/test/regress/expected/publication.out index b44ab007de6..c48f11f2935 100644 --- a/src/test/regress/expected/publication.out +++ b/src/test/regress/expected/publication.out @@ -683,13 +683,13 @@ ALTER TABLE testpub_gencol REPLICA IDENTITY USING index testpub_gencol_idx; CREATE PUBLICATION pub_gencol FOR TABLE testpub_gencol; UPDATE testpub_gencol SET a = 100 WHERE a = 1; ERROR: cannot update table "testpub_gencol" -DETAIL: Replica identity consists of an unpublished generated column. +DETAIL: Replica identity must not contain unpublished generated columns. -- error - generated column "b" must be published explicitly as it is -- part of the REPLICA IDENTITY. ALTER TABLE testpub_gencol REPLICA IDENTITY FULL; UPDATE testpub_gencol SET a = 100 WHERE a = 1; ERROR: cannot update table "testpub_gencol" -DETAIL: Replica identity consists of an unpublished generated column. +DETAIL: Replica identity must not contain unpublished generated columns. DROP PUBLICATION pub_gencol; -- ok - generated column "b" is published explicitly CREATE PUBLICATION pub_gencol FOR TABLE testpub_gencol with (publish_generated_columns = true); |