summaryrefslogtreecommitdiff
path: root/src/backend/optimizer/util
diff options
context:
space:
mode:
authorBruce Momjian1999-02-18 00:49:48 +0000
committerBruce Momjian1999-02-18 00:49:48 +0000
commit31cce21fb089b231bc408bc6e4541280c533b43f (patch)
tree749ef32f2f6ba4311393c34702eec63e4700bef3 /src/backend/optimizer/util
parentc82ca4c15828abdecf0ec5343d7f39b4f3a475f9 (diff)
Fix bushy plans. Cleanup.
Diffstat (limited to 'src/backend/optimizer/util')
-rw-r--r--src/backend/optimizer/util/clauses.c4
-rw-r--r--src/backend/optimizer/util/joininfo.c19
-rw-r--r--src/backend/optimizer/util/pathnode.c4
-rw-r--r--src/backend/optimizer/util/relnode.c17
4 files changed, 20 insertions, 24 deletions
diff --git a/src/backend/optimizer/util/clauses.c b/src/backend/optimizer/util/clauses.c
index d615d4e36d6..3fb0a901a04 100644
--- a/src/backend/optimizer/util/clauses.c
+++ b/src/backend/optimizer/util/clauses.c
@@ -7,7 +7,7 @@
*
*
* IDENTIFICATION
- * $Header: /cvsroot/pgsql/src/backend/optimizer/util/clauses.c,v 1.30 1999/02/14 22:24:25 tgl Exp $
+ * $Header: /cvsroot/pgsql/src/backend/optimizer/util/clauses.c,v 1.31 1999/02/18 00:49:37 momjian Exp $
*
* HISTORY
* AUTHOR DATE MAJOR EVENT
@@ -369,7 +369,7 @@ pull_constant_clauses(List *quals, List **constantQual)
*
*/
void
-clause_get_relids_vars(Node *clause, List **relids, List **vars)
+clause_get_relids_vars(Node *clause, Relids *relids, List **vars)
{
List *clvars = pull_var_clause(clause);
List *var_list = NIL;
diff --git a/src/backend/optimizer/util/joininfo.c b/src/backend/optimizer/util/joininfo.c
index a7e66fa03ea..880cfa5f422 100644
--- a/src/backend/optimizer/util/joininfo.c
+++ b/src/backend/optimizer/util/joininfo.c
@@ -7,7 +7,7 @@
*
*
* IDENTIFICATION
- * $Header: /cvsroot/pgsql/src/backend/optimizer/util/joininfo.c,v 1.17 1999/02/15 05:21:11 momjian Exp $
+ * $Header: /cvsroot/pgsql/src/backend/optimizer/util/joininfo.c,v 1.18 1999/02/18 00:49:37 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -38,16 +38,16 @@
JoinInfo *
joininfo_member(List *join_relids, List *joininfo_list)
{
- List *i = NIL;
- List *other_rels = NIL;
+ List *i;
foreach(i, joininfo_list)
{
- other_rels = lfirst(i);
- if (same(join_relids, ((JoinInfo *) other_rels)->unjoined_rels))
- return (JoinInfo *) other_rels;
+ JoinInfo *joininfo = (JoinInfo *)lfirst(i);
+
+ if (same(join_relids, joininfo->unjoined_relids))
+ return joininfo;
}
- return (JoinInfo *) NULL;
+ return NULL;
}
@@ -62,7 +62,7 @@ joininfo_member(List *join_relids, List *joininfo_list)
*
*/
JoinInfo *
-find_joininfo_node(RelOptInfo *this_rel, List *join_relids)
+find_joininfo_node(RelOptInfo *this_rel, Relids join_relids)
{
JoinInfo *joininfo = joininfo_member(join_relids,
this_rel->joininfo);
@@ -70,11 +70,10 @@ find_joininfo_node(RelOptInfo *this_rel, List *join_relids)
if (joininfo == NULL)
{
joininfo = makeNode(JoinInfo);
- joininfo->unjoined_rels = join_relids;
+ joininfo->unjoined_relids = join_relids;
joininfo->jinfo_restrictinfo = NIL;
joininfo->mergejoinable = false;
joininfo->hashjoinable = false;
- joininfo->bushy_inactive = false;
this_rel->joininfo = lcons(joininfo, this_rel->joininfo);
}
return joininfo;
diff --git a/src/backend/optimizer/util/pathnode.c b/src/backend/optimizer/util/pathnode.c
index 8e72cabb740..9041a9fe9b7 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.36 1999/02/15 03:22:16 momjian Exp $
+ * $Header: /cvsroot/pgsql/src/backend/optimizer/util/pathnode.c,v 1.37 1999/02/18 00:49:38 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -633,7 +633,7 @@ create_hashjoin_path(RelOptInfo *joinrel,
pathnode->jpath.path.pathorder->ordtype = SORTOP_ORDER;
pathnode->jpath.path.pathorder->ord.sortop = NULL;
pathnode->jpath.path.outerjoincost = (Cost) 0.0;
- pathnode->jpath.path.joinid = (Relid) NULL;
+ pathnode->jpath.path.joinid = (Relids) NULL;
/* pathnode->hashjoinoperator = operator; */
pathnode->path_hashclauses = hashclauses;
pathnode->outerhashkeys = outerkeys;
diff --git a/src/backend/optimizer/util/relnode.c b/src/backend/optimizer/util/relnode.c
index 63c0ca4f47b..3b7594d87f1 100644
--- a/src/backend/optimizer/util/relnode.c
+++ b/src/backend/optimizer/util/relnode.c
@@ -7,7 +7,7 @@
*
*
* IDENTIFICATION
- * $Header: /cvsroot/pgsql/src/backend/optimizer/util/relnode.c,v 1.14 1999/02/15 03:22:17 momjian Exp $
+ * $Header: /cvsroot/pgsql/src/backend/optimizer/util/relnode.c,v 1.15 1999/02/18 00:49:38 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -30,7 +30,7 @@
RelOptInfo *
get_base_rel(Query *root, int relid)
{
- List *relids;
+ Relids relids;
RelOptInfo *rel;
relids = lconsi(relid, NIL);
@@ -53,7 +53,6 @@ get_base_rel(Query *root, int relid)
rel->restrictinfo = NIL;
rel->joininfo = NIL;
rel->innerjoin = NIL;
- rel->superrels = NIL;
root->base_rel_list = lcons(rel, root->base_rel_list);
@@ -76,7 +75,6 @@ get_base_rel(Query *root, int relid)
bool hasindex;
int pages,
tuples;
-
/*
* Otherwise, retrieve relation characteristics from the
* system catalogs.
@@ -93,11 +91,10 @@ get_base_rel(Query *root, int relid)
/*
* get_join_rel
* Returns relation entry corresponding to 'relid' (a list of relids),
- * creating a new one if necessary. This is for join relations.
- *
+ * or NULL.
*/
RelOptInfo *
-get_join_rel(Query *root, List *relid)
+get_join_rel(Query *root, Relids relid)
{
return rel_member(relid, root->join_rel_list);
}
@@ -111,17 +108,17 @@ get_join_rel(Query *root, List *relid)
*
*/
RelOptInfo *
-rel_member(List *relid, List *rels)
+rel_member(Relids relids, List *rels)
{
List *temp = NIL;
List *temprelid = NIL;
- if (relid != NIL && rels != NIL)
+ if (relids != NIL && rels != NIL)
{
foreach(temp, rels)
{
temprelid = ((RelOptInfo *) lfirst(temp))->relids;
- if (same(temprelid, relid))
+ if (same(temprelid, relids))
return (RelOptInfo *) (lfirst(temp));
}
}