aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--doc/TODO4
-rw-r--r--doc/src/FAQ/TODO.html4
-rw-r--r--doc/src/sgml/runtime.sgml26
-rw-r--r--src/backend/optimizer/path/allpaths.c6
-rw-r--r--src/backend/utils/misc/guc.c13
-rw-r--r--src/backend/utils/misc/postgresql.conf.sample2
-rw-r--r--src/include/optimizer/cost.h4
-rw-r--r--src/test/regress/expected/rangefuncs.out5
8 files changed, 31 insertions, 33 deletions
diff --git a/doc/TODO b/doc/TODO
index 56aa3de6ece..6fb373cb41b 100644
--- a/doc/TODO
+++ b/doc/TODO
@@ -385,7 +385,7 @@ SQL Commands
* Add GUC to issue notice about queries that use unjoined tables
* Allow EXPLAIN to identify tables that were skipped because of
- enable_constraint_exclusion
+ constraint_exclusion
* Allow EXPLAIN output to be more easily processed by scripts
@@ -769,7 +769,7 @@ Indexes
* Allow the creation of indexes with mixed ascending/descending specifiers
* -Fix incorrect rtree results due to wrong assumptions about "over"
operator semantics
-* Allow enable_constraint_exclusion to work for UNIONs like it does for
+* Allow constraint_exclusion to work for UNIONs like it does for
inheritance, and allow it to work for UPDATE and DELETE queries
diff --git a/doc/src/FAQ/TODO.html b/doc/src/FAQ/TODO.html
index a2b70a78bc9..edd160c3f77 100644
--- a/doc/src/FAQ/TODO.html
+++ b/doc/src/FAQ/TODO.html
@@ -355,7 +355,7 @@ first.
</p>
</li><li>Add GUC to issue notice about queries that use unjoined tables
</li><li>Allow EXPLAIN to identify tables that were skipped because of
- enable_constraint_exclusion
+ constraint_exclusion
</li><li>Allow EXPLAIN output to be more easily processed by scripts
</li><li>CREATE
<ul>
@@ -694,7 +694,7 @@ first.
</li><li>Allow the creation of indexes with mixed ascending/descending specifiers
</li><li>-<em>Fix incorrect rtree results due to wrong assumptions about "over"</em>
operator semantics
- </li><li>Allow enable_constraint_exclusion to work for UNIONs like it does for
+ </li><li>Allow constraint_exclusion to work for UNIONs like it does for
inheritance, and allow it to work for UPDATE and DELETE queries
</li><li>GIST
<ul>
diff --git a/doc/src/sgml/runtime.sgml b/doc/src/sgml/runtime.sgml
index 0966b5105e5..a699e0096b2 100644
--- a/doc/src/sgml/runtime.sgml
+++ b/doc/src/sgml/runtime.sgml
@@ -1,5 +1,5 @@
<!--
-$PostgreSQL: pgsql/doc/src/sgml/runtime.sgml,v 1.346 2005/08/21 03:39:26 tgl Exp $
+$PostgreSQL: pgsql/doc/src/sgml/runtime.sgml,v 1.347 2005/08/22 17:34:56 momjian Exp $
-->
<chapter Id="runtime">
@@ -2352,24 +2352,24 @@ archive_command = 'copy "%p" /mnt/server/archivedir/"%f"' # Windows
</listitem>
</varlistentry>
- <varlistentry id="guc-enable-constraint-exclusion" xreflabel="enable_constraint_exclusion">
- <term><varname>enable_constraint_exclusion</varname> (<type>boolean</type>)</term>
+ <varlistentry id="guc-constraint-exclusion" xreflabel="constraint_exclusion">
+ <term><varname>constraint_exclusion</varname> (<type>boolean</type>)</term>
<indexterm>
<primary>constraint exclusion</primary>
</indexterm>
<indexterm>
- <primary><varname>enable_constraint_exclusion</> configuration parameter</primary>
+ <primary><varname>constraint_exclusion</> configuration parameter</primary>
</indexterm>
<listitem>
<para>
- Enables or disables the query planner's use of table constraints.
- The default is <literal>off</>.
+ Enables or disables the query planner's use of table constraints to
+ limit table access. The default is <literal>off</>.
</para>
<para>
When this parameter is <literal>on</>, the planner compares query
- conditions to table CHECK constraints, and omits scanning tables
- for which the conditions contradict the constraints. (Presently
+ conditions with table CHECK constraints, and omits scanning tables
+ where the conditions contradict the constraints. (Presently
this is done only for child tables of inheritance scans.) For
example:
@@ -2387,15 +2387,15 @@ SELECT * FROM parent WHERE key = 2400;
</para>
<para>
- Currently, <varname>enable_constraint_exclusion</> defaults to
- <literal>off</>, because it creates a risk of wrong answers when
- query plans are cached: if a table constraint is changed or dropped,
- the previously generated plan may now be wrong, and there is no
+ Currently, <varname>constraint_exclusion</> defaults to
+ <literal>off</>, because it risks incorrect results if
+ query plans are cached --- if a table constraint is changed or dropped,
+ the previously generated plan might now be wrong, and there is no
built-in mechanism to force re-planning. (This deficiency will
probably be addressed in a future
<productname>PostgreSQL</productname> release.) Another reason
for keeping it off is that the constraint checks are relatively
- expensive to make, and in many circumstances will yield no savings.
+ expensive, and in many circumstances will yield no savings.
It is recommended to turn this on only if you are actually using
partitioned tables designed to take advantage of the feature.
</para>
diff --git a/src/backend/optimizer/path/allpaths.c b/src/backend/optimizer/path/allpaths.c
index 124534914f8..aa14deacd0c 100644
--- a/src/backend/optimizer/path/allpaths.c
+++ b/src/backend/optimizer/path/allpaths.c
@@ -8,7 +8,7 @@
*
*
* IDENTIFICATION
- * $PostgreSQL: pgsql/src/backend/optimizer/path/allpaths.c,v 1.135 2005/07/23 21:05:46 tgl Exp $
+ * $PostgreSQL: pgsql/src/backend/optimizer/path/allpaths.c,v 1.136 2005/08/22 17:34:58 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -36,7 +36,7 @@
/* These parameters are set by GUC */
-bool enable_constraint_exclusion = false;
+bool constraint_exclusion = false;
bool enable_geqo = false; /* just in case GUC doesn't set it */
int geqo_threshold;
@@ -318,7 +318,7 @@ set_inherited_rel_pathlist(PlannerInfo *root, RelOptInfo *rel,
* exclusion, just ignore it. (We have to have converted the
* baserestrictinfo Vars before we can make the test.)
*/
- if (enable_constraint_exclusion)
+ if (constraint_exclusion)
{
List *constraint_pred;
diff --git a/src/backend/utils/misc/guc.c b/src/backend/utils/misc/guc.c
index 6fd3d9fc5c4..29e0e409307 100644
--- a/src/backend/utils/misc/guc.c
+++ b/src/backend/utils/misc/guc.c
@@ -10,7 +10,7 @@
* Written by Peter Eisentraut <peter_e@gmx.net>.
*
* IDENTIFICATION
- * $PostgreSQL: pgsql/src/backend/utils/misc/guc.c,v 1.285 2005/08/21 03:39:34 tgl Exp $
+ * $PostgreSQL: pgsql/src/backend/utils/misc/guc.c,v 1.286 2005/08/22 17:34:59 momjian Exp $
*
*--------------------------------------------------------------------
*/
@@ -453,13 +453,12 @@ static struct config_bool ConfigureNamesBool[] =
true, NULL, NULL
},
{
- {"enable_constraint_exclusion", PGC_USERSET, QUERY_TUNING_OTHER,
- gettext_noop("Enables the planner's use of constraints in queries."),
- gettext_noop("Constraints will be examined to exclude tables "
- "that can be proven not to be required to produce "
- "a correct result for the query.")
+ {"constraint_exclusion", PGC_USERSET, QUERY_TUNING_OTHER,
+ gettext_noop("Enables the planner to use constraints to limit table access."),
+ gettext_noop("This prevents table access if the table constraints "
+ "guarantee that table access is necessary.")
},
- &enable_constraint_exclusion,
+ &constraint_exclusion,
false, NULL, NULL
},
{
diff --git a/src/backend/utils/misc/postgresql.conf.sample b/src/backend/utils/misc/postgresql.conf.sample
index 48152e8ed26..6049aafe191 100644
--- a/src/backend/utils/misc/postgresql.conf.sample
+++ b/src/backend/utils/misc/postgresql.conf.sample
@@ -190,7 +190,7 @@
# - Other Planner Options -
#default_statistics_target = 10 # range 1-1000
-#enable_constraint_exclusion = off
+#constraint_exclusion = off
#from_collapse_limit = 8
#join_collapse_limit = 8 # 1 disables collapsing of explicit
# JOINs
diff --git a/src/include/optimizer/cost.h b/src/include/optimizer/cost.h
index a6988e45991..4162b632fcc 100644
--- a/src/include/optimizer/cost.h
+++ b/src/include/optimizer/cost.h
@@ -7,7 +7,7 @@
* Portions Copyright (c) 1996-2005, PostgreSQL Global Development Group
* Portions Copyright (c) 1994, Regents of the University of California
*
- * $PostgreSQL: pgsql/src/include/optimizer/cost.h,v 1.69 2005/07/23 21:05:48 tgl Exp $
+ * $PostgreSQL: pgsql/src/include/optimizer/cost.h,v 1.70 2005/08/22 17:35:03 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -49,7 +49,7 @@ extern bool enable_hashagg;
extern bool enable_nestloop;
extern bool enable_mergejoin;
extern bool enable_hashjoin;
-extern bool enable_constraint_exclusion;
+extern bool constraint_exclusion;
extern double clamp_row_est(double nrows);
extern void cost_seqscan(Path *path, PlannerInfo *root, RelOptInfo *baserel);
diff --git a/src/test/regress/expected/rangefuncs.out b/src/test/regress/expected/rangefuncs.out
index 3172d16b88f..42f770ff55a 100644
--- a/src/test/regress/expected/rangefuncs.out
+++ b/src/test/regress/expected/rangefuncs.out
@@ -1,8 +1,7 @@
SELECT name, setting FROM pg_settings WHERE name LIKE 'enable%';
name | setting
------------------------------+---------
+-------------------+---------
enable_bitmapscan | on
- enable_constraint_exclusion | off
enable_hashagg | on
enable_hashjoin | on
enable_indexscan | on
@@ -11,7 +10,7 @@ SELECT name, setting FROM pg_settings WHERE name LIKE 'enable%';
enable_seqscan | on
enable_sort | on
enable_tidscan | on
-(10 rows)
+(9 rows)
CREATE TABLE foo2(fooid int, f2 int);
INSERT INTO foo2 VALUES(1, 11);