]> git.ipfire.org Git - thirdparty/postgresql.git/commitdiff
Compare varnullingrels too in assign_param_for_var().
authorTom Lane <tgl@sss.pgh.pa.us>
Fri, 26 Jan 2024 20:54:17 +0000 (15:54 -0500)
committerTom Lane <tgl@sss.pgh.pa.us>
Fri, 26 Jan 2024 20:54:17 +0000 (15:54 -0500)
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

index d6a923b0b68d6c2c176a9a12cd2d0a3f27166a48..ecbf9d299f32bf9130dc53181abe7b0f3e44d114 100644 (file)
@@ -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;
                }
        }