diff options
| author | Tom Lane <tgl@sss.pgh.pa.us> | 2000-07-24 03:11:01 +0000 |
|---|---|---|
| committer | Tom Lane <tgl@sss.pgh.pa.us> | 2000-07-24 03:11:01 +0000 |
| commit | cd9f0ca5456c0fc2c6190321a8156609ef9f573d (patch) | |
| tree | a2a304b236a0fd12901e781adc587ab2cbcef826 /src/include/optimizer/paths.h | |
| parent | c39c198bc333363c7a74e6e8c91b57466027ec3d (diff) | |
| download | postgresql-cd9f0ca5456c0fc2c6190321a8156609ef9f573d.tar.gz | |
Deduce equality constraints that are implied by transitivity of
mergejoinable qual clauses, and add them to the query quals. For
example, WHERE a = b AND b = c will cause us to add AND a = c.
This is necessary to ensure that it's safe to use these variables
as interchangeable sort keys, which is something 7.0 knows how to do.
Should provide a useful improvement in planning ability, too.
Diffstat (limited to 'src/include/optimizer/paths.h')
| -rw-r--r-- | src/include/optimizer/paths.h | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/src/include/optimizer/paths.h b/src/include/optimizer/paths.h index ff26523418..66520d6a89 100644 --- a/src/include/optimizer/paths.h +++ b/src/include/optimizer/paths.h @@ -8,7 +8,7 @@ * Portions Copyright (c) 1996-2000, PostgreSQL, Inc * Portions Copyright (c) 1994, Regents of the University of California * - * $Id: paths.h,v 1.45 2000/05/31 00:28:38 petere Exp $ + * $Id: paths.h,v 1.46 2000/07/24 03:10:54 tgl Exp $ * *------------------------------------------------------------------------- */ @@ -90,6 +90,7 @@ typedef enum } PathKeysComparison; extern void add_equijoined_keys(Query *root, RestrictInfo *restrictinfo); +extern void generate_implied_equalities(Query *root); extern List *canonicalize_pathkeys(Query *root, List *pathkeys); extern PathKeysComparison compare_pathkeys(List *keys1, List *keys2); extern bool pathkeys_contained_in(List *keys1, List *keys2); |
