diff options
Diffstat (limited to 'src/include/optimizer')
-rw-r--r-- | src/include/optimizer/paths.h | 8 | ||||
-rw-r--r-- | src/include/optimizer/planmain.h | 9 | ||||
-rw-r--r-- | src/include/optimizer/tlist.h | 11 |
3 files changed, 19 insertions, 9 deletions
diff --git a/src/include/optimizer/paths.h b/src/include/optimizer/paths.h index b0ec64c3e32..58da94368c9 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.34 1999/08/16 02:17:45 tgl Exp $ + * $Id: paths.h,v 1.35 1999/08/21 03:49:15 tgl Exp $ * *------------------------------------------------------------------------- */ @@ -56,11 +56,15 @@ typedef enum extern PathKeysComparison compare_pathkeys(List *keys1, List *keys2); extern bool pathkeys_contained_in(List *keys1, List *keys2); -extern Path *get_cheapest_path_for_pathkeys(List *paths, List *pathkeys); +extern Path *get_cheapest_path_for_pathkeys(List *paths, List *pathkeys, + bool indexpaths_only); extern List *build_index_pathkeys(Query *root, RelOptInfo *rel, RelOptInfo *index); extern List *build_join_pathkeys(List *outer_pathkeys, List *join_rel_tlist, List *joinclauses); +extern bool commute_pathkeys(List *pathkeys); +extern List *make_pathkeys_for_sortclauses(List *sortclauses, + List *tlist); extern List *find_mergeclauses_for_pathkeys(List *pathkeys, List *restrictinfos); extern List *make_pathkeys_for_mergeclauses(List *mergeclauses, diff --git a/src/include/optimizer/planmain.h b/src/include/optimizer/planmain.h index 0ba017471d1..38ff367384b 100644 --- a/src/include/optimizer/planmain.h +++ b/src/include/optimizer/planmain.h @@ -6,7 +6,7 @@ * * Copyright (c) 1994, Regents of the University of California * - * $Id: planmain.h,v 1.30 1999/08/09 00:56:04 tgl Exp $ + * $Id: planmain.h,v 1.31 1999/08/21 03:49:15 tgl Exp $ * *------------------------------------------------------------------------- */ @@ -33,7 +33,7 @@ extern Sort *make_sort(List *tlist, Oid nonameid, Plan *lefttree, int keycount); extern Agg *make_agg(List *tlist, Plan *lefttree); extern Group *make_group(List *tlist, bool tuplePerGroup, int ngrp, - AttrNumber *grpColIdx, Sort *lefttree); + AttrNumber *grpColIdx, Plan *lefttree); extern Unique *make_unique(List *tlist, Plan *lefttree, char *uniqueAttr); /* @@ -54,9 +54,14 @@ extern void replace_tlist_with_subplan_refs(List *tlist, Index subvarno, List *subplanTargetList); extern bool set_agg_tlist_references(Agg *aggNode); +extern List *pull_agg_clause(Node *clause); extern void check_having_for_ungrouped_vars(Node *clause, List *groupClause, List *targetList); + +/* + * prep/prepkeyset.c + */ extern void transformKeySetQuery(Query *origNode); #endif /* PLANMAIN_H */ diff --git a/src/include/optimizer/tlist.h b/src/include/optimizer/tlist.h index fb08b708352..f0ddb9ac9dc 100644 --- a/src/include/optimizer/tlist.h +++ b/src/include/optimizer/tlist.h @@ -6,7 +6,7 @@ * * Copyright (c) 1994, Regents of the University of California * - * $Id: tlist.h,v 1.20 1999/08/16 02:17:45 tgl Exp $ + * $Id: tlist.h,v 1.21 1999/08/21 03:49:15 tgl Exp $ * *------------------------------------------------------------------------- */ @@ -21,16 +21,17 @@ extern void add_var_to_tlist(RelOptInfo *rel, Var *var); extern TargetEntry *create_tl_element(Var *var, int resdomno); extern List *get_actual_tlist(List *tlist); extern Resdom *tlist_member(Var *var, List *tlist); -extern Resdom *tlist_resdom(List *tlist, Resdom *resnode); extern TargetEntry *match_varid(Var *test_var, List *tlist); extern List *new_unsorted_tlist(List *targetlist); extern List *copy_vars(List *target, List *source); extern List *flatten_tlist(List *tlist); -extern List *flatten_tlist_vars(List *full_tlist, - List *flat_tlist); +extern List *add_to_flat_tlist(List *tlist, List *vars); +extern List *unflatten_tlist(List *full_tlist, + List *flat_tlist); extern Var *get_expr(TargetEntry *tle); -extern Var *get_groupclause_expr(GroupClause *groupClause, List *targetList); +extern Node *get_sortgroupclause_expr(SortClause *sortClause, + List *targetList); #endif /* TLIST_H */ |