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_16_2~27 X-Git-Url: http://git.postgresql.org/gitweb/?a=commitdiff_plain;h=807369d80384cdaa696cd65b4fcee46e32142344;p=postgresql.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 d6a923b0b68..ecbf9d299f3 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; } }