pgsql: Repair two constraint-exclusion corner cases triggered by proving

From: tgl(at)postgresql(dot)org (Tom Lane)
To: pgsql-committers(at)postgresql(dot)org
Subject: pgsql: Repair two constraint-exclusion corner cases triggered by proving
Date: 2007-05-26 18:23:02
Message-ID: 20070526182302.5F5159FB860@postgresql.org
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-committers

Log Message:
-----------
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.

Modified Files:
--------------
pgsql/src/backend/optimizer/path:
allpaths.c (r1.163 -> r1.164)
(http://developer.postgresql.org/cvsweb.cgi/pgsql/src/backend/optimizer/path/allpaths.c.diff?r1=1.163&r2=1.164)
pgsql/src/backend/optimizer/plan:
planner.c (r1.220 -> r1.221)
(http://developer.postgresql.org/cvsweb.cgi/pgsql/src/backend/optimizer/plan/planner.c.diff?r1=1.220&r2=1.221)
pgsql/src/test/regress/expected:
rules.out (r1.127 -> r1.128)
(http://developer.postgresql.org/cvsweb.cgi/pgsql/src/test/regress/expected/rules.out.diff?r1=1.127&r2=1.128)
pgsql/src/test/regress/sql:
rules.sql (r1.33 -> r1.34)
(http://developer.postgresql.org/cvsweb.cgi/pgsql/src/test/regress/sql/rules.sql.diff?r1=1.33&r2=1.34)

Browse pgsql-committers by date

  From Date Subject
Next Message User Eggyknap 2007-05-27 02:27:50 pgsnmpd - pgsnmpd: Quit hardcoding values in rdbmsSrvTable (finally).
Previous Message James William Pye 2007-05-26 17:54:21 python - be: Only pfree when recoding occurs.