aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorDean Rasheed <dean.a.rasheed@gmail.com>2022-11-25 13:29:51 +0000
committerDean Rasheed <dean.a.rasheed@gmail.com>2022-11-25 13:29:51 +0000
commit04d61bfe64c9098aa737d0bea428b46a46b358bb (patch)
tree8eaaa806a28395f8059dee43899f910cbd9c4980 /src
parentfc02019c09feab1f371fb5881f2f050ce6e30ea9 (diff)
downloadpostgresql-04d61bfe64c9098aa737d0bea428b46a46b358bb.tar.gz
postgresql-04d61bfe64c9098aa737d0bea428b46a46b358bb.zip
Fix rule-detection code for MERGE.
Use the relation's rd_rules structure to test whether it has rules, rather than the relhasrules flag, which might be out of date. Reviewed by Tom Lane. Backpatch to 15, where MERGE was added. Discussion: https://postgr.es/m/CAEZATCVkBVZABfw71sYvkcPf6tarcOFST5Bc6AOi-LFT9YdccQ%40mail.gmail.com
Diffstat (limited to 'src')
-rw-r--r--src/backend/parser/parse_merge.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/src/backend/parser/parse_merge.c b/src/backend/parser/parse_merge.c
index 7913523b1c6..62c2ff69f0c 100644
--- a/src/backend/parser/parse_merge.c
+++ b/src/backend/parser/parse_merge.c
@@ -182,7 +182,8 @@ transformMergeStmt(ParseState *pstate, MergeStmt *stmt)
errmsg("cannot execute MERGE on relation \"%s\"",
RelationGetRelationName(pstate->p_target_relation)),
errdetail_relkind_not_supported(pstate->p_target_relation->rd_rel->relkind)));
- if (pstate->p_target_relation->rd_rel->relhasrules)
+ if (pstate->p_target_relation->rd_rules != NULL &&
+ pstate->p_target_relation->rd_rules->numLocks > 0)
ereport(ERROR,
(errcode(ERRCODE_FEATURE_NOT_SUPPORTED),
errmsg("cannot execute MERGE on relation \"%s\"",