_SPI_cursor_operation forgot to check for failure return from
authorTom Lane <tgl@sss.pgh.pa.us>
Tue, 23 Sep 2003 15:11:33 +0000 (15:11 +0000)
committerTom Lane <tgl@sss.pgh.pa.us>
Tue, 23 Sep 2003 15:11:33 +0000 (15:11 +0000)
_SPI_begin_call.  Per gripe from Tomasz Myrta.

src/backend/executor/spi.c

index aed70ee4bcabb07a5fc326bced54f0d745fe474e..d2b07d484ac66f1034fe514df1ee5b7b12a71661 100644 (file)
@@ -8,7 +8,7 @@
  *
  *
  * IDENTIFICATION
- *       $Header: /cvsroot/pgsql/src/backend/executor/spi.c,v 1.104 2003/09/16 00:50:09 tgl Exp $
+ *       $Header: /cvsroot/pgsql/src/backend/executor/spi.c,v 1.105 2003/09/23 15:11:33 tgl Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -1270,7 +1270,8 @@ _SPI_cursor_operation(Portal portal, bool forward, int count,
                elog(ERROR, "invalid portal in SPI cursor operation");
 
        /* Push the SPI stack */
-       _SPI_begin_call(true);
+       if (_SPI_begin_call(true) < 0)
+               elog(ERROR, "SPI cursor operation called while not connected");
 
        /* Reset the SPI result */
        SPI_processed = 0;
@@ -1320,8 +1321,7 @@ _SPI_procmem()
 }
 
 /*
- * _SPI_begin_call
- *
+ * _SPI_begin_call: begin a SPI operation within a connected procedure
  */
 static int
 _SPI_begin_call(bool execmem)
@@ -1338,6 +1338,11 @@ _SPI_begin_call(bool execmem)
        return 0;
 }
 
+/*
+ * _SPI_end_call: end a SPI operation within a connected procedure
+ *
+ * Note: this currently has no failure return cases, so callers don't check
+ */
 static int
 _SPI_end_call(bool procmem)
 {