Subselects...

This commit is contained in:
Vadim B. Mikheev 1998-02-13 03:46:56 +00:00
parent 6fcf2d7cb3
commit 5d7923dd1c
11 changed files with 63 additions and 10 deletions

View File

@ -6,7 +6,7 @@
*
* Copyright (c) 1994, Regents of the University of California
*
* $Id: executor.h,v 1.19 1998/02/10 04:02:19 momjian Exp $
* $Id: executor.h,v 1.20 1998/02/13 03:43:33 vadim Exp $
*
*-------------------------------------------------------------------------
*/
@ -108,6 +108,7 @@ extern void ExecInitOuterTupleSlot(EState *estate, HashJoinState *hashstate);
extern TupleDesc ExecGetTupType(Plan *node);
extern TupleDesc ExecTypeFromTL(List *targetList);
extern void SetChangedParamList (Plan *node, List *newchg);
/*
* prototypes from functions in execTuples.c

View File

@ -6,7 +6,7 @@
*
* Copyright (c) 1994, Regents of the University of California
*
* $Id: nodeAgg.h,v 1.6 1997/11/26 01:12:40 momjian Exp $
* $Id: nodeAgg.h,v 1.7 1998/02/13 03:43:34 vadim Exp $
*
*-------------------------------------------------------------------------
*/
@ -21,5 +21,6 @@ extern TupleTableSlot *ExecAgg(Agg *node);
extern bool ExecInitAgg(Agg *node, EState *estate, Plan *parent);
extern int ExecCountSlotsAgg(Agg *node);
extern void ExecEndAgg(Agg *node);
extern void ExecReScanAgg(Agg *node, ExprContext *exprCtxt, Plan *parent);
#endif /* NODEAGG_H */

View File

@ -6,7 +6,7 @@
*
* Copyright (c) 1994, Regents of the University of California
*
* $Id: nodeHash.h,v 1.7 1998/01/24 22:49:01 momjian Exp $
* $Id: nodeHash.h,v 1.8 1998/02/13 03:43:35 vadim Exp $
*
*-------------------------------------------------------------------------
*/
@ -35,5 +35,6 @@ extern HeapTuple ExecScanHashBucket(HashJoinState *hjstate, HashBucket bucket,
HeapTuple curtuple, List *hjclauses,
ExprContext *econtext);
extern void ExecHashTableReset(HashJoinTable hashtable, int ntuples);
extern void ExecReScanHash(Hash *node, ExprContext *exprCtxt, Plan *parent);
#endif /* NODEHASH_H */

View File

@ -6,7 +6,7 @@
*
* Copyright (c) 1994, Regents of the University of California
*
* $Id: nodeHashjoin.h,v 1.7 1998/01/24 22:49:04 momjian Exp $
* $Id: nodeHashjoin.h,v 1.8 1998/02/13 03:43:36 vadim Exp $
*
*-------------------------------------------------------------------------
*/
@ -23,6 +23,7 @@ extern int ExecCountSlotsHashJoin(HashJoin *node);
extern void ExecEndHashJoin(HashJoin *node);
extern char * ExecHashJoinSaveTuple(HeapTuple heapTuple, char *buffer,
File file, char *position);
extern void ExecReScanHashJoin(HashJoin *node, ExprContext *exprCtxt, Plan *parent);
#endif /* NODEHASHJOIN_H */

View File

@ -6,7 +6,7 @@
*
* Copyright (c) 1994, Regents of the University of California
*
* $Id: nodeMaterial.h,v 1.5 1997/11/26 01:12:53 momjian Exp $
* $Id: nodeMaterial.h,v 1.6 1998/02/13 03:43:37 vadim Exp $
*
*-------------------------------------------------------------------------
*/
@ -21,7 +21,9 @@ extern TupleTableSlot *ExecMaterial(Material *node);
extern bool ExecInitMaterial(Material *node, EState *estate, Plan *parent);
extern int ExecCountSlotsMaterial(Material *node);
extern void ExecEndMaterial(Material *node);
extern void ExecMaterialReScan(Material *node, ExprContext *exprCtxt, Plan *parent);
#if 0
extern List ExecMaterialMarkPos(Material *node);
extern void ExecMaterialRestrPos(Material *node);
#endif
#endif /* NODEMATERIAL_H */

View File

@ -6,7 +6,7 @@
*
* Copyright (c) 1994, Regents of the University of California
*
* $Id: nodeNestloop.h,v 1.5 1997/11/26 01:12:57 momjian Exp $
* $Id: nodeNestloop.h,v 1.6 1998/02/13 03:43:38 vadim Exp $
*
*-------------------------------------------------------------------------
*/
@ -21,5 +21,6 @@ extern TupleTableSlot *ExecNestLoop(NestLoop *node, Plan *parent);
extern bool ExecInitNestLoop(NestLoop *node, EState *estate, Plan *parent);
extern int ExecCountSlotsNestLoop(NestLoop *node);
extern void ExecEndNestLoop(NestLoop *node);
extern void ExecReScanNestLoop(NestLoop *node, ExprContext *exprCtxt, Plan *parent);
#endif /* NODENESTLOOP_H */

View File

@ -6,7 +6,7 @@
*
* Copyright (c) 1994, Regents of the University of California
*
* $Id: nodeResult.h,v 1.5 1997/11/26 01:12:58 momjian Exp $
* $Id: nodeResult.h,v 1.6 1998/02/13 03:43:39 vadim Exp $
*
*-------------------------------------------------------------------------
*/
@ -21,5 +21,6 @@ extern TupleTableSlot *ExecResult(Result *node);
extern bool ExecInitResult(Result *node, EState *estate, Plan *parent);
extern int ExecCountSlotsResult(Result *node);
extern void ExecEndResult(Result *node);
extern void ExecReScanResult(Result *node, ExprContext *exprCtxt, Plan *parent);
#endif /* NODERESULT_H */

View File

@ -0,0 +1,20 @@
/*-------------------------------------------------------------------------
*
* nodeSubplan.h--
*
*-------------------------------------------------------------------------
*/
#ifndef NODESUBPLAN_H
#define NODESUBPLAN_H
#include "executor/tuptable.h"
#include "nodes/execnodes.h"
#include "nodes/plannodes.h"
extern Datum ExecSubPlan(SubPlan *node, List *pvar, ExprContext *econtext);
extern bool ExecInitSubPlan(SubPlan *node, EState *estate, Plan *parent);
extern void ExecReScanSetParamPlan (SubPlan *node, Plan *parent);
extern void ExecSetParamPlan (SubPlan *node);
extern void ExecEndSubPlan(SubPlan *node);
#endif /* NODESUBPLAN_H */

View File

@ -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 */

View File

@ -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 */

View File

@ -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 */