diff options
| author | Tom Lane <tgl@sss.pgh.pa.us> | 1999-07-27 03:51:11 +0000 |
|---|---|---|
| committer | Tom Lane <tgl@sss.pgh.pa.us> | 1999-07-27 03:51:11 +0000 |
| commit | 9e7e29e6c9dd386a56ab23f419bc358f630cf768 (patch) | |
| tree | 43859920134e180b991a001e35173a8a715da440 /src/include/nodes/relation.h | |
| parent | 434df3fb7a545637610f02c5491be1d6ce81069f (diff) | |
| download | postgresql-9e7e29e6c9dd386a56ab23f419bc358f630cf768.tar.gz | |
First cut at doing LIKE/regex indexing optimization in
optimizer rather than parser. This has many advantages, such as not
getting fooled by chance uses of operator names ~ and ~~ (the operators
are identified by OID now), and not creating useless comparison operations
in contexts where the comparisons will not actually be used as indexquals.
The new code also recognizes exact-match LIKE and regex patterns, and
produces an = indexqual instead of >= and <=.
This change does NOT fix the problem with non-ASCII locales: the code
still doesn't know how to generate an upper bound indexqual for non-ASCII
collation order. But it's no worse than before, just the same deficiency
in a different place...
Also, dike out loc_restrictinfo fields in Plan nodes. These were doing
nothing useful in the absence of 'expensive functions' optimization,
and they took a considerable amount of processing to fill in.
Diffstat (limited to 'src/include/nodes/relation.h')
| -rw-r--r-- | src/include/nodes/relation.h | 5 |
1 files changed, 2 insertions, 3 deletions
diff --git a/src/include/nodes/relation.h b/src/include/nodes/relation.h index 0402fb8fb9..4db2e9cea4 100644 --- a/src/include/nodes/relation.h +++ b/src/include/nodes/relation.h @@ -6,7 +6,7 @@ * * Copyright (c) 1994, Regents of the University of California * - * $Id: relation.h,v 1.36 1999/07/25 17:53:26 tgl Exp $ + * $Id: relation.h,v 1.37 1999/07/27 03:51:09 tgl Exp $ * *------------------------------------------------------------------------- */ @@ -148,7 +148,6 @@ typedef struct Path * information. */ Cost outerjoincost; Relids joinid; - List *loc_restrictinfo; } Path; /*---------- @@ -292,7 +291,7 @@ typedef struct Iter * cinfo -- if NULL, this stream node referes to the path node. * Otherwise this is a pointer to the current clause. * clausetype -- whether cinfo is in loc_restrictinfo or pathinfo in the - * path node + * path node (XXX this is now used only by dead code...) * upstream -- linked list pointer upwards * downstream -- ditto, downwards * groupup -- whether or not this node is in a group with the node upstream |
