/*------------------------------------------------------------------------- * * prep.h * prototypes for files in optimizer/prep/ * * * Portions Copyright (c) 1996-2005, PostgreSQL Global Development Group * Portions Copyright (c) 1994, Regents of the University of California * * $PostgreSQL: pgsql/src/include/optimizer/prep.h,v 1.52 2005/10/15 02:49:45 momjian Exp $ * *------------------------------------------------------------------------- */ #ifndef PREP_H #define PREP_H #include "nodes/plannodes.h" #include "nodes/relation.h" /* * prototypes for prepjointree.c */ extern int from_collapse_limit; extern int join_collapse_limit; extern Node *pull_up_IN_clauses(PlannerInfo *root, Node *node); extern Node *pull_up_subqueries(PlannerInfo *root, Node *jtnode, bool below_outer_join); extern void reduce_outer_joins(PlannerInfo *root); extern Node *simplify_jointree(PlannerInfo *root, Node *jtnode); extern Relids get_relids_in_jointree(Node *jtnode); extern Relids get_relids_for_join(PlannerInfo *root, int joinrelid); /* * prototypes for prepqual.c */ extern Expr *canonicalize_qual(Expr *qual); /* * prototypes for preptlist.c */ extern List *preprocess_targetlist(PlannerInfo *root, List *tlist); /* * prototypes for prepunion.c */ extern Plan *plan_set_operations(PlannerInfo *root, double tuple_fraction, List **sortClauses); extern List *find_all_inheritors(Oid parentrel); extern List *expand_inherited_rtentry(PlannerInfo *root, Index rti); extern Node *adjust_inherited_attrs(Node *node, Index old_rt_index, Oid old_relid, Index new_rt_index, Oid new_relid); #endif /* PREP_H */