]> granicus.if.org Git - postgresql/blob - src/include/optimizer/planmain.h
Add typdefs to pgindent run.
[postgresql] / src / include / optimizer / planmain.h
1 /*-------------------------------------------------------------------------
2  *
3  * planmain.h--
4  *        prototypes for various files in optimizer/plan
5  *
6  *
7  * Copyright (c) 1994, Regents of the University of California
8  *
9  * $Id: planmain.h,v 1.4 1997/09/08 20:58:56 momjian Exp $
10  *
11  *-------------------------------------------------------------------------
12  */
13 #ifndef PLANMAIN_H
14 #define PLANMAIN_H
15
16
17 /*
18  * prototypes for plan/planmain.c
19  */
20 extern Plan *
21 query_planner(Query * root,
22                           int command_type, List * tlist, List * qual);
23
24
25 /*
26  * prototypes for plan/createplan.c
27  */
28 extern Plan *create_plan(Path * best_path);
29 extern SeqScan *
30 make_seqscan(List * qptlist, List * qpqual, Index scanrelid,
31                          Plan * lefttree);
32 extern Sort *
33 make_sort(List * tlist, Oid tempid, Plan * lefttree,
34                   int keycount);
35 extern Agg *make_agg(List * tlist, int nagg, Aggreg **aggs);
36 extern Group *
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);
41
42
43 /*
44  * prototypes for plan/initsplan.c
45  */
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);
50
51 /*
52  * prototypes for plan/setrefs.c
53  */
54 extern void set_tlist_references(Plan * plan);
55 extern List *
56 join_references(List * clauses, List * outer_tlist,
57                                 List * inner_tlist);
58 extern List *
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);
64
65
66 #endif                                                  /* PLANMAIN_H */