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