diff options
| author | Vadim B. Mikheev <vadim4o@yahoo.com> | 1998-02-13 03:46:56 +0000 |
|---|---|---|
| committer | Vadim B. Mikheev <vadim4o@yahoo.com> | 1998-02-13 03:46:56 +0000 |
| commit | 5d7923dd1cd8fb8804a905a8b61c78c36ed512e6 (patch) | |
| tree | 9b3f493e0b2901cc303af22796853ea362b39f21 /src/include/optimizer | |
| parent | 6fcf2d7cb37b039f6a73a0b3935237f437d5d61f (diff) | |
| download | postgresql-5d7923dd1cd8fb8804a905a8b61c78c36ed512e6.tar.gz | |
Subselects...
Diffstat (limited to 'src/include/optimizer')
| -rw-r--r-- | src/include/optimizer/clauses.h | 6 | ||||
| -rw-r--r-- | src/include/optimizer/planner.h | 3 | ||||
| -rw-r--r-- | src/include/optimizer/subselect.h | 20 |
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 */ |
