summaryrefslogtreecommitdiff
path: root/src/include/optimizer
diff options
context:
space:
mode:
authorVadim B. Mikheev <vadim4o@yahoo.com>1998-02-13 03:46:56 +0000
committerVadim B. Mikheev <vadim4o@yahoo.com>1998-02-13 03:46:56 +0000
commit5d7923dd1cd8fb8804a905a8b61c78c36ed512e6 (patch)
tree9b3f493e0b2901cc303af22796853ea362b39f21 /src/include/optimizer
parent6fcf2d7cb37b039f6a73a0b3935237f437d5d61f (diff)
downloadpostgresql-5d7923dd1cd8fb8804a905a8b61c78c36ed512e6.tar.gz
Subselects...
Diffstat (limited to 'src/include/optimizer')
-rw-r--r--src/include/optimizer/clauses.h6
-rw-r--r--src/include/optimizer/planner.h3
-rw-r--r--src/include/optimizer/subselect.h20
3 files changed, 27 insertions, 2 deletions
diff --git a/src/include/optimizer/clauses.h b/src/include/optimizer/clauses.h
index 8df238e8ea..60ca943fb5 100644
--- a/src/include/optimizer/clauses.h
+++ b/src/include/optimizer/clauses.h
@@ -6,7 +6,7 @@
*
* Copyright (c) 1994, Regents of the University of California
*
- * $Id: clauses.h,v 1.8 1998/01/24 22:49:39 momjian Exp $
+ * $Id: clauses.h,v 1.9 1998/02/13 03:46:54 vadim Exp $
*
*-------------------------------------------------------------------------
*/
@@ -48,4 +48,8 @@ extern void get_rels_atts(Node *clause, int *relid1,
AttrNumber *attno1, int *relid2, AttrNumber *attno2);
extern void CommuteClause(Node *clause);
+#define is_subplan(clause) ((Node*) clause != NULL && \
+ nodeTag((Node*) clause) == T_Expr && \
+ ((Expr *) clause)->opType == SUBPLAN_EXPR)
+
#endif /* CLAUSES_H */
diff --git a/src/include/optimizer/planner.h b/src/include/optimizer/planner.h
index 86b3023aa0..38782d3a2c 100644
--- a/src/include/optimizer/planner.h
+++ b/src/include/optimizer/planner.h
@@ -6,7 +6,7 @@
*
* Copyright (c) 1994, Regents of the University of California
*
- * $Id: planner.h,v 1.7 1997/11/26 01:13:49 momjian Exp $
+ * $Id: planner.h,v 1.8 1998/02/13 03:46:56 vadim Exp $
*
*-------------------------------------------------------------------------
*/
@@ -21,6 +21,7 @@
#include "parser/parse_node.h"
extern Plan *planner(Query *parse);
+extern Plan *union_planner(Query *parse);
extern void pg_checkretval(Oid rettype, QueryTreeList *querytree_list);
#endif /* PLANNER_H */
diff --git a/src/include/optimizer/subselect.h b/src/include/optimizer/subselect.h
new file mode 100644
index 0000000000..64f9851909
--- /dev/null
+++ b/src/include/optimizer/subselect.h
@@ -0,0 +1,20 @@
+/*-------------------------------------------------------------------------
+ *
+ * subselect.h--
+ *
+ *-------------------------------------------------------------------------
+ */
+#ifndef SUBSELECT_H
+#define SUBSELECT_H
+
+extern int PlannerQueryLevel; /* level of current query */
+extern List *PlannerVarParam; /* correlation Vars to Param mapper */
+extern List *PlannerParamVar; /* to get Var from Param->paramid */
+extern List *PlannerInitPlan; /* init subplans for current query */
+extern int PlannerPlanId; /* to assigne unique ID to subquery plans */
+
+extern List *SS_finalize_plan (Plan *plan);
+extern Node *SS_replace_correlation_vars (Node *expr);
+extern Node *SS_process_sublinks (Node *expr);
+
+#endif /* SUBSELECT_H */