]> granicus.if.org Git - postgresql/blobdiff - src/include/optimizer/planner.h
pgindent run for release 9.3
[postgresql] / src / include / optimizer / planner.h
index da90b768c611f6b973172a02c4b603bc6ae1a628..11fdd536b279399e26dd5a370bd5a243c59425fc 100644 (file)
@@ -1,22 +1,49 @@
 /*-------------------------------------------------------------------------
  *
- * planner.h--
+ * planner.h
  *       prototypes for planner.c.
  *
  *
- * Copyright (c) 1994, Regents of the University of California
+ * Portions Copyright (c) 1996-2013, PostgreSQL Global Development Group
+ * Portions Copyright (c) 1994, Regents of the University of California
  *
- * $Id: planner.h,v 1.5 1997/09/08 21:53:29 momjian Exp $
+ * src/include/optimizer/planner.h
  *
  *-------------------------------------------------------------------------
  */
 #ifndef PLANNER_H
 #define PLANNER_H
 
-/*
-*/
+#include "nodes/plannodes.h"
+#include "nodes/relation.h"
 
-extern Plan *planner(Query *parse);
-extern void pg_checkretval(Oid rettype, QueryTreeList *querytree_list);
 
-#endif                                                 /* PLANNER_H */
+/* Hook for plugins to get control in planner() */
+typedef PlannedStmt *(*planner_hook_type) (Query *parse,
+                                                                                                          int cursorOptions,
+                                                                                                 ParamListInfo boundParams);
+extern PGDLLIMPORT planner_hook_type planner_hook;
+
+
+extern PlannedStmt *planner(Query *parse, int cursorOptions,
+               ParamListInfo boundParams);
+extern PlannedStmt *standard_planner(Query *parse, int cursorOptions,
+                                ParamListInfo boundParams);
+
+extern Plan *subquery_planner(PlannerGlobal *glob, Query *parse,
+                                PlannerInfo *parent_root,
+                                bool hasRecursion, double tuple_fraction,
+                                PlannerInfo **subroot);
+
+extern void add_tlist_costs_to_plan(PlannerInfo *root, Plan *plan,
+                                               List *tlist);
+
+extern bool is_dummy_plan(Plan *plan);
+
+extern Expr *expression_planner(Expr *expr);
+
+extern Expr *preprocess_phv_expression(PlannerInfo *root, Expr *expr);
+
+extern bool plan_cluster_use_sort(Oid tableOid, Oid indexOid);
+
+#endif   /* PLANNER_H */