postgres.git / summary / log / commit / refs

commit    807369d80384cdaa696cd65b4fcee46e32142344
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 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; } } [parent: 7204aea835d0]