]> granicus.if.org Git - postgresql/commitdiff
Add a little more error checking and reporting to readDatum().
authorTom Lane <tgl@sss.pgh.pa.us>
Tue, 3 Jul 2001 16:52:48 +0000 (16:52 +0000)
committerTom Lane <tgl@sss.pgh.pa.us>
Tue, 3 Jul 2001 16:52:48 +0000 (16:52 +0000)
src/backend/nodes/readfuncs.c

index 2f0dec048b3af39ca0cd3658545251a9afc619e6..b3e3105da6cab53f19e7bd7649a7d6c5e8d7bc57 100644 (file)
@@ -8,7 +8,7 @@
  *
  *
  * IDENTIFICATION
- *       $Header: /cvsroot/pgsql/src/backend/nodes/readfuncs.c,v 1.111 2001/06/19 22:39:11 tgl Exp $
+ *       $Header: /cvsroot/pgsql/src/backend/nodes/readfuncs.c,v 1.112 2001/07/03 16:52:48 tgl Exp $
  *
  * NOTES
  *       Most of the read functions for plan nodes are tested. (In fact, they
@@ -2052,7 +2052,11 @@ readDatum(bool typbyval)
        token = pg_strtok(&tokenLength);
        length = atoui(token);
 
-       token = pg_strtok(&tokenLength);        /* skip the '[' */
+       token = pg_strtok(&tokenLength);        /* read the '[' */
+       if (token == NULL || token[0] != '[')
+               elog(ERROR, "readDatum: expected '%s', got '%s'; length = %lu",
+                        "[", token ? (const char *) token : "[NULL]",
+                        (unsigned long) length);
 
        if (typbyval)
        {
@@ -2080,9 +2084,10 @@ readDatum(bool typbyval)
                res = PointerGetDatum(s);
        }
 
-       token = pg_strtok(&tokenLength);        /* skip the ']' */
+       token = pg_strtok(&tokenLength);        /* read the ']' */
        if (token == NULL || token[0] != ']')
-               elog(ERROR, "readDatum: ']' expected, length = %lu",
+               elog(ERROR, "readDatum: expected '%s', got '%s'; length = %lu",
+                        "]", token ? (const char *) token : "[NULL]",
                         (unsigned long) length);
 
        return res;