From fd3ad7d765ad5ade1ab381affa12c7e16df1707a Mon Sep 17 00:00:00 2001 From: "Vadim B. Mikheev" Date: Fri, 12 Sep 1997 05:11:14 +0000 Subject: [PATCH] Allow to call utility funcs without SPI_connect. --- src/backend/executor/spi.c | 52 ++++---------------------------------- 1 file changed, 5 insertions(+), 47 deletions(-) diff --git a/src/backend/executor/spi.c b/src/backend/executor/spi.c index cf71b3a5fda..f3aae45ce2a 100644 --- a/src/backend/executor/spi.c +++ b/src/backend/executor/spi.c @@ -48,7 +48,7 @@ static void _SPI_fetch(FetchStmt * stmt); #endif static int _SPI_execute_plan(_SPI_plan * plan, - char **Values, char *Nulls, int tcount); + Datum *Values, char *Nulls, int tcount); #define _SPI_CPLAN_CURCXT 0 #define _SPI_CPLAN_PROCXT 1 @@ -199,7 +199,7 @@ SPI_exec(char *src, int tcount) } int -SPI_execp(void *plan, char **Values, char *Nulls, int tcount) +SPI_execp(void *plan, Datum *Values, char *Nulls, int tcount) { int res; @@ -282,10 +282,7 @@ int SPI_fnumber(TupleDesc tupdesc, char *fname) { int res; - - if (_SPI_curid + 1 != _SPI_connected) - return (SPI_ERROR_UNCONNECTED); - + for (res = 0; res < tupdesc->natts; res++) { if (strcasecmp(tupdesc->attrs[res]->attname.data, fname) == 0) @@ -300,12 +297,6 @@ SPI_fname(TupleDesc tupdesc, int fnumber) { SPI_result = 0; - if (_SPI_curid + 1 != _SPI_connected) - { - SPI_result = SPI_ERROR_UNCONNECTED; - return (NULL); - } - if (tupdesc->natts < fnumber || fnumber <= 0) { SPI_result = SPI_ERROR_NOATTRIBUTE; @@ -313,7 +304,6 @@ SPI_fname(TupleDesc tupdesc, int fnumber) } return (nameout(&(tupdesc->attrs[fnumber - 1]->attname))); - } char * @@ -324,12 +314,6 @@ SPI_getvalue(HeapTuple tuple, TupleDesc tupdesc, int fnumber) Oid foutoid; SPI_result = 0; - if (_SPI_curid + 1 != _SPI_connected) - { - SPI_result = SPI_ERROR_UNCONNECTED; - return (NULL); - } - if (tuple->t_natts < fnumber || fnumber <= 0) return (NULL); @@ -353,12 +337,6 @@ SPI_getbinval(HeapTuple tuple, TupleDesc tupdesc, int fnumber, bool * isnull) *isnull = true; SPI_result = 0; - if (_SPI_curid + 1 != _SPI_connected) - { - SPI_result = SPI_ERROR_UNCONNECTED; - return (NULL); - } - if (tuple->t_natts < fnumber || fnumber <= 0) return (NULL); @@ -373,12 +351,6 @@ SPI_gettype(TupleDesc tupdesc, int fnumber) HeapTuple typeTuple; SPI_result = 0; - if (_SPI_curid + 1 != _SPI_connected) - { - SPI_result = SPI_ERROR_UNCONNECTED; - return (NULL); - } - if (tupdesc->natts < fnumber || fnumber <= 0) { SPI_result = SPI_ERROR_NOATTRIBUTE; @@ -403,12 +375,6 @@ SPI_gettypeid(TupleDesc tupdesc, int fnumber) { SPI_result = 0; - if (_SPI_curid + 1 != _SPI_connected) - { - SPI_result = SPI_ERROR_UNCONNECTED; - return (InvalidOid); - } - if (tupdesc->natts < fnumber || fnumber <= 0) { SPI_result = SPI_ERROR_NOATTRIBUTE; @@ -421,14 +387,6 @@ SPI_gettypeid(TupleDesc tupdesc, int fnumber) char * SPI_getrelname(Relation rel) { - - SPI_result = 0; - if (_SPI_curid + 1 != _SPI_connected) - { - SPI_result = SPI_ERROR_UNCONNECTED; - return (NULL); - } - return (pstrdup(rel->rd_rel->relname.data)); } @@ -581,7 +539,7 @@ _SPI_execute(char *src, int tcount, _SPI_plan * plan) } static int -_SPI_execute_plan(_SPI_plan * plan, char **Values, char *Nulls, int tcount) +_SPI_execute_plan(_SPI_plan * plan, Datum *Values, char *Nulls, int tcount) { QueryTreeList *queryTree_list = plan->qtlist; List *planTree_list = plan->ptlist; @@ -634,7 +592,7 @@ _SPI_execute_plan(_SPI_plan * plan, char **Values, char *Nulls, int tcount) paramLI->kind = PARAM_NUM; paramLI->id = k + 1; paramLI->isnull = (Nulls != NULL && Nulls[k] != 'n'); - paramLI->value = (Datum) Values[k]; + paramLI->value = Values[k]; } paramLI->kind = PARAM_INVALID; }