X-Git-Url: https://granicus.if.org/sourcecode?a=blobdiff_plain;f=src%2Finclude%2Foptimizer%2Fprep.h;h=7f38bb795a7aea9cec4535c743ac7773d9fb6c8b;hb=989067bd2208398d803e784582e96811d652f574;hp=ca42b88dff1ecabba96812dbf7285fccba8e8a22;hpb=e9e1ff226f285bc7b488e670be4b8220cdba4a53;p=postgresql diff --git a/src/include/optimizer/prep.h b/src/include/optimizer/prep.h index ca42b88dff..7f38bb795a 100644 --- a/src/include/optimizer/prep.h +++ b/src/include/optimizer/prep.h @@ -1,50 +1,62 @@ /*------------------------------------------------------------------------- * - * prep.h-- - * prototypes for files in prep.c + * prep.h + * prototypes for files in optimizer/prep/ * * - * Copyright (c) 1994, Regents of the University of California + * Portions Copyright (c) 1996-2003, PostgreSQL Global Development Group + * Portions Copyright (c) 1994, Regents of the University of California * - * $Id: prep.h,v 1.6 1997/11/20 23:23:48 momjian Exp $ + * $PostgreSQL: pgsql/src/include/optimizer/prep.h,v 1.44 2004/04/07 18:17:25 tgl Exp $ * *------------------------------------------------------------------------- */ #ifndef PREP_H #define PREP_H -#include -#include +#include "nodes/parsenodes.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(Query *parse, Node *node); +extern Node *pull_up_subqueries(Query *parse, Node *jtnode, + bool below_outer_join); +extern void reduce_outer_joins(Query *parse); +extern Node *simplify_jointree(Query *parse, Node *jtnode); +extern Relids get_relids_in_jointree(Node *jtnode); +extern Relids get_relids_for_join(Query *parse, int joinrelid); /* - * prototypes for prepqual.h + * prototypes for prepqual.c */ -extern List * -preprocess_qualification(Expr *qual, List *tlist, - List **existentialQualPtr); -extern List *cnfify(Expr *qual, bool removeAndFlag); +extern Expr *canonicalize_qual(Expr *qual); +extern Node *flatten_andors(Node *node); /* - * prototypes for preptlist.h + * prototypes for preptlist.c */ -extern List * -preprocess_targetlist(List *tlist, int command_type, +extern List *preprocess_targetlist(List *tlist, int command_type, Index result_relation, List *range_table); /* - * prototypes for prepunion.h + * prototypes for prepunion.c */ -typedef enum UnionFlag -{ - INHERITS_FLAG, ARCHIVE_FLAG, VERSION_FLAG -} UnionFlag; - -extern List * -find_all_inheritors(List *unexamined_relids, - List *examined_relids); -extern int first_matching_rt_entry(List *rangetable, UnionFlag flag); -extern Append * -plan_union_queries(Index rt_index, Query *parse, - UnionFlag flag); - -#endif /* PREP_H */ +extern Plan *plan_set_operations(Query *parse, List **sortClauses); + +extern List *find_all_inheritors(Oid parentrel); + +extern List *expand_inherited_rtentry(Query *parse, Index rti, + bool dup_parent); + +extern Node *adjust_inherited_attrs(Node *node, + Index old_rt_index, Oid old_relid, + Index new_rt_index, Oid new_relid); + +#endif /* PREP_H */