]> granicus.if.org Git - postgresql/commit
Repair two constraint-exclusion corner cases triggered by proving that an
authorTom Lane <tgl@sss.pgh.pa.us>
Sat, 26 May 2007 18:23:02 +0000 (18:23 +0000)
committerTom Lane <tgl@sss.pgh.pa.us>
Sat, 26 May 2007 18:23:02 +0000 (18:23 +0000)
commitcadb78330eedceafeda99bf12ac690cda773be62
tree6d4b9004701763c29fb88f1afecef8c81207df9e
parent604ffd280b955100e5fc24649ee4d42a6f3ebf35
Repair two constraint-exclusion corner cases triggered by proving that an
inheritance child of an UPDATE/DELETE target relation can be excluded by
constraints.  I had rearranged some code in set_append_rel_pathlist() to
avoid "useless" work when a child is excluded, but overdid it and left
the child with no cheapest_path entry, causing possible failure later
if the appendrel was involved in a join.  Also, it seems that the dummy
plan generated by inheritance_planner() when all branches are excluded
has to be a bit less dummy now than was required in 8.2.
Per report from Jan Wieck.  Add his test case to the regression tests.
src/backend/optimizer/path/allpaths.c
src/backend/optimizer/plan/planner.c
src/test/regress/expected/rules.out
src/test/regress/sql/rules.sql