diff options
Diffstat (limited to 'src/backend/executor/tstoreReceiver.c')
-rw-r--r-- | src/backend/executor/tstoreReceiver.c | 25 |
1 files changed, 19 insertions, 6 deletions
diff --git a/src/backend/executor/tstoreReceiver.c b/src/backend/executor/tstoreReceiver.c index 2b3889615b8..cb78c80b919 100644 --- a/src/backend/executor/tstoreReceiver.c +++ b/src/backend/executor/tstoreReceiver.c @@ -9,7 +9,7 @@ * Portions Copyright (c) 1994, Regents of the University of California * * IDENTIFICATION - * $PostgreSQL: pgsql/src/backend/executor/tstoreReceiver.c,v 1.19 2008/01/01 19:45:49 momjian Exp $ + * $PostgreSQL: pgsql/src/backend/executor/tstoreReceiver.c,v 1.20 2008/11/30 20:51:25 tgl Exp $ * *------------------------------------------------------------------------- */ @@ -72,10 +72,9 @@ tstoreDestroyReceiver(DestReceiver *self) * Initially create a DestReceiver object. */ DestReceiver * -CreateTuplestoreDestReceiver(Tuplestorestate *tStore, - MemoryContext tContext) +CreateTuplestoreDestReceiver(void) { - TStoreState *self = (TStoreState *) palloc(sizeof(TStoreState)); + TStoreState *self = (TStoreState *) palloc0(sizeof(TStoreState)); self->pub.receiveSlot = tstoreReceiveSlot; self->pub.rStartup = tstoreStartupReceiver; @@ -83,8 +82,22 @@ CreateTuplestoreDestReceiver(Tuplestorestate *tStore, self->pub.rDestroy = tstoreDestroyReceiver; self->pub.mydest = DestTuplestore; - self->tstore = tStore; - self->cxt = tContext; + /* private fields will be set by SetTuplestoreDestReceiverParams */ return (DestReceiver *) self; } + +/* + * Set parameters for a TuplestoreDestReceiver + */ +void +SetTuplestoreDestReceiverParams(DestReceiver *self, + Tuplestorestate *tStore, + MemoryContext tContext) +{ + TStoreState *myState = (TStoreState *) self; + + Assert(myState->pub.mydest == DestTuplestore); + myState->tstore = tStore; + myState->cxt = tContext; +} |