]> granicus.if.org Git - postgresql/commitdiff
Allow to call utility funcs without SPI_connect.
authorVadim B. Mikheev <vadim4o@yahoo.com>
Fri, 12 Sep 1997 05:11:14 +0000 (05:11 +0000)
committerVadim B. Mikheev <vadim4o@yahoo.com>
Fri, 12 Sep 1997 05:11:14 +0000 (05:11 +0000)
src/backend/executor/spi.c

index cf71b3a5fda88c416672bdb267335095888429f8..f3aae45ce2a0dfd53075f837150d9e0be215582d 100644 (file)
@@ -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;
                        }