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.
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);