Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
P
Postgres FD Implementation
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Abuhujair Javed
Postgres FD Implementation
Commits
a7f49252
Commit
a7f49252
authored
Aug 22, 2005
by
Bruce Momjian
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
enable_constraint_exclusion => constraint_exclusion
Also improve wording.
parent
8ad3965a
Changes
8
Show whitespace changes
Inline
Side-by-side
Showing
8 changed files
with
31 additions
and
33 deletions
+31
-33
doc/TODO
doc/TODO
+2
-2
doc/src/FAQ/TODO.html
doc/src/FAQ/TODO.html
+2
-2
doc/src/sgml/runtime.sgml
doc/src/sgml/runtime.sgml
+13
-13
src/backend/optimizer/path/allpaths.c
src/backend/optimizer/path/allpaths.c
+3
-3
src/backend/utils/misc/guc.c
src/backend/utils/misc/guc.c
+6
-7
src/backend/utils/misc/postgresql.conf.sample
src/backend/utils/misc/postgresql.conf.sample
+1
-1
src/include/optimizer/cost.h
src/include/optimizer/cost.h
+2
-2
src/test/regress/expected/rangefuncs.out
src/test/regress/expected/rangefuncs.out
+2
-3
No files found.
doc/TODO
View file @
a7f49252
...
...
@@ -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
...
...
doc/src/FAQ/TODO.html
View file @
a7f49252
...
...
@@ -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>
...
...
doc/src/sgml/runtime.sgml
View file @
a7f49252
<!--
$PostgreSQL: pgsql/doc/src/sgml/runtime.sgml,v 1.34
6 2005/08/21 03:39:26 tgl
Exp $
$PostgreSQL: pgsql/doc/src/sgml/runtime.sgml,v 1.34
7 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 m
ay
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 m
ight
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>
...
...
src/backend/optimizer/path/allpaths.c
View file @
a7f49252
...
...
@@ -8,7 +8,7 @@
*
*
* IDENTIFICATION
* $PostgreSQL: pgsql/src/backend/optimizer/path/allpaths.c,v 1.13
5 2005/07/23 21:05:46 tgl
Exp $
* $PostgreSQL: pgsql/src/backend/optimizer/path/allpaths.c,v 1.13
6 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
;
...
...
src/backend/utils/misc/guc.c
View file @
a7f49252
...
...
@@ -10,7 +10,7 @@
* Written by Peter Eisentraut <peter_e@gmx.net>.
*
* IDENTIFICATION
* $PostgreSQL: pgsql/src/backend/utils/misc/guc.c,v 1.28
5 2005/08/21 03:39:34 tgl
Exp $
* $PostgreSQL: pgsql/src/backend/utils/misc/guc.c,v 1.28
6 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
},
{
...
...
src/backend/utils/misc/postgresql.conf.sample
View file @
a7f49252
...
...
@@ -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
...
...
src/include/optimizer/cost.h
View file @
a7f49252
...
...
@@ -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
);
...
...
src/test/regress/expected/rangefuncs.out
View file @
a7f49252
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);
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment