diff options
author | Tom Lane <tgl@sss.pgh.pa.us> | 2003-01-10 21:08:15 +0000 |
---|---|---|
committer | Tom Lane <tgl@sss.pgh.pa.us> | 2003-01-10 21:08:15 +0000 |
commit | e69785debfcca308a5999946bbf4cfefd0ab5e3c (patch) | |
tree | 067093f426b8034288590a71f538650b3c53d485 /src/include/nodes/execnodes.h | |
parent | 36ea26793a14d016059de2f1c83a05cf87a8bb92 (diff) | |
download | postgresql-e69785debfcca308a5999946bbf4cfefd0ab5e3c.tar.gz postgresql-e69785debfcca308a5999946bbf4cfefd0ab5e3c.zip |
Further tweaking of parsetree & plantree representation of SubLinks.
Simplify SubLink by storing just a List of operator OIDs, instead of
a list of incomplete OpExprs --- that was a bizarre and bulky choice,
with no redeeming social value since we have to build new OpExprs
anyway when forming the plan tree.
Diffstat (limited to 'src/include/nodes/execnodes.h')
-rw-r--r-- | src/include/nodes/execnodes.h | 12 |
1 files changed, 9 insertions, 3 deletions
diff --git a/src/include/nodes/execnodes.h b/src/include/nodes/execnodes.h index a593957022c..1ce0635c632 100644 --- a/src/include/nodes/execnodes.h +++ b/src/include/nodes/execnodes.h @@ -7,7 +7,7 @@ * Portions Copyright (c) 1996-2002, PostgreSQL Global Development Group * Portions Copyright (c) 1994, Regents of the University of California * - * $Id: execnodes.h,v 1.88 2002/12/18 00:14:47 tgl Exp $ + * $Id: execnodes.h,v 1.89 2003/01/10 21:08:15 tgl Exp $ * *------------------------------------------------------------------------- */ @@ -445,15 +445,21 @@ typedef struct BoolExprState * SubPlanState node * ---------------- */ +/* this struct is private in nodeSubplan.c: */ +typedef struct SubPlanHashTableData *SubPlanHashTable; + typedef struct SubPlanState { ExprState xprstate; EState *sub_estate; /* subselect plan has its own EState */ struct PlanState *planstate; /* subselect plan's state tree */ + List *exprs; /* states of combining expression(s) */ + List *args; /* states of argument expression(s) */ bool needShutdown; /* TRUE = need to shutdown subplan */ HeapTuple curTuple; /* copy of most recent tuple from subplan */ - List *oper; /* states for executable combining exprs */ - List *args; /* states of argument expression(s) */ + /* these are used when hashing the subselect's output: */ + SubPlanHashTable hashtable; /* hash table for no-nulls subselect rows */ + SubPlanHashTable hashnulls; /* hash table for rows with null(s) */ } SubPlanState; /* ---------------- |