]> granicus.if.org Git - postgresql/blob - src/include/optimizer/prep.h
5ce9b6cd7667e9b6ada53639e68589d75dc9ea2d
[postgresql] / src / include / optimizer / prep.h
1 /*-------------------------------------------------------------------------
2  *
3  * prep.h
4  *        prototypes for files in optimizer/prep/
5  *
6  *
7  * Portions Copyright (c) 1996-2005, PostgreSQL Global Development Group
8  * Portions Copyright (c) 1994, Regents of the University of California
9  *
10  * $PostgreSQL: pgsql/src/include/optimizer/prep.h,v 1.47 2004/12/31 22:03:36 pgsql Exp $
11  *
12  *-------------------------------------------------------------------------
13  */
14 #ifndef PREP_H
15 #define PREP_H
16
17 #include "nodes/parsenodes.h"
18 #include "nodes/plannodes.h"
19 #include "nodes/relation.h"
20
21
22 /*
23  * prototypes for prepjointree.c
24  */
25 extern int      from_collapse_limit;
26 extern int      join_collapse_limit;
27
28 extern Node *pull_up_IN_clauses(Query *parse, Node *node);
29 extern Node *pull_up_subqueries(Query *parse, Node *jtnode,
30                                    bool below_outer_join);
31 extern void reduce_outer_joins(Query *parse);
32 extern Node *simplify_jointree(Query *parse, Node *jtnode);
33 extern Relids get_relids_in_jointree(Node *jtnode);
34 extern Relids get_relids_for_join(Query *parse, int joinrelid);
35
36 /*
37  * prototypes for prepqual.c
38  */
39 extern Expr *canonicalize_qual(Expr *qual);
40 extern Node *flatten_andors(Node *node);
41
42 /*
43  * prototypes for preptlist.c
44  */
45 extern List *preprocess_targetlist(List *tlist, int command_type,
46                                           Index result_relation, List *range_table);
47
48 /*
49  * prototypes for prepunion.c
50  */
51 extern Plan *plan_set_operations(Query *parse, List **sortClauses);
52
53 extern List *find_all_inheritors(Oid parentrel);
54
55 extern List *expand_inherited_rtentry(Query *parse, Index rti);
56
57 extern Node *adjust_inherited_attrs(Node *node,
58                                            Index old_rt_index, Oid old_relid,
59                                            Index new_rt_index, Oid new_relid);
60
61 #endif   /* PREP_H */