]> granicus.if.org Git - postgresql/blobdiff - src/include/optimizer/prep.h
Extend set-operation planning to keep track of the sort ordering induced
[postgresql] / src / include / optimizer / prep.h
index ca42b88dff1ecabba96812dbf7285fccba8e8a22..7f38bb795a7aea9cec4535c743ac7773d9fb6c8b 100644 (file)
@@ -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 <nodes/plannodes.h>
-#include <nodes/parsenodes.h>
+#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 */