Author: byterock
Date: Wed May 20 08:33:12 2009
New Revision: 12785

Modified:
   dbd-oracle/trunk/Changes
   dbd-oracle/trunk/oci8.c

Log:
  Fix for rt.cpan.org Ticket #=46246 fetching from nested cursor (returned from 
procedure) leads to application crash (abort) from John Scoles


Modified: dbd-oracle/trunk/Changes
==============================================================================
--- dbd-oracle/trunk/Changes    (original)
+++ dbd-oracle/trunk/Changes    Wed May 20 08:33:12 2009
@@ -1,4 +1,5 @@
 =head1 Changes in DBD-Oracle 1.24(svn rev???)
+  Fix for rt.cpan.org Ticket #=46246 fetching from nested cursor (returned 
from procedure) leads to application crash (abort) from John Scoles
   Fix for rt.cpan.org Ticket #=46016  LOBs bound with ora_field broken from 
RKITOVER
   Fix for bug in 58object.t when test run as externally identified user from 
Charles Jardine
 

Modified: dbd-oracle/trunk/oci8.c
==============================================================================
--- dbd-oracle/trunk/oci8.c     (original)
+++ dbd-oracle/trunk/oci8.c     Wed May 20 08:33:12 2009
@@ -2292,10 +2292,12 @@
        else if (SvOK(imp_drh->ora_cache)){
                imp_sth->cache_rows = SvIV(imp_drh->ora_cache);
        }
-
-       if (imp_sth->is_child  && imp_sth->ret_lobs){ /*ref cursors and sp only 
one row is allowed*/
-               cache_rows  =1;
-               cache_mem  =0;
+       
+       
+       if (imp_sth->is_child  || imp_sth->ret_lobs){ /*ref cursors and sp only 
one row is allowed*/
+       
+              cache_rows  =1;
+                  cache_mem  =0;
 
        } else if (imp_dbh->RowCacheSize || imp_sth->prefetch_memory){
        /*user set values */
@@ -2878,7 +2880,7 @@
                        case    ORA_CLOB:                               /* CLOB 
& NCLOB */
                        case    ORA_BLOB:                               /* BLOB 
        */
                        case    114:                            /* BFILE        
*/
-                               fbh->ftype  = fbh->dbtype;
+                               fbh->ftype        = fbh->dbtype;
                                imp_sth->ret_lobs = 1;
                                /* do we need some addition size logic here? 
(lab) */
 

Reply via email to