Author: byterock
Date: Mon Feb  4 11:48:00 2008
New Revision: 10682

Modified:
   dbd-oracle/branches/array_inout/dbdimp.c
   dbd-oracle/branches/array_inout/oci8.c

Log:
daily still one or two little things to do 

Modified: dbd-oracle/branches/array_inout/dbdimp.c
==============================================================================
--- dbd-oracle/branches/array_inout/dbdimp.c    (original)
+++ dbd-oracle/branches/array_inout/dbdimp.c    Mon Feb  4 11:48:00 2008
@@ -1332,17 +1332,17 @@
 
     if( phs->array_numstruct == 0 ){
        /* Oracle doesn't allow NULL buffers even for empty tables. Don't know 
why. */
-       phs->array_numstruct=1;
+               phs->array_numstruct=1;
     }
     if( phs->ora_maxarray_numentries== 0 ){
        /* Zero means "use current array length". */
-       phs->ora_maxarray_numentries=phs->array_numstruct;
+               phs->ora_maxarray_numentries=phs->array_numstruct;
     }
 
     need_allocate_rows=phs->ora_maxarray_numentries;
 
     if( need_allocate_rows< phs->array_numstruct ){
-       need_allocate_rows=phs->array_numstruct;
+               need_allocate_rows=phs->array_numstruct;
     }
     buflen=need_allocate_rows* phs->maxlen; /* We need buffer for at least 
ora_maxarray_numentries entries */
     /* Upgrade array buffer to new length */
@@ -1359,7 +1359,7 @@
      * do not bind full array
      */
     if( phs->array_numstruct > phs->ora_maxarray_numentries ){
-       phs->array_numstruct = phs->ora_maxarray_numentries;
+               phs->array_numstruct = phs->ora_maxarray_numentries;
     }
     /* Fill array buffer with string data */
 
@@ -2291,7 +2291,7 @@
                            phs->name, phs->ftype);
                return 1;
     }
-    PerlIO_printf(DBILOGFP, "\n\n\ndbd_rebind_ph done=%d\n",done);
+    PerlIO_printf(DBILOGFP, "\n\n\n phs->ftype=%d\n",phs->ftype);
 
     if (done != 1) {
                return 0;        /* the rebind failed   */
@@ -2631,8 +2631,10 @@
                if (SvPVX(sv)) {
                        PerlIO_printf(DBILOGFP, "dbd_phs_sv_complete 1a 
sv=%s\n",neatsvpv(sv,0));
 
-                       PerlIO_printf(DBILOGFP, "dbd_phs_sv_complete 4\n");
+                       PerlIO_printf(DBILOGFP, "dbd_phs_sv_complete 4 
phs->alen=%d\n",phs->alen);
+                   
                    SvCUR_set(sv, phs->alen);
+                   
                    PerlIO_printf(DBILOGFP, "dbd_phs_sv_complete 1b 
sv=%s\n",neatsvpv(sv,0));
 
                    *SvEND(sv) = '\0';
@@ -2692,7 +2694,7 @@
        dTHX;
     AV *av = (AV*)SvRV(phs->sv);
     SV *sv = *av_fetch(av, index, 1);
-    PerlIO_printf(DBILOGFP, " dbd_phs_avsv_complete 
neatsvpv(sv,0)=%s\n",neatsvpv(sv,0));
+    PerlIO_printf(DBILOGFP, " dbd_phs_avsv_complete neasv=%s\n",sv);
     dbd_phs_sv_complete(phs, sv, 0);
    /* if (debug <= 2)*/
        PerlIO_printf(DBILOGFP, " dbd_phs_avsv_complete out '%s'[%ld] = %s 
(arcode %d, ind %d, len %d)\n",
@@ -3128,25 +3130,26 @@
        while(--i >= 0) {
 
 
-  phs_t *phs = (phs_t*)(void*)SvPVX(AvARRAY(imp_sth->out_params_av)[i]);
-  SV *sv = phs->sv;
+               phs_t *phs = 
(phs_t*)(void*)SvPVX(AvARRAY(imp_sth->out_params_av)[i]);
+               SV *sv = phs->sv;
 
-               PerlIO_printf(DBILOGFP, " SvTYPE(sv)=%d\n",SvTYPE(SvRV(sv)));
+               PerlIO_printf(DBILOGFP, " sv=%d\n",sv);
 
         if (SvTYPE(sv) == SVt_RV && SvTYPE(SvRV(sv)) == SVt_PVAV) {
-                   int j;
-                       AV *av = (AV*)SvRV(sv);
-                       I32 avlen = AvFILL(av);
-                        PerlIO_printf(DBILOGFP, "\n\n\n\n  avlen=%d\n",avlen);
-        PerlIO_printf(DBILOGFP, "\n\n\n\n  av_len(av) =%d\n",av_len(av));
-
+                  AV *av = (AV*)SvRV(sv);
+                  I32 avlen = AvFILL(av);
+                  PerlIO_printf(DBILOGFP, " av=%d \n",av);
+                
                        /*I32 avlen = AvFILL(av);*/
             for (j=0;j<=av_len(av);j++){
                                SV *sv2 = *av_fetch(av, j, 1);
-                               PerlIO_printf(DBILOGFP, "\n\n\n\n 
neatsvpv(sv2,1)=%s\n",neatsvpv(sv2,1));
+                                 dbd_phs_avsv_complete(phs, j, debug);
+
+                               PerlIO_printf(DBILOGFP, "\n sv2 %d\n",sv2);
+                               PerlIO_printf(DBILOGFP, "\n 
neatsvpv(sv2,1)=%s\n",neatsvpv(sv2,1));
                        }
-                       if (avlen >= 0)
-                           dbd_phs_avsv_complete(phs, avlen, debug);
+                       /*if (avlen >= 0)
+                           dbd_phs_avsv_complete(phs, avlen, debug);*/
            }
 }
 }

Modified: dbd-oracle/branches/array_inout/oci8.c
==============================================================================
--- dbd-oracle/branches/array_inout/oci8.c      (original)
+++ dbd-oracle/branches/array_inout/oci8.c      Mon Feb  4 11:48:00 2008
@@ -376,7 +376,6 @@
        SV **sv_p;
        if( bindp ) { /* For GCC not to warn on unused parameter*/ }
 
-PerlIO_printf(DBILOGFP, "  in dbd_phs_in %d\n",index);
        /* Check for bind values supplied by tuple array. */
        tuples_av = phs->imp_sth->bind_tuples;
        if(tuples_av) {
@@ -416,7 +415,7 @@
     *alenp  = phs->alen;
     *indpp  = &phs->indp;
     *piecep = OCI_ONE_PIECE;
-   /* if (DBIS->debug <= 3)*/
+    if (DBIS->debug >= 3)
        PerlIO_printf(DBILOGFP, "       in  '%s' [%lu,%lu]: len %2lu, ind 
%d%s\n",
                phs->name, ul_t(iter), ul_t(index), ul_t(phs->alen), phs->indp,
                (phs->desc_h) ? " via descriptor" : "");
@@ -496,30 +495,38 @@
                SV *sv = phs->sv;
 
                PerlIO_printf(DBILOGFP, "  in dbd_phs_out 3 
SvTYPE(sv)=%d\n",sv);
-    PerlIO_printf(DBILOGFP, "  in dbd_phs_out 3a index=%d\n",index);
+    PerlIO_printf(DBILOGFP, "  in dbd_phs_out 3a iter=%d\n",iter);
 
                if (SvTYPE(sv) == SVt_RV && SvTYPE(SvRV(sv)) == SVt_PVAV) {
+
+                if (iter > 0)
+                
+                       dbd_phs_avsv_complete(phs, (I32)iter-1, DBIS->debug);
+
+                   sv = *av_fetch((AV*)SvRV(sv), (IV)iter, 1);         
+               /*    SV **sv_p;
             AV *av = (AV*)SvRV(sv);
-            SV *sv2 = *av_fetch((AV*)SvRV(sv), (IV)index, 1);
-           PerlIO_printf(DBILOGFP, "  I are a array reff (good) so lod data at 
the point av_len(av)=%d\n",av_len(av));
-                 /*  if (iter >= 0)    /* finish-up handling previous element
+            av_push(av,newSVpv("",0));
+            sv_p = av_fetch(av, (IV)iter, 1);
+            PerlIO_printf(DBILOGFP, " av=%d\n",av);
+           PerlIO_printf(DBILOGFP, "  I are a array reff (good) 
sv_p=%d\n",sv_p);
+/*            *bufpp = SvPV_nolen(*sv_p);
+
+                       *bufpp = SvGROW(*sv_p, (size_t)(((phs->maxlen < 28) ? 
28 : phs->maxlen)+1)/*for null);
+                        phs->alen = SvLEN(*sv_p);      /* max buffer size now, 
actual data len later 
+                       if (iter >= 0)  /* finish-up handling previous element
                                dbd_phs_avsv_complete(phs, (I32)index-1, 
DBIS->debug);
-*/
-
+/*ok here is the rub I have to add a new values to this array*/
 
-             PerlIO_printf(DBILOGFP, "  pointer to sv =%s\n",neatsvpv(sv2,1));
-             *bufpp = SvGROW(sv2, (size_t)(((phs->maxlen < 28) ? 28 : 
phs->maxlen)+1)/*for null*/);
-                        phs->alen = SvLEN(sv2);        /* max buffer size now, 
actual data len later */
 
-/*ok here is the rub I have to add a new values to this array*/
                   if (!SvOK(sv))
                                sv_setpv(sv,"");
-               } else {
+               } 
 
-                       *bufpp = SvGROW(sv, (size_t)(((phs->maxlen < 28) ? 28 : 
phs->maxlen)+1)/*for null*/);
-                       phs->alen = SvLEN(sv);  /* max buffer size now, actual 
data len later */
-               }
-               PerlIO_printf(DBILOGFP, " bufpp is the bffer where the data is 
sv=%s\n",sv);
+               *bufpp = SvGROW(sv, (size_t)(((phs->maxlen < 28) ? 28 : 
phs->maxlen)+1)/*for null*/);
+               phs->alen = SvLEN(sv);  /* max buffer size now, actual data len 
later */
+               
+               PerlIO_printf(DBILOGFP, " bufpp is the bffer where the data is 
sv=%d\n",sv);
 
     }
     *alenpp = &phs->alen;

Reply via email to