1996-07-09 08:22:35 +02:00
|
|
|
/*-------------------------------------------------------------------------
|
|
|
|
*
|
1999-02-14 00:22:53 +01:00
|
|
|
* planner.h
|
1997-09-07 07:04:48 +02:00
|
|
|
* prototypes for planner.c.
|
1996-07-09 08:22:35 +02:00
|
|
|
*
|
|
|
|
*
|
2009-01-01 18:24:05 +01:00
|
|
|
* Portions Copyright (c) 1996-2009, PostgreSQL Global Development Group
|
2000-01-26 06:58:53 +01:00
|
|
|
* Portions Copyright (c) 1994, Regents of the University of California
|
1996-07-09 08:22:35 +02:00
|
|
|
*
|
2009-01-09 16:46:11 +01:00
|
|
|
* $PostgreSQL: pgsql/src/include/optimizer/planner.h,v 1.47 2009/01/09 15:46:11 tgl Exp $
|
1996-07-09 08:22:35 +02:00
|
|
|
*
|
|
|
|
*-------------------------------------------------------------------------
|
|
|
|
*/
|
|
|
|
#ifndef PLANNER_H
|
|
|
|
#define PLANNER_H
|
|
|
|
|
1997-11-26 02:14:33 +01:00
|
|
|
#include "nodes/plannodes.h"
|
2007-02-19 08:03:34 +01:00
|
|
|
#include "nodes/relation.h"
|
1997-11-25 23:07:18 +01:00
|
|
|
|
2000-08-21 22:55:31 +02:00
|
|
|
|
2007-05-25 19:54:25 +02:00
|
|
|
/* Hook for plugins to get control in planner() */
|
2007-11-15 22:14:46 +01:00
|
|
|
typedef PlannedStmt *(*planner_hook_type) (Query *parse,
|
|
|
|
int cursorOptions,
|
|
|
|
ParamListInfo boundParams);
|
2007-07-25 14:22:54 +02:00
|
|
|
extern PGDLLIMPORT planner_hook_type planner_hook;
|
2007-05-25 19:54:25 +02:00
|
|
|
|
|
|
|
|
2007-04-16 03:14:58 +02:00
|
|
|
extern PlannedStmt *planner(Query *parse, int cursorOptions,
|
2004-08-29 07:07:03 +02:00
|
|
|
ParamListInfo boundParams);
|
2007-05-25 19:54:25 +02:00
|
|
|
extern PlannedStmt *standard_planner(Query *parse, int cursorOptions,
|
2007-11-15 22:14:46 +01:00
|
|
|
ParamListInfo boundParams);
|
2009-01-09 16:46:11 +01:00
|
|
|
|
2007-11-15 23:25:18 +01:00
|
|
|
extern Plan *subquery_planner(PlannerGlobal *glob, Query *parse,
|
2008-10-04 23:56:55 +02:00
|
|
|
PlannerInfo *parent_root,
|
|
|
|
bool hasRecursion, double tuple_fraction,
|
2007-11-15 22:14:46 +01:00
|
|
|
PlannerInfo **subroot);
|
1996-07-09 08:22:35 +02:00
|
|
|
|
2009-01-09 16:46:11 +01:00
|
|
|
extern Expr *expression_planner(Expr *expr);
|
|
|
|
|
2001-11-05 18:46:40 +01:00
|
|
|
#endif /* PLANNER_H */
|