1 /*-------------------------------------------------------------------------
4 * prototypes for files in optimizer/prep/
7 * Portions Copyright (c) 1996-2022, PostgreSQL Global Development Group
8 * Portions Copyright (c) 1994, Regents of the University of California
10 * src/include/optimizer/prep.h
12 *-------------------------------------------------------------------------
17 #include "nodes/pathnodes.h"
18 #include "nodes/plannodes.h"
22 * prototypes for prepjointree.c
24 extern void replace_empty_jointree(Query
*parse
);
25 extern void pull_up_sublinks(PlannerInfo
*root
);
26 extern void preprocess_function_rtes(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
);
30 extern 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
);
35 * prototypes for preptlist.c
37 extern void preprocess_targetlist(PlannerInfo
*root
);
39 extern List
*extract_update_targetlist_colnos(List
*tlist
);
41 extern PlanRowMark
*get_plan_rowmark(List
*rowmarks
, Index rtindex
);
44 * prototypes for prepagg.c
46 extern void get_agg_clause_costs(PlannerInfo
*root
, AggSplit aggsplit
,
47 AggClauseCosts
*agg_costs
);
48 extern void preprocess_aggrefs(PlannerInfo
*root
, Node
*clause
);
51 * prototypes for prepunion.c
53 extern RelOptInfo
*plan_set_operations(PlannerInfo
*root
);