postgres.git / summary / log / commit / refs
commit 5e444a2526cc6f4052ce0004e1df69135c47338a
Author: Tom Lane <tgl@sss.pgh.pa.us>
Date: Fri Jan 26 20:54:17 2024 +0000
First released in: 17.0, 16.2
Compare varnullingrels too in assign_param_for_var().
Oversight in 2489d76c4. Preliminary analysis suggests that the
problem may be unreachable --- but if we did have instances of
the same column with different varnullingrels, we'd surely need
to treat them as different Params.
Discussion: https://postgr.es/m/412552.1706203379@sss.pgh.pa.us
src/backend/optimizer/util/paramassign.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/src/backend/optimizer/util/paramassign.c b/src/backend/optimizer/util/paramassign.c
index a711003a3a4..a58da7c57ea 100644
--- a/src/backend/optimizer/util/paramassign.c
+++ b/src/backend/optimizer/util/paramassign.c
@@ -90,7 +90,8 @@ assign_param_for_var(PlannerInfo *root, Var *var)
pvar->varattno == var->varattno &&
pvar->vartype == var->vartype &&
pvar->vartypmod == var->vartypmod &&
- pvar->varcollid == var->varcollid)
+ pvar->varcollid == var->varcollid &&
+ bms_equal(pvar->varnullingrels, var->varnullingrels))
return pitem->paramId;
}
}
[parent: 25cd2d64021a]