diff options
Diffstat (limited to 'src/include')
-rw-r--r-- | src/include/nodes/relation.h | 3 | ||||
-rw-r--r-- | src/include/optimizer/cost.h | 8 | ||||
-rw-r--r-- | src/include/optimizer/pathnode.h | 4 | ||||
-rw-r--r-- | src/include/optimizer/paths.h | 11 |
4 files changed, 11 insertions, 15 deletions
diff --git a/src/include/nodes/relation.h b/src/include/nodes/relation.h index b5c024df315..4698e4d8cb3 100644 --- a/src/include/nodes/relation.h +++ b/src/include/nodes/relation.h @@ -7,7 +7,7 @@ * Portions Copyright (c) 1996-2005, PostgreSQL Global Development Group * Portions Copyright (c) 1994, Regents of the University of California * - * $PostgreSQL: pgsql/src/include/nodes/relation.h,v 1.103 2005/02/21 06:43:04 neilc Exp $ + * $PostgreSQL: pgsql/src/include/nodes/relation.h,v 1.104 2005/03/27 06:29:45 tgl Exp $ * *------------------------------------------------------------------------- */ @@ -253,6 +253,7 @@ typedef struct IndexOptInfo NodeTag type; Oid indexoid; /* OID of the index relation */ + RelOptInfo *rel; /* back-link to index's table */ /* statistics from pg_class */ BlockNumber pages; /* number of disk pages in index */ diff --git a/src/include/optimizer/cost.h b/src/include/optimizer/cost.h index 6fc3487a900..9e379dd0c4b 100644 --- a/src/include/optimizer/cost.h +++ b/src/include/optimizer/cost.h @@ -7,7 +7,7 @@ * Portions Copyright (c) 1996-2005, PostgreSQL Global Development Group * Portions Copyright (c) 1994, Regents of the University of California * - * $PostgreSQL: pgsql/src/include/optimizer/cost.h,v 1.62 2004/12/31 22:03:36 pgsql Exp $ + * $PostgreSQL: pgsql/src/include/optimizer/cost.h,v 1.63 2005/03/27 06:29:49 tgl Exp $ * *------------------------------------------------------------------------- */ @@ -50,10 +50,8 @@ extern bool enable_mergejoin; extern bool enable_hashjoin; extern double clamp_row_est(double nrows); -extern void cost_seqscan(Path *path, Query *root, - RelOptInfo *baserel); -extern void cost_index(Path *path, Query *root, - RelOptInfo *baserel, IndexOptInfo *index, +extern void cost_seqscan(Path *path, Query *root, RelOptInfo *baserel); +extern void cost_index(Path *path, Query *root, IndexOptInfo *index, List *indexQuals, bool is_injoin); extern void cost_tidscan(Path *path, Query *root, RelOptInfo *baserel, List *tideval); diff --git a/src/include/optimizer/pathnode.h b/src/include/optimizer/pathnode.h index 1efa6546492..44e9b087b33 100644 --- a/src/include/optimizer/pathnode.h +++ b/src/include/optimizer/pathnode.h @@ -7,7 +7,7 @@ * Portions Copyright (c) 1996-2005, PostgreSQL Global Development Group * Portions Copyright (c) 1994, Regents of the University of California * - * $PostgreSQL: pgsql/src/include/optimizer/pathnode.h,v 1.56 2004/12/31 22:03:36 pgsql Exp $ + * $PostgreSQL: pgsql/src/include/optimizer/pathnode.h,v 1.57 2005/03/27 06:29:49 tgl Exp $ * *------------------------------------------------------------------------- */ @@ -28,7 +28,7 @@ extern void set_cheapest(RelOptInfo *parent_rel); extern void add_path(RelOptInfo *parent_rel, Path *new_path); extern Path *create_seqscan_path(Query *root, RelOptInfo *rel); -extern IndexPath *create_index_path(Query *root, RelOptInfo *rel, +extern IndexPath *create_index_path(Query *root, IndexOptInfo *index, List *restriction_clauses, List *pathkeys, diff --git a/src/include/optimizer/paths.h b/src/include/optimizer/paths.h index d159e1ecf4e..28c44444d70 100644 --- a/src/include/optimizer/paths.h +++ b/src/include/optimizer/paths.h @@ -8,7 +8,7 @@ * Portions Copyright (c) 1996-2005, PostgreSQL Global Development Group * Portions Copyright (c) 1994, Regents of the University of California * - * $PostgreSQL: pgsql/src/include/optimizer/paths.h,v 1.79 2005/03/26 23:29:20 tgl Exp $ + * $PostgreSQL: pgsql/src/include/optimizer/paths.h,v 1.80 2005/03/27 06:29:49 tgl Exp $ * *------------------------------------------------------------------------- */ @@ -38,11 +38,9 @@ extern void debug_print_rel(Query *root, RelOptInfo *rel); extern void create_index_paths(Query *root, RelOptInfo *rel); extern Path *best_inner_indexscan(Query *root, RelOptInfo *rel, Relids outer_relids, JoinType jointype); -extern List *group_clauses_by_indexkey_for_or(RelOptInfo *rel, - IndexOptInfo *index, +extern List *group_clauses_by_indexkey_for_or(IndexOptInfo *index, Expr *orsubclause); -extern List *expand_indexqual_conditions(RelOptInfo *rel, - IndexOptInfo *index, +extern List *expand_indexqual_conditions(IndexOptInfo *index, List *clausegroups); extern void check_partial_indexes(Query *root, RelOptInfo *rel); extern bool pred_test(List *predicate_list, List *restrictinfo_list); @@ -108,8 +106,7 @@ extern Path *get_cheapest_path_for_pathkeys(List *paths, List *pathkeys, extern Path *get_cheapest_fractional_path_for_pathkeys(List *paths, List *pathkeys, double fraction); -extern List *build_index_pathkeys(Query *root, RelOptInfo *rel, - IndexOptInfo *index, +extern List *build_index_pathkeys(Query *root, IndexOptInfo *index, ScanDirection scandir); extern List *build_subquery_pathkeys(Query *root, RelOptInfo *rel, Query *subquery); |