-
- Downloads
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.
Showing
- src/backend/optimizer/path/allpaths.c 32 additions, 15 deletionssrc/backend/optimizer/path/allpaths.c
- src/backend/optimizer/plan/planner.c 6 additions, 1 deletionsrc/backend/optimizer/plan/planner.c
- src/test/regress/expected/rules.out 58 additions, 0 deletionssrc/test/regress/expected/rules.out
- src/test/regress/sql/rules.sql 38 additions, 0 deletionssrc/test/regress/sql/rules.sql
Loading
Please register or sign in to comment