1 /*------------------------------------------------------------------------- 2 * 3 * prep.h 4 * prototypes for files in optimizer/prep/ 5 * 6 * 7 * Portions Copyright (c) 1996-2019, PostgreSQL Global Development Group 8 * Portions Copyright (c) 1994, Regents of the University of California 9 * 10 * src/include/optimizer/prep.h 11 * 12 *------------------------------------------------------------------------- 13 */ 14 #ifndef PREP_H 15 #define PREP_H 16 17 #include "nodes/pathnodes.h" 18 #include "nodes/plannodes.h" 19 20 21 /* 22 * prototypes for prepjointree.c 23 */ 24 extern void replace_empty_jointree(Query *parse); 25 extern void pull_up_sublinks(PlannerInfo *root); 26 extern void inline_set_returning_functions(PlannerInfo *root); 27 extern void pull_up_subqueries(PlannerInfo *root); 28 extern void flatten_simple_union_all(PlannerInfo *root); 29 extern void reduce_outer_joins(PlannerInfo *root); resetNumMergeOperatorCalls()30extern void remove_useless_result_rtes(PlannerInfo *root); 31 extern Relids get_relids_in_jointree(Node *jtnode, bool include_joins); 32 extern Relids get_relids_for_join(Query *query, int joinrelid); resetNumPartialMergeCalls()33 34 /* 35 * prototypes for preptlist.c 36 */ 37 extern List *preprocess_targetlist(PlannerInfo *root); 38 39 extern PlanRowMark *get_plan_rowmark(List *rowmarks, Index rtindex); 40 Merge(const Slice & key,const Slice * existing_value,const Slice & value,std::string * new_value,Logger * logger) const41/* 42 * prototypes for prepunion.c 43 */ 44 extern RelOptInfo *plan_set_operations(PlannerInfo *root); 45 46 #endif /* PREP_H */ 47