diff options
Diffstat (limited to 'src/backend/nodes')
| -rw-r--r-- | src/backend/nodes/copyfuncs.c | 21 | ||||
| -rw-r--r-- | src/backend/nodes/outfuncs.c | 28 |
2 files changed, 42 insertions, 7 deletions
diff --git a/src/backend/nodes/copyfuncs.c b/src/backend/nodes/copyfuncs.c index 6e2028142b..9cfa1700f4 100644 --- a/src/backend/nodes/copyfuncs.c +++ b/src/backend/nodes/copyfuncs.c @@ -15,7 +15,7 @@ * Portions Copyright (c) 1994, Regents of the University of California * * IDENTIFICATION - * $PostgreSQL: pgsql/src/backend/nodes/copyfuncs.c,v 1.404 2008/09/01 20:42:44 tgl Exp $ + * $PostgreSQL: pgsql/src/backend/nodes/copyfuncs.c,v 1.405 2008/09/09 18:58:08 tgl Exp $ * *------------------------------------------------------------------------- */ @@ -88,6 +88,7 @@ _copyPlannedStmt(PlannedStmt *from) COPY_NODE_FIELD(returningLists); COPY_NODE_FIELD(rowMarks); COPY_NODE_FIELD(relationOids); + COPY_NODE_FIELD(invalItems); COPY_SCALAR_FIELD(nParamExec); return newnode; @@ -689,6 +690,21 @@ _copyLimit(Limit *from) return newnode; } +/* + * _copyPlanInvalItem + */ +static PlanInvalItem * +_copyPlanInvalItem(PlanInvalItem *from) +{ + PlanInvalItem *newnode = makeNode(PlanInvalItem); + + COPY_SCALAR_FIELD(cacheId); + /* tupleId isn't really a "scalar", but this works anyway */ + COPY_SCALAR_FIELD(tupleId); + + return newnode; +} + /* **************************************************************** * primnodes.h copy functions * **************************************************************** @@ -3157,6 +3173,9 @@ copyObject(void *from) case T_Limit: retval = _copyLimit(from); break; + case T_PlanInvalItem: + retval = _copyPlanInvalItem(from); + break; /* * PRIMITIVE NODES diff --git a/src/backend/nodes/outfuncs.c b/src/backend/nodes/outfuncs.c index 15ced48445..0b74b3a063 100644 --- a/src/backend/nodes/outfuncs.c +++ b/src/backend/nodes/outfuncs.c @@ -8,7 +8,7 @@ * * * IDENTIFICATION - * $PostgreSQL: pgsql/src/backend/nodes/outfuncs.c,v 1.338 2008/09/01 20:42:44 tgl Exp $ + * $PostgreSQL: pgsql/src/backend/nodes/outfuncs.c,v 1.339 2008/09/09 18:58:08 tgl Exp $ * * NOTES * Every node type that can appear in stored rules' parsetrees *must* @@ -255,6 +255,7 @@ _outPlannedStmt(StringInfo str, PlannedStmt *node) WRITE_NODE_FIELD(returningLists); WRITE_NODE_FIELD(rowMarks); WRITE_NODE_FIELD(relationOids); + WRITE_NODE_FIELD(invalItems); WRITE_INT_FIELD(nParamExec); } @@ -594,6 +595,14 @@ _outUnique(StringInfo str, Unique *node) } static void +_outHash(StringInfo str, Hash *node) +{ + WRITE_NODE_TYPE("HASH"); + + _outPlanInfo(str, (Plan *) node); +} + +static void _outSetOp(StringInfo str, SetOp *node) { int i; @@ -631,11 +640,14 @@ _outLimit(StringInfo str, Limit *node) } static void -_outHash(StringInfo str, Hash *node) +_outPlanInvalItem(StringInfo str, PlanInvalItem *node) { - WRITE_NODE_TYPE("HASH"); + WRITE_NODE_TYPE("PLANINVALITEM"); - _outPlanInfo(str, (Plan *) node); + WRITE_INT_FIELD(cacheId); + appendStringInfo(str, " :tupleId (%u,%u)", + ItemPointerGetBlockNumber(&node->tupleId), + ItemPointerGetOffsetNumber(&node->tupleId)); } /***************************************************************************** @@ -1354,6 +1366,7 @@ _outPlannerGlobal(StringInfo str, PlannerGlobal *node) WRITE_BITMAPSET_FIELD(rewindPlanIDs); WRITE_NODE_FIELD(finalrtable); WRITE_NODE_FIELD(relationOids); + WRITE_NODE_FIELD(invalItems); } static void @@ -2206,14 +2219,17 @@ _outNode(StringInfo str, void *obj) case T_Unique: _outUnique(str, obj); break; + case T_Hash: + _outHash(str, obj); + break; case T_SetOp: _outSetOp(str, obj); break; case T_Limit: _outLimit(str, obj); break; - case T_Hash: - _outHash(str, obj); + case T_PlanInvalItem: + _outPlanInvalItem(str, obj); break; case T_Alias: _outAlias(str, obj); |
