diff options
| author | Tom Lane | 2004-01-05 05:07:36 +0000 |
|---|---|---|
| committer | Tom Lane | 2004-01-05 05:07:36 +0000 |
| commit | 9091e8d1b233faf9994518fda7fcc171fddb53ac (patch) | |
| tree | 572b200768bbfba3cfc121f1b4c12c79ab650d96 /src/backend/nodes | |
| parent | bf488a6842ef2bf43ab89337c8970971e84951da (diff) | |
Add the ability to extract OR indexscan conditions from OR-of-AND
join conditions in which each OR subclause includes a constraint on
the same relation. This implements the other useful side-effect of
conversion to CNF format, without its unpleasant side-effects. As
per pghackers discussion of a few weeks ago.
Diffstat (limited to 'src/backend/nodes')
| -rw-r--r-- | src/backend/nodes/copyfuncs.c | 7 | ||||
| -rw-r--r-- | src/backend/nodes/equalfuncs.c | 5 | ||||
| -rw-r--r-- | src/backend/nodes/outfuncs.c | 9 |
3 files changed, 12 insertions, 9 deletions
diff --git a/src/backend/nodes/copyfuncs.c b/src/backend/nodes/copyfuncs.c index 29f55e0abb8..75c2fa898d9 100644 --- a/src/backend/nodes/copyfuncs.c +++ b/src/backend/nodes/copyfuncs.c @@ -15,7 +15,7 @@ * Portions Copyright (c) 1994, Regents of the University of California * * IDENTIFICATION - * $PostgreSQL: pgsql/src/backend/nodes/copyfuncs.c,v 1.272 2004/01/04 03:51:52 tgl Exp $ + * $PostgreSQL: pgsql/src/backend/nodes/copyfuncs.c,v 1.273 2004/01/05 05:07:35 tgl Exp $ * *------------------------------------------------------------------------- */ @@ -1168,8 +1168,9 @@ _copyRestrictInfo(RestrictInfo *from) RestrictInfo *newnode = makeNode(RestrictInfo); COPY_NODE_FIELD(clause); - COPY_SCALAR_FIELD(ispusheddown); - COPY_SCALAR_FIELD(canjoin); + COPY_SCALAR_FIELD(is_pushed_down); + COPY_SCALAR_FIELD(valid_everywhere); + COPY_SCALAR_FIELD(can_join); COPY_BITMAPSET_FIELD(clause_relids); COPY_BITMAPSET_FIELD(left_relids); COPY_BITMAPSET_FIELD(right_relids); diff --git a/src/backend/nodes/equalfuncs.c b/src/backend/nodes/equalfuncs.c index 5c7e5384402..41b292a47cc 100644 --- a/src/backend/nodes/equalfuncs.c +++ b/src/backend/nodes/equalfuncs.c @@ -18,7 +18,7 @@ * Portions Copyright (c) 1994, Regents of the University of California * * IDENTIFICATION - * $PostgreSQL: pgsql/src/backend/nodes/equalfuncs.c,v 1.211 2003/12/30 23:53:14 tgl Exp $ + * $PostgreSQL: pgsql/src/backend/nodes/equalfuncs.c,v 1.212 2004/01/05 05:07:35 tgl Exp $ * *------------------------------------------------------------------------- */ @@ -560,7 +560,8 @@ static bool _equalRestrictInfo(RestrictInfo *a, RestrictInfo *b) { COMPARE_NODE_FIELD(clause); - COMPARE_SCALAR_FIELD(ispusheddown); + COMPARE_SCALAR_FIELD(is_pushed_down); + COMPARE_SCALAR_FIELD(valid_everywhere); /* * We ignore all the remaining fields, since they may not be set yet, diff --git a/src/backend/nodes/outfuncs.c b/src/backend/nodes/outfuncs.c index 3b8613fd19c..e91e8e0d170 100644 --- a/src/backend/nodes/outfuncs.c +++ b/src/backend/nodes/outfuncs.c @@ -8,7 +8,7 @@ * * * IDENTIFICATION - * $PostgreSQL: pgsql/src/backend/nodes/outfuncs.c,v 1.225 2004/01/04 03:51:52 tgl Exp $ + * $PostgreSQL: pgsql/src/backend/nodes/outfuncs.c,v 1.226 2004/01/05 05:07:35 tgl Exp $ * * NOTES * Every node type that can appear in stored rules' parsetrees *must* @@ -971,7 +971,7 @@ _outIndexPath(StringInfo str, IndexPath *node) WRITE_NODE_FIELD(indexqual); WRITE_NODE_FIELD(indexjoinclauses); WRITE_ENUM_FIELD(indexscandir, ScanDirection); - WRITE_FLOAT_FIELD(rows, "%.2f"); + WRITE_FLOAT_FIELD(rows, "%.0f"); } static void @@ -1073,8 +1073,9 @@ _outRestrictInfo(StringInfo str, RestrictInfo *node) /* NB: this isn't a complete set of fields */ WRITE_NODE_FIELD(clause); - WRITE_BOOL_FIELD(ispusheddown); - WRITE_BOOL_FIELD(canjoin); + WRITE_BOOL_FIELD(is_pushed_down); + WRITE_BOOL_FIELD(valid_everywhere); + WRITE_BOOL_FIELD(can_join); WRITE_BITMAPSET_FIELD(clause_relids); WRITE_BITMAPSET_FIELD(left_relids); WRITE_BITMAPSET_FIELD(right_relids); |
