1 /*-------------------------------------------------------------------------
4 * prototypes for various files in optimizer/plan
7 * Copyright (c) 1994, Regents of the University of California
9 * $Id: planmain.h,v 1.4 1997/09/08 20:58:56 momjian Exp $
11 *-------------------------------------------------------------------------
18 * prototypes for plan/planmain.c
21 query_planner(Query * root,
22 int command_type, List * tlist, List * qual);
26 * prototypes for plan/createplan.c
28 extern Plan *create_plan(Path * best_path);
30 make_seqscan(List * qptlist, List * qpqual, Index scanrelid,
33 make_sort(List * tlist, Oid tempid, Plan * lefttree,
35 extern Agg *make_agg(List * tlist, int nagg, Aggreg **aggs);
37 make_group(List * tlist, bool tuplePerGroup, int ngrp,
38 AttrNumber *grpColIdx, Sort * lefttree);
39 extern Unique *make_unique(List * tlist, Plan * lefttree, char *uniqueAttr);
40 extern List *generate_fjoin(List * tlist);
44 * prototypes for plan/initsplan.c
46 extern void initialize_base_rels_list(Query * root, List * tlist);
47 extern void initialize_base_rels_jinfo(Query * root, List * clauses);
48 extern void initialize_join_clause_info(List * rel_list);
49 extern void add_missing_vars_to_base_rels(Query * root, List * tlist);
52 * prototypes for plan/setrefs.c
54 extern void set_tlist_references(Plan * plan);
56 join_references(List * clauses, List * outer_tlist,
59 index_outerjoin_references(List * inner_indxqual,
60 List * outer_tlist, Index inner_relid);
61 extern void set_result_tlist_references(Result * resultNode);
62 extern void set_agg_tlist_references(Agg *aggNode);
63 extern void set_agg_agglist_references(Agg *aggNode);
66 #endif /* PLANMAIN_H */