aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBruce Momjian <bruce@momjian.us>1998-09-21 15:41:28 +0000
committerBruce Momjian <bruce@momjian.us>1998-09-21 15:41:28 +0000
commit748e3003176c94d5db2174e959b46f7745d806a7 (patch)
tree2afa77055d92ab055557121b5b2803847a843cc0
parent06b8c8a8b8962ec9fa6116d150f6abb967be3247 (diff)
downloadpostgresql-748e3003176c94d5db2174e959b46f7745d806a7.tar.gz
postgresql-748e3003176c94d5db2174e959b46f7745d806a7.zip
Fix for AND/OR handling.
-rw-r--r--src/backend/optimizer/path/indxpath.c7
-rw-r--r--src/backend/optimizer/path/orindxpath.c11
-rw-r--r--src/backend/optimizer/util/pathnode.c23
3 files changed, 26 insertions, 15 deletions
diff --git a/src/backend/optimizer/path/indxpath.c b/src/backend/optimizer/path/indxpath.c
index 24f46ec9331..3d505c87c00 100644
--- a/src/backend/optimizer/path/indxpath.c
+++ b/src/backend/optimizer/path/indxpath.c
@@ -8,7 +8,7 @@
*
*
* IDENTIFICATION
- * $Header: /cvsroot/pgsql/src/backend/optimizer/path/indxpath.c,v 1.34 1998/09/01 04:29:33 momjian Exp $
+ * $Header: /cvsroot/pgsql/src/backend/optimizer/path/indxpath.c,v 1.35 1998/09/21 15:41:26 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -1293,8 +1293,13 @@ index_innerjoin(Query *root, RelOptInfo * rel, List *clausegroup_list,
length(clausegroup),
&temp_pages,
&temp_selec);
+
pathnode->path.pathtype = T_IndexScan;
pathnode->path.parent = rel;
+ pathnode->path.p_ordering.ordtype = SORTOP_ORDER;
+ pathnode->path.p_ordering.ord.sortop = index->ordering;
+ pathnode->path.keys = NIL; /* not sure about this, bjm 1998/09/21 */
+
pathnode->indexid = index->relids;
pathnode->indexkeys = index->indexkeys;
pathnode->indexqual = clausegroup;
diff --git a/src/backend/optimizer/path/orindxpath.c b/src/backend/optimizer/path/orindxpath.c
index 3f8d6b15daf..31bd977de16 100644
--- a/src/backend/optimizer/path/orindxpath.c
+++ b/src/backend/optimizer/path/orindxpath.c
@@ -7,7 +7,7 @@
*
*
* IDENTIFICATION
- * $Header: /cvsroot/pgsql/src/backend/optimizer/path/orindxpath.c,v 1.11 1998/09/01 04:29:41 momjian Exp $
+ * $Header: /cvsroot/pgsql/src/backend/optimizer/path/orindxpath.c,v 1.12 1998/09/21 15:41:27 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -104,6 +104,15 @@ create_or_index_paths(Query *root,
pathnode->path.pathtype = T_IndexScan;
pathnode->path.parent = rel;
+ pathnode->path.p_ordering.ordtype = SORTOP_ORDER;
+ /*
+ * This is an IndexScan, but it does index lookups based
+ * on the order of the fields specified in the WHERE clause,
+ * not in any order, so the sortop is NULL.
+ */
+ pathnode->path.p_ordering.ord.sortop = NULL;
+ pathnode->path.keys = NIL; /* not sure about this, bjm 1998/09/21 */
+
pathnode->indexqual = lcons(clausenode, NIL);
pathnode->indexid = indexids;
pathnode->path.path_cost = cost;
diff --git a/src/backend/optimizer/util/pathnode.c b/src/backend/optimizer/util/pathnode.c
index 598400fa49a..d7dcbcc84f9 100644
--- a/src/backend/optimizer/util/pathnode.c
+++ b/src/backend/optimizer/util/pathnode.c
@@ -7,7 +7,7 @@
*
*
* IDENTIFICATION
- * $Header: /cvsroot/pgsql/src/backend/optimizer/util/pathnode.c,v 1.12 1998/09/01 04:30:08 momjian Exp $
+ * $Header: /cvsroot/pgsql/src/backend/optimizer/util/pathnode.c,v 1.13 1998/09/21 15:41:28 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -355,20 +355,17 @@ create_index_path(Query *root,
&npages,
&selec);
/* each clause gets an equal selectivity */
- clausesel =
- pow(selec,
- 1.0 / (double) length(restriction_clauses));
+ clausesel = pow(selec, 1.0 / (double) length(restriction_clauses));
pathnode->indexqual = restriction_clauses;
- pathnode->path.path_cost =
- cost_index(lfirsti(index->relids),
- (int) npages,
- selec,
- rel->pages,
- rel->tuples,
- index->pages,
- index->tuples,
- false);
+ pathnode->path.path_cost = cost_index(lfirsti(index->relids),
+ (int) npages,
+ selec,
+ rel->pages,
+ rel->tuples,
+ index->pages,
+ index->tuples,
+ false);
#if 0
/* add in expensive functions cost! -- JMH, 7/7/92 */