*
*
* IDENTIFICATION
- * $Header: /cvsroot/pgsql/src/backend/commands/Attic/command.c,v 1.19 1997/09/29 05:56:10 vadim Exp $
+ * $Header: /cvsroot/pgsql/src/backend/commands/Attic/command.c,v 1.20 1997/10/27 08:55:16 vadim Exp $
*
* NOTES
* The PortalExecutorHeapMemory crap needs to be eliminated
char *tag,
CommandDest dest)
{
- Portal portal;
- int feature;
- QueryDesc queryDesc;
- MemoryContext context;
+ Portal portal;
+ int feature;
+ QueryDesc *queryDesc;
+ MemoryContext context;
/* ----------------
* sanity checks
* tell the destination to prepare to recieve some tuples
* ----------------
*/
- memcpy (&queryDesc, PortalGetQueryDesc(portal), sizeof (queryDesc));
- queryDesc.dest = dest;
+ queryDesc = PortalGetQueryDesc(portal);
+
+ if ( dest == None ) /* MOVE */
+ {
+ QueryDesc *qdesc = (QueryDesc *) palloc (sizeof (QueryDesc));
+
+ memcpy (qdesc, queryDesc, sizeof (QueryDesc));
+ qdesc->dest = dest;
+ queryDesc = qdesc;
+ }
BeginCommand(name,
- queryDesc.operation,
+ queryDesc->operation,
portal->attinfo, /* QueryDescGetTypeInfo(queryDesc),
* */
false, /* portal fetches don't end up in
PortalExecutorHeapMemory = (MemoryContext)
PortalGetHeapMemory(portal);
- ExecutorRun(&queryDesc, PortalGetState(portal), feature, count);
+ ExecutorRun(queryDesc, PortalGetState(portal), feature, count);
+ if ( dest == None ) /* MOVE */
+ pfree (queryDesc);
+
/* ----------------
* Note: the "end-of-command" tag is returned by higher-level
* utility code