Header And Logo

PostgreSQL
| The world's most advanced open source database.

prep.h

Go to the documentation of this file.
00001 /*-------------------------------------------------------------------------
00002  *
00003  * prep.h
00004  *    prototypes for files in optimizer/prep/
00005  *
00006  *
00007  * Portions Copyright (c) 1996-2013, PostgreSQL Global Development Group
00008  * Portions Copyright (c) 1994, Regents of the University of California
00009  *
00010  * src/include/optimizer/prep.h
00011  *
00012  *-------------------------------------------------------------------------
00013  */
00014 #ifndef PREP_H
00015 #define PREP_H
00016 
00017 #include "nodes/plannodes.h"
00018 #include "nodes/relation.h"
00019 
00020 
00021 /*
00022  * prototypes for prepjointree.c
00023  */
00024 extern void pull_up_sublinks(PlannerInfo *root);
00025 extern void inline_set_returning_functions(PlannerInfo *root);
00026 extern Node *pull_up_subqueries(PlannerInfo *root, Node *jtnode);
00027 extern void flatten_simple_union_all(PlannerInfo *root);
00028 extern void reduce_outer_joins(PlannerInfo *root);
00029 extern Relids get_relids_in_jointree(Node *jtnode, bool include_joins);
00030 extern Relids get_relids_for_join(PlannerInfo *root, int joinrelid);
00031 
00032 /*
00033  * prototypes for prepqual.c
00034  */
00035 extern Node *negate_clause(Node *node);
00036 extern Expr *canonicalize_qual(Expr *qual);
00037 
00038 /*
00039  * prototypes for preptlist.c
00040  */
00041 extern List *preprocess_targetlist(PlannerInfo *root, List *tlist);
00042 
00043 extern PlanRowMark *get_plan_rowmark(List *rowmarks, Index rtindex);
00044 
00045 /*
00046  * prototypes for prepunion.c
00047  */
00048 extern Plan *plan_set_operations(PlannerInfo *root, double tuple_fraction,
00049                     List **sortClauses);
00050 
00051 extern void expand_inherited_tables(PlannerInfo *root);
00052 
00053 extern Node *adjust_appendrel_attrs(PlannerInfo *root, Node *node,
00054                        AppendRelInfo *appinfo);
00055 
00056 #endif   /* PREP_H */