Fix incorrect usage of non-strict OR joinclauses in appendrel indexscans.

By chance I happened to notice that bug #5076 was still broken in the
8.3 branch, though it worked everywhere else.  The reason is that 8.3's
version of adjust_appendrel_attrs_mutator neglected to adjust
RestrictInfo.nullable_relids.  This was an oversight in my patch of
2009-04-16, which I apparently corrected in the later branches on
2009-08-13 without realizing that it affected the 8.3 branch as well.
By the time the bug report was filed, it was not reproducible in 8.4.
I don't recall if I wrote it off as already fixed, or it just fell through
the cracks; but anyway it's been a live bug in 8.3 for a year.
This commit is contained in:
Tom Lane 2010-09-28 16:13:09 -04:00
parent 3e20490e86
commit a2e26a6f88

View File

@ -1207,6 +1207,9 @@ adjust_appendrel_attrs_mutator(Node *node, AppendRelInfo *context)
newinfo->required_relids = adjust_relid_set(oldinfo->required_relids,
context->parent_relid,
context->child_relid);
newinfo->nullable_relids = adjust_relid_set(oldinfo->nullable_relids,
context->parent_relid,
context->child_relid);
newinfo->left_relids = adjust_relid_set(oldinfo->left_relids,
context->parent_relid,
context->child_relid);