diff options
| author | Tom Lane | 2003-02-08 20:20:55 +0000 |
|---|---|---|
| committer | Tom Lane | 2003-02-08 20:20:55 +0000 |
| commit | c15a4c2aef3ca78a530778b735d43aa04d103ea6 (patch) | |
| tree | 3106de03d9476a891c6e85cbf5dd477c8661f087 /src/include/optimizer | |
| parent | 893678eda7de9db57beccfd2755836c1bea39112 (diff) | |
Replace planner's representation of relation sets, per pghackers discussion.
Instead of Lists of integers, we now store variable-length bitmap sets.
This should be faster as well as less error-prone.
Diffstat (limited to 'src/include/optimizer')
| -rw-r--r-- | src/include/optimizer/pathnode.h | 13 | ||||
| -rw-r--r-- | src/include/optimizer/prep.h | 8 | ||||
| -rw-r--r-- | src/include/optimizer/var.h | 6 |
3 files changed, 15 insertions, 12 deletions
diff --git a/src/include/optimizer/pathnode.h b/src/include/optimizer/pathnode.h index 759b18c2499..e842a699b17 100644 --- a/src/include/optimizer/pathnode.h +++ b/src/include/optimizer/pathnode.h @@ -7,7 +7,7 @@ * Portions Copyright (c) 1996-2002, PostgreSQL Global Development Group * Portions Copyright (c) 1994, Regents of the University of California * - * $Id: pathnode.h,v 1.48 2003/01/20 18:55:05 tgl Exp $ + * $Id: pathnode.h,v 1.49 2003/02/08 20:20:55 tgl Exp $ * *------------------------------------------------------------------------- */ @@ -16,6 +16,7 @@ #include "nodes/relation.h" + /* * prototypes for pathnode.c */ @@ -77,10 +78,10 @@ extern void build_base_rel(Query *root, int relid); extern RelOptInfo *build_other_rel(Query *root, int relid); extern RelOptInfo *find_base_rel(Query *root, int relid); extern RelOptInfo *build_join_rel(Query *root, - List *joinrelids, - RelOptInfo *outer_rel, - RelOptInfo *inner_rel, - JoinType jointype, - List **restrictlist_ptr); + Relids joinrelids, + RelOptInfo *outer_rel, + RelOptInfo *inner_rel, + JoinType jointype, + List **restrictlist_ptr); #endif /* PATHNODE_H */ diff --git a/src/include/optimizer/prep.h b/src/include/optimizer/prep.h index 458539a8174..103e4630cfa 100644 --- a/src/include/optimizer/prep.h +++ b/src/include/optimizer/prep.h @@ -7,7 +7,7 @@ * Portions Copyright (c) 1996-2002, PostgreSQL Global Development Group * Portions Copyright (c) 1994, Regents of the University of California * - * $Id: prep.h,v 1.35 2003/01/25 23:10:30 tgl Exp $ + * $Id: prep.h,v 1.36 2003/02/08 20:20:55 tgl Exp $ * *------------------------------------------------------------------------- */ @@ -16,6 +16,8 @@ #include "nodes/parsenodes.h" #include "nodes/plannodes.h" +#include "nodes/relation.h" + /* * prototypes for prepjointree.c @@ -27,8 +29,8 @@ extern Node *pull_up_IN_clauses(Query *parse, Node *node); extern Node *pull_up_subqueries(Query *parse, Node *jtnode, bool below_outer_join); extern Node *preprocess_jointree(Query *parse, Node *jtnode); -extern List *get_relids_in_jointree(Node *jtnode); -extern List *get_relids_for_join(Query *parse, int joinrelid); +extern Relids get_relids_in_jointree(Node *jtnode); +extern Relids get_relids_for_join(Query *parse, int joinrelid); /* * prototypes for prepqual.c diff --git a/src/include/optimizer/var.h b/src/include/optimizer/var.h index b207acac593..3c84020ef92 100644 --- a/src/include/optimizer/var.h +++ b/src/include/optimizer/var.h @@ -7,17 +7,17 @@ * Portions Copyright (c) 1996-2002, PostgreSQL Global Development Group * Portions Copyright (c) 1994, Regents of the University of California * - * $Id: var.h,v 1.25 2003/01/20 18:55:06 tgl Exp $ + * $Id: var.h,v 1.26 2003/02/08 20:20:55 tgl Exp $ * *------------------------------------------------------------------------- */ #ifndef VAR_H #define VAR_H -#include "nodes/parsenodes.h" +#include "nodes/relation.h" -extern List *pull_varnos(Node *node); +extern Relids pull_varnos(Node *node); extern bool contain_var_reference(Node *node, int varno, int varattno, int levelsup); extern bool contain_whole_tuple_var(Node *node, int varno, int levelsup); |
