codekingpro/portable-devtools
115k
1/*-------------------------------------------------------------------------2 *3 * prep.h4 * prototypes for files in optimizer/prep/5 *6 *7 * Portions Copyright (c) 1996-2023, PostgreSQL Global Development Group8 * Portions Copyright (c) 1994, Regents of the University of California9 *10 * src/include/optimizer/prep.h11 *12 *-------------------------------------------------------------------------13 */14#ifndef PREP_H15#define PREP_H16 17#include "nodes/pathnodes.h"18#include "nodes/plannodes.h"19 20 21/*22 * prototypes for prepjointree.c23 */24extern void transform_MERGE_to_join(Query *parse);25extern void replace_empty_jointree(Query *parse);26extern void pull_up_sublinks(PlannerInfo *root);27extern void preprocess_function_rtes(PlannerInfo *root);28extern void pull_up_subqueries(PlannerInfo *root);29extern void flatten_simple_union_all(PlannerInfo *root);30extern void reduce_outer_joins(PlannerInfo *root);31extern void remove_useless_result_rtes(PlannerInfo *root);32extern Relids get_relids_in_jointree(Node *jtnode, bool include_outer_joins,33 bool include_inner_joins);34extern Relids get_relids_for_join(Query *query, int joinrelid);35 36/*37 * prototypes for preptlist.c38 */39extern void preprocess_targetlist(PlannerInfo *root);40 41extern List *extract_update_targetlist_colnos(List *tlist);42 43extern PlanRowMark *get_plan_rowmark(List *rowmarks, Index rtindex);44 45/*46 * prototypes for prepagg.c47 */48extern void get_agg_clause_costs(PlannerInfo *root, AggSplit aggsplit,49 AggClauseCosts *costs);50extern void preprocess_aggrefs(PlannerInfo *root, Node *clause);51 52/*53 * prototypes for prepunion.c54 */55extern RelOptInfo *plan_set_operations(PlannerInfo *root);56 57 58#endif /* PREP_H */59 