From: Tom Lane Date: Fri, 26 Jan 2024 20:54:17 +0000 (-0500) Subject: Compare varnullingrels too in assign_param_for_var(). X-Git-Tag: REL_17_BETA1~996 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=5e444a2526cc6f4052ce0004e1df69135c47338a;p=thirdparty%2Fpostgresql.git 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 --- 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; } }