aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDavid Rowley <drowley@postgresql.org>2023-09-14 11:27:16 +1200
committerDavid Rowley <drowley@postgresql.org>2023-09-14 11:27:16 +1200
commit1a6900e58ae2c61b84b516901985e405b9d457b7 (patch)
tree5ebeb32dbfbbc72f8187af55ed0f523bfb1d5931
parenta81e5516fa4bc53e332cb35eefe231147c0e1749 (diff)
downloadpostgresql-1a6900e58ae2c61b84b516901985e405b9d457b7.tar.gz
postgresql-1a6900e58ae2c61b84b516901985e405b9d457b7.zip
Fix incorrect logic in plan dependency recording
Both 50e17ad28 and 29f45e299 mistakenly tried to record a plan dependency on a function but mistakenly inverted the OidIsValid test. This meant that we'd record a dependency only when the function's Oid was InvalidOid. Clearly this was meant to *not* record the dependency in that case. 50e17ad28 made this mistake first, then in v15 29f45e299 copied the same mistake. Reported-by: Tom Lane Backpatch-through: 14, where 50e17ad28 first made this mistake Discussion: https://postgr.es/m/2277537.1694301772@sss.pgh.pa.us
-rw-r--r--src/backend/optimizer/plan/setrefs.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/src/backend/optimizer/plan/setrefs.c b/src/backend/optimizer/plan/setrefs.c
index c63758cb2b7..eab517dd5cc 100644
--- a/src/backend/optimizer/plan/setrefs.c
+++ b/src/backend/optimizer/plan/setrefs.c
@@ -1979,10 +1979,10 @@ fix_expr_common(PlannerInfo *root, Node *node)
set_sa_opfuncid(saop);
record_plan_function_dependency(root, saop->opfuncid);
- if (!OidIsValid(saop->hashfuncid))
+ if (OidIsValid(saop->hashfuncid))
record_plan_function_dependency(root, saop->hashfuncid);
- if (!OidIsValid(saop->negfuncid))
+ if (OidIsValid(saop->negfuncid))
record_plan_function_dependency(root, saop->negfuncid);
}
else if (IsA(node, Const))