diff options
author | Tom Lane <tgl@sss.pgh.pa.us> | 2024-05-02 17:36:31 -0400 |
---|---|---|
committer | Tom Lane <tgl@sss.pgh.pa.us> | 2024-05-02 17:36:31 -0400 |
commit | 11d40a44ba325f254562a3fbd8ccd2791f12b9b5 (patch) | |
tree | 7bdb9a160d4934c3da1a455cbb72e0f606825538 | |
parent | ec235d8649170cfae3d6bd11859758538dd0d0f6 (diff) | |
download | postgresql-11d40a44ba325f254562a3fbd8ccd2791f12b9b5.tar.gz postgresql-11d40a44ba325f254562a3fbd8ccd2791f12b9b5.zip |
Throw a more on-point error for publications depending on columns.
Same as 42b041243, except that the trouble case is a publication
WHERE clause that depends on a column.
Again reported by Alexander Lakhin. Back-patch to v15 where
we added publication WHERE clauses.
Discussion: https://postgr.es/m/548a47bc-87ae-b3df-c6a2-60b9966f808b@gmail.com
-rw-r--r-- | src/backend/commands/tablecmds.c | 15 |
1 files changed, 14 insertions, 1 deletions
diff --git a/src/backend/commands/tablecmds.c b/src/backend/commands/tablecmds.c index 7c7f57874a1..0f79c81a454 100644 --- a/src/backend/commands/tablecmds.c +++ b/src/backend/commands/tablecmds.c @@ -12843,6 +12843,20 @@ ATExecAlterColumnType(AlteredTableInfo *tab, Relation rel, RememberStatisticsForRebuilding(foundObject.objectId, tab); break; + case OCLASS_PUBLICATION_REL: + + /* + * Column reference in a PUBLICATION ... FOR TABLE ... WHERE + * clause. Same issues as above. FIXME someday. + */ + ereport(ERROR, + (errcode(ERRCODE_FEATURE_NOT_SUPPORTED), + errmsg("cannot alter type of a column used by a publication WHERE clause"), + errdetail("%s depends on column \"%s\"", + getObjectDescription(&foundObject, false), + colName))); + break; + case OCLASS_TYPE: case OCLASS_CAST: case OCLASS_COLLATION: @@ -12873,7 +12887,6 @@ ATExecAlterColumnType(AlteredTableInfo *tab, Relation rel, case OCLASS_PARAMETER_ACL: case OCLASS_PUBLICATION: case OCLASS_PUBLICATION_NAMESPACE: - case OCLASS_PUBLICATION_REL: case OCLASS_SUBSCRIPTION: case OCLASS_TRANSFORM: |