Committed by Greg Sabino Mullane <[email protected]>

Subject: [DBD::Pg 2/2] Respect pg_bool_tf when unrolling arrays.

---
 dbdimp.c | 11 +++++++++--
 1 file changed, 9 insertions(+), 2 deletions(-)

diff --git a/dbdimp.c b/dbdimp.c
index 247aa2a..274ece5 100644
--- a/dbdimp.c
+++ b/dbdimp.c
@@ -2677,6 +2677,8 @@ static SV * pg_destringify_array(pTHX_ imp_dbh_t 
*imp_dbh, unsigned char * input
        if (TSTART_slow) TRC(DBILOGFP, "%sBegin pg_destringify_array (string: 
%s quotechar: %c)\n",
                                        THEADER_slow, input, 
coltype->array_delimeter);
 
+       fprintf(stderr, "Trying to destringify %s\n", input);
+
        /*
          Note: we don't do careful balance checking here, as this is coming 
straight from 
          the Postgres backend, and we rely on it to give us a sane and 
balanced structure
@@ -2749,8 +2751,13 @@ static SV * pg_destringify_array(pTHX_ imp_dbh_t 
*imp_dbh, unsigned char * input
                                        av_push(currentav, 
newSViv(SvIV(sv_2mortal(newSVpvn(string,section_size)))));
                                else if (2 == coltype->svtype)
                                        av_push(currentav, 
newSVnv(SvNV(sv_2mortal(newSVpvn(string,section_size)))));
-                               else if (3 == coltype->svtype)
-                                       av_push(currentav, newSViv('t' == 
*string ? 1 : 0));
+                               else if (3 == coltype->svtype) {
+                                       if (imp_dbh->pg_bool_tf) {
+                                               av_push(currentav, newSVpv('1' 
== *string ? "t" : "f", 0));
+                                       }
+                                       else
+                                               av_push(currentav, newSViv('1' 
== *string ? 1 : 0));
+                               }
                                else {
                                        SV *sv = newSVpvn(string, section_size);
                                        if (0 != strncmp(coltype->type_name, 
"_bytea", 6)
-- 
1.8.4

Reply via email to