Author: turnstep
Date: Sun Jul 12 17:37:29 2009
New Revision: 13046

Modified:
   DBD-Pg/trunk/Changes
   DBD-Pg/trunk/dbdimp.c

Log:
Fix problem when arrays are not zero-based and the output appears as 
'[x:y]={z}'. Per report from Jeff Trout.


Modified: DBD-Pg/trunk/Changes
==============================================================================
--- DBD-Pg/trunk/Changes        (original)
+++ DBD-Pg/trunk/Changes        Sun Jul 12 17:37:29 2009
@@ -6,6 +6,8 @@
   - Return ints and bools-cast-to-number from the db as true Perlish numbers.
     (CPAN bug #47619) [GSM]
   - Fix backslash quoting of arrays (CPAN bug #46732) [GSM]
+  - Fix error when destringifying array starting with '[x:y]='. Per report 
from 
+    Jeff Trout [GSM]
   - Fix problem with foreign_key_info() and NAME_uc (CPAN bug #46109) [GSM]
   - Make foreign_key_info() respect FetchHashKeyName (CPAN bug #46103) [GSM]
   - Fix Makefile.PL to apply POSTGRES_INCLUDE in a saner way.

Modified: DBD-Pg/trunk/dbdimp.c
==============================================================================
--- DBD-Pg/trunk/dbdimp.c       (original)
+++ DBD-Pg/trunk/dbdimp.c       Sun Jul 12 17:37:29 2009
@@ -2527,6 +2527,14 @@
          the Postgres backend, and we rely on it to give us a sane and 
balanced structure
        */
 
+       /* The array may start with a non 1-based beginning. If so, we'll just 
eat the range */
+       if ('[' == *input) {
+               while (*input != '\0') {
+                       if ('=' == *input++)
+                               break;
+               }
+       }
+
        /* Eat the opening brace and perform a sanity check */
        if ('{' != *(input++))
                croak("Tried to destringify a non-array!: %s", input);

Reply via email to