1
0
mirror of https://github.com/postgres/postgres.git synced 2025-08-25 20:23:07 +03:00

Make SPI's execution of querystrings follow the rules agreed to for

command status at the interactive level.  SPI_processed, etc are set
in the same way as the returned command status would have been set if
the same querystring were issued interactively.  Per gripe from
Michael Paesold 25-Sep-02.
This commit is contained in:
Tom Lane
2002-10-14 23:49:20 +00:00
parent ba0edcf451
commit 9ff695c944
4 changed files with 240 additions and 134 deletions

View File

@@ -1,9 +1,12 @@
/*-------------------------------------------------------------------------
*
* spi.c
* spi_priv.h
* Server Programming Interface private declarations
*
* $Header: /cvsroot/pgsql/src/include/executor/spi_priv.h,v 1.12 2002/05/21 22:05:55 tgl Exp $
* Portions Copyright (c) 1996-2002, PostgreSQL Global Development Group
* Portions Copyright (c) 1994, Regents of the University of California
*
* $Id: spi_priv.h,v 1.13 2002/10/14 23:49:20 tgl Exp $
*
*-------------------------------------------------------------------------
*/
@@ -12,9 +15,9 @@
#include "executor/spi.h"
typedef struct
{
List *qtlist;
uint32 processed; /* by Executor */
SPITupleTable *tuptable;
MemoryContext procCxt; /* procedure context */
@@ -24,13 +27,20 @@ typedef struct
typedef struct
{
/* context containing _SPI_plan itself as well as subsidiary structures */
MemoryContext plancxt;
/* List of List of querytrees; one sublist per original parsetree */
List *qtlist;
/* List of plan trees --- length == # of querytrees, but flat list */
List *ptlist;
/* Argument types, if a prepared plan */
int nargs;
Oid *argtypes;
/* Command type of last original parsetree */
CmdType origCmdType;
} _SPI_plan;
#define _SPI_CPLAN_CURCXT 0
#define _SPI_CPLAN_PROCXT 1
#define _SPI_CPLAN_TOPCXT 2