summaryrefslogtreecommitdiff
path: root/src/include
diff options
context:
space:
mode:
Diffstat (limited to 'src/include')
-rw-r--r--src/include/nodes/relation.h18
-rw-r--r--src/include/optimizer/clauses.h5
-rw-r--r--src/include/optimizer/pathnode.h6
-rw-r--r--src/include/optimizer/paths.h5
-rw-r--r--src/include/optimizer/xfunc.h6
5 files changed, 19 insertions, 21 deletions
diff --git a/src/include/nodes/relation.h b/src/include/nodes/relation.h
index 7ade94575d..32c90392de 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.25 1999/02/15 05:21:12 momjian Exp $
+ * $Id: relation.h,v 1.26 1999/02/18 00:49:38 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -17,11 +17,11 @@
#include <nodes/primnodes.h>
/*
- * Relid
+ * Relids
* List of relation identifiers (indexes into the rangetable).
*/
-typedef List *Relid;
+typedef List *Relids;
/*
* RelOptInfo
@@ -72,7 +72,7 @@ typedef struct RelOptInfo
NodeTag type;
/* all relations: */
- Relid relids;
+ Relids relids; /* integer list of base relids involved */
/* catalog statistics information */
bool indexed;
@@ -84,7 +84,7 @@ typedef struct RelOptInfo
/* materialization information */
List *targetlist;
List *pathlist; /* Path structures */
- struct Path *cheapestpath;
+ struct Path *cheapestpath;
bool pruneable;
/* used solely by indices: */
@@ -100,7 +100,6 @@ typedef struct RelOptInfo
List *restrictinfo; /* RestrictInfo structures */
List *joininfo; /* JoinInfo structures */
List *innerjoin;
- List *superrels;
} RelOptInfo;
extern Var *get_expr(TargetEntry *foo);
@@ -148,7 +147,7 @@ typedef struct Path
* indexes.
*/
Cost outerjoincost;
- Relid joinid;
+ Relids joinid;
List *loc_restrictinfo;
} Path;
@@ -221,7 +220,7 @@ typedef struct RestrictInfo
/* hashjoin only */
Oid hashjoinoperator;
- Relid restrictinfojoinid;
+ Relids restrictinfojoinid;
} RestrictInfo;
typedef struct JoinMethod
@@ -246,11 +245,10 @@ typedef struct MergeInfo
typedef struct JoinInfo
{
NodeTag type;
- List *unjoined_rels;
+ Relids unjoined_relids;
List *jinfo_restrictinfo;
bool mergejoinable;
bool hashjoinable;
- bool bushy_inactive;
} JoinInfo;
typedef struct Iter
diff --git a/src/include/optimizer/clauses.h b/src/include/optimizer/clauses.h
index d7068c6c42..6332729d45 100644
--- a/src/include/optimizer/clauses.h
+++ b/src/include/optimizer/clauses.h
@@ -6,7 +6,7 @@
*
* Copyright (c) 1994, Regents of the University of California
*
- * $Id: clauses.h,v 1.15 1999/02/13 23:21:42 momjian Exp $
+ * $Id: clauses.h,v 1.16 1999/02/18 00:49:46 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -14,6 +14,7 @@
#define CLAUSES_H
#include <nodes/primnodes.h>
+#include <nodes/relation.h>
extern Expr *make_clause(int type, Node *oper, List *args);
extern bool is_opclause(Node *clause);
@@ -37,7 +38,7 @@ extern Expr *make_andclause(List *andclauses);
extern bool case_clause(Node *clause);
extern List *pull_constant_clauses(List *quals, List **constantQual);
-extern void clause_get_relids_vars(Node *clause, List **relids, List **vars);
+extern void clause_get_relids_vars(Node *clause, Relids *relids, List **vars);
extern int NumRelids(Node *clause);
extern bool contains_not(Node *clause);
extern bool is_joinable(Node *clause);
diff --git a/src/include/optimizer/pathnode.h b/src/include/optimizer/pathnode.h
index 74a651e4c2..1a52453d0d 100644
--- a/src/include/optimizer/pathnode.h
+++ b/src/include/optimizer/pathnode.h
@@ -6,7 +6,7 @@
*
* Copyright (c) 1994, Regents of the University of California
*
- * $Id: pathnode.h,v 1.14 1999/02/13 23:21:49 momjian Exp $
+ * $Id: pathnode.h,v 1.15 1999/02/18 00:49:46 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -42,9 +42,9 @@ extern HashPath *create_hashjoin_path(RelOptInfo *joinrel, int outersize,
/*
* prototypes for rel.c
*/
-extern RelOptInfo *rel_member(List *relid, List *rels);
+extern RelOptInfo *rel_member(Relids relid, List *rels);
extern RelOptInfo *get_base_rel(Query *root, int relid);
-extern RelOptInfo *get_join_rel(Query *root, List *relid);
+extern RelOptInfo *get_join_rel(Query *root, Relids relid);
/*
* prototypes for indexnode.h
diff --git a/src/include/optimizer/paths.h b/src/include/optimizer/paths.h
index 4e1bfe3323..f49d018255 100644
--- a/src/include/optimizer/paths.h
+++ b/src/include/optimizer/paths.h
@@ -7,7 +7,7 @@
*
* Copyright (c) 1994, Regents of the University of California
*
- * $Id: paths.h,v 1.20 1999/02/16 00:41:03 momjian Exp $
+ * $Id: paths.h,v 1.21 1999/02/18 00:49:47 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -78,9 +78,8 @@ extern MergeInfo *match_order_mergeinfo(PathOrder *ordering,
* routines to determine which relations to join
*/
extern List *make_rels_by_joins(Query *root, List *outer_rels);
-extern void add_rel_to_rel_joininfos(Query *root, List *joinrels, List *outerrels);
extern List *make_rels_by_clause_joins(Query *root, RelOptInfo *outer_rel,
- List *joininfo_list, List *only_relids);
+ List *joininfo_list, Relids only_relids);
extern List *make_rels_by_clauseless_joins(RelOptInfo *outer_rel,
List *inner_rels);
extern RelOptInfo *make_join_rel(RelOptInfo *outer_rel, RelOptInfo *inner_rel, JoinInfo *joininfo);
diff --git a/src/include/optimizer/xfunc.h b/src/include/optimizer/xfunc.h
index 5c95cc1dbb..e96c547481 100644
--- a/src/include/optimizer/xfunc.h
+++ b/src/include/optimizer/xfunc.h
@@ -6,7 +6,7 @@
*
* Copyright (c) 1994, Regents of the University of California
*
- * $Id: xfunc.h,v 1.15 1999/02/13 23:21:54 momjian Exp $
+ * $Id: xfunc.h,v 1.16 1999/02/18 00:49:48 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -62,8 +62,8 @@ extern Cost xfunc_func_expense(Expr *node, List *args);
extern int xfunc_width(Expr *clause);
/* static, moved to xfunc.c */
-/* extern int xfunc_card_unreferenced(Expr *clause, Relid referenced); */
-extern int xfunc_card_product(Relid relids);
+/* extern int xfunc_card_unreferenced(Expr *clause, Relids referenced); */
+extern int xfunc_card_product(Relids relids);
extern List *xfunc_find_references(List *clause);
extern List *xfunc_primary_join(JoinPath *pathnode);
extern Cost xfunc_get_path_cost(Path *pathnode);