diff options
author | Tom Lane <tgl@sss.pgh.pa.us> | 2010-03-30 21:58:11 +0000 |
---|---|---|
committer | Tom Lane <tgl@sss.pgh.pa.us> | 2010-03-30 21:58:11 +0000 |
commit | d174a4adbb7423ee5ff30aa98043db4521ffd1be (patch) | |
tree | ddbcea5d50df5337bcfc6c5969232b2e492a71de /src/backend/optimizer/plan/planner.c | |
parent | 2a77355ea1e53bc234ed0b5fda8ec9f304f6797a (diff) | |
download | postgresql-d174a4adbb7423ee5ff30aa98043db4521ffd1be.tar.gz postgresql-d174a4adbb7423ee5ff30aa98043db4521ffd1be.zip |
Fix "constraint_exclusion = partition" logic so that it will also attempt
constraint exclusion on an inheritance set that is the target of an UPDATE
or DELETE query. Per gripe from Marc Cousin. Back-patch to 8.4 where
the feature was introduced.
Diffstat (limited to 'src/backend/optimizer/plan/planner.c')
-rw-r--r-- | src/backend/optimizer/plan/planner.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/src/backend/optimizer/plan/planner.c b/src/backend/optimizer/plan/planner.c index 356fe17df4b..317a7e87f33 100644 --- a/src/backend/optimizer/plan/planner.c +++ b/src/backend/optimizer/plan/planner.c @@ -8,7 +8,7 @@ * * * IDENTIFICATION - * $PostgreSQL: pgsql/src/backend/optimizer/plan/planner.c,v 1.266 2010/02/26 02:00:45 momjian Exp $ + * $PostgreSQL: pgsql/src/backend/optimizer/plan/planner.c,v 1.267 2010/03/30 21:58:10 tgl Exp $ * *------------------------------------------------------------------------- */ @@ -307,6 +307,7 @@ subquery_planner(PlannerGlobal *glob, Query *parse, root->eq_classes = NIL; root->append_rel_list = NIL; root->rowMarks = NIL; + root->hasInheritedTarget = false; root->hasRecursion = hasRecursion; if (hasRecursion) @@ -749,6 +750,7 @@ inheritance_planner(PlannerInfo *root) adjust_appendrel_attrs((Node *) parse, appinfo); subroot.init_plans = NIL; + subroot.hasInheritedTarget = true; /* We needn't modify the child's append_rel_list */ /* There shouldn't be any OJ info to translate, as yet */ Assert(subroot.join_info_list == NIL); |