Re: ANNOUNCE: DBD::Oracle 1.24 Release Candidate 2

Martin Evans <[email protected]>
Newsgroups gmane.comp.lang.perl.modules.dbi.sybase.devel
Organization Easysoft Limited
Message-ID <[email protected]>
John Scoles wrote:
> Well here it is the second crack at  1.24 Beer version of  DBD::ORACLE
> 
> 
> You can find the release candidate here
> 
> http://svn.perl.org/modules/dbd-oracle/trunk/DBD-Oracle-1.24-RC2.tar
> 
> 
> this time out I have hopefully fixed most of the warnings
> 
> I have also updated the pod to explain what ora_ncs_buff_mtpl and var
> ORA_DBD_NCS_BUFFER do
> 
> I have also added  a few other little patches from H.Merijn Brand
> 
> The big one this RC is that I think I finally got the RowsInCache  and
> RowCacheSize  working according to spec
> 
> RowCacheSize  can now be set on the statement handle (in the prepare)
> 
> and RowsInCache  has been implemented as a Read only value off the
> statement handle as well
> 
> Both the Statement and the DB handle versions of RowsInCache  also now
> decrement correctly (nothing fancy in the change just moved the
> decrement later on in the code path)
> 
> Hope this cleans any bugs up.
> 
> cheers
> and thanks for the testing
> 
> 

Thanks. This seems to address most of my issues but I have a few more
small changes below. All tests complete ok when no NLS_LANG set except a
few in 26exe_array. However, I have quite a lot of problems when
NLS_LANG is set to AMERICAN_AMERICA.AL32UTF8 (which we do all the time
but fortunately not with ora_auto_lob defaulted/set) - see make_test.log
attached. The prove output is in 30long_log and 31lob_extended.log.

It appears if ora_auto_lob is defaulted/set then when NLS_LANG is set
the second set of tests in 31lob_extended.t fail with:

DBD::Oracle has returned a NEED_DATA status when doing a LobRead!!

and any further operations lead to:

DBD::Oracle::db DESTROY failed: ORA-03127: no new operations allowed
until the active operation ends (DBD ERROR: OCIStmtExecute)

even though the statement handle involved is now out of scope.

A similar thing is happening in 30long.

Attached is a small patch which contains the following changes:

o a minor patch makes a lot of warnings go away because ah is
actually an OCIServer * and not a signed long.

o patch to Oracle.pm pod to correct some typos.

o Minor patch to 31lob_extended.t which fixes test names and adds better
error output.

Martin
-- 
Martin J. Evans
Easysoft Limited
http://www.easysoft.com
make_test.log (text/x-log, 3.1 KB)
martin@bragi:/tmp/DBD-Oracle-1.24-RC2$ make test 
PERL_DL_NONLAZY=1 /usr/bin/perl "-MExtUtils::Command::MM" "-e" "test_harness(0, 'blib/lib', 'blib/arch')" t/*.t
t/01base.t .............. # Test loading DBI, DBD::Oracle and version
t/01base.t .............. ok   
t/10general.t ........... ok     
t/12impdata.t ........... ok   
t/14threads.t ........... ok     
t/15nls.t ............... ok   
t/20select.t ............ ok     
t/21nchar.t ............. ok     
t/22nchar_al32utf8.t .... ok    
t/22nchar_utf8.t ........ ok     
t/23wide_db.t ........... ok    
t/23wide_db_8bit.t ...... ok    
t/23wide_db_al32utf8.t .. ok     
t/24implicit_utf8.t ..... ok     
t/25plsql.t ............. ok     
t/26exe_array.t ......... 1/17 

t/26exe_array.t ......... Dubious, test returned 2 (wstat 512, 0x200)
Failed 2/17 subtests 
t/28array_bind.t ........ ok     
t/30long.t .............. 1/479 DBD::Oracle has returned a NEED_DATA status when doing a LobRead!! 
DBD::Oracle::db disconnect failed: ORA-03127: no new operations allowed until the active operation ends (DBD ERROR: OCISessionEnd) at t/30long.t line 68.
t/30long.t .............. Dubious, test returned 255 (wstat 65280, 0xff00)
Failed 284/479 subtests 
	(less 122 skipped subtests: 73 okay)
t/31lob.t ............... ok     
t/31lob_extended.t ...... 1/31 DBD::Oracle has returned a NEED_DATA status when doing a LobRead!! 
procedure p_DBD_Oracle_drop_me possibly not dropped- check
table dbd_ora__drop_me possibly not dropped - check
DBD::Oracle::db DESTROY failed: ORA-03127: no new operations allowed until the active operation ends (DBD ERROR: OCIStmtExecute)
ORA-03127: no new operations allowed until the active operation ends (DBD ERROR: OCISessionEnd) at t/31lob_extended.t line 91.
t/31lob_extended.t ...... Dubious, test returned 255 (wstat 65280, 0xff00)
Failed 8/31 subtests 
t/32xmltype.t ........... ok   
t/34pres_lobs.t ......... ok     
t/40ph_type.t ........... 1/19  Placeholder behaviour for ora_type=1 VARCHAR2 (the default) varies with Oracle version.
 Oracle 7 didn't strip trailing spaces, Oracle 8 did, until 9.2.x
 Your system doesn't. If that seems odd, let us know.
t/40ph_type.t ........... ok     
t/50cursor.t ............ ok         
t/51scroll.t ............ ok     
t/55nested.t ............ ok     
t/56embbeded.t .......... ok   
t/58object.t ............ ok     
t/60reauth.t ............ skipped: ORACLE_USERID_2 not defined.
t/70meta.t .............. ok     
t/80ora_charset.t ....... ok     

Test Summary Report
-------------------
t/26exe_array.t       (Wstat: 512 Tests: 17 Failed: 2)
  Failed tests:  11, 14
  Non-zero exit status: 2
t/30long.t            (Wstat: 65280 Tests: 195 Failed: 0)
  Non-zero exit status: 255
  Parse errors: Bad plan.  You planned 479 tests but ran 195.
t/31lob_extended.t    (Wstat: 65280 Tests: 23 Failed: 0)
  Non-zero exit status: 255
  Parse errors: Bad plan.  You planned 31 tests but ran 23.
Files=30, Tests=1917, 15 wallclock secs ( 0.22 usr  0.04 sys +  5.93 cusr  0.60 csys =  6.79 CPU)
Result: FAIL
Failed 3/30 test programs. 2/1917 subtests failed.
make: *** [test_dynamic] Error 255
30long.log (text/x-log, 13.5 KB)
martin@bragi:/tmp/DBD-Oracle-1.24-RC2$ prove -vb t/30long.t 
t/30long.t .. 
1..479
# ora_server_version: 11 1 0 6 0
# Database 11.1.0.6.0 CHAR set is AL32UTF8 (Unicode), NCHAR set is UTF8 (Unicode)
# Client 11.1.0.6 NLS_LANG is 'AMERICAN_AMERICA.AL32UTF8', NLS_NCHAR is '<unset>'
# 
#     =========================================================================
#     Running long test for LONG (0) use_utf8_data=0
ok 1 - prepare: insert into dbd_ora__drop_me values (?, ?, SYSDATE)
# create table dbd_ora__drop_me ( idx integer, lng LONG,  dt date )
# long_data[0] length 10240
# long_data[1] length 81920
# long_data[2] length 71680
#  --- insert some LONG data (ora_type 0)
ok 2 - insert long data 40
ok 3 - insert long data 41
ok 4 - insert long data 42
ok 5 - insert long data undef 43
#  --- fetch LONG data back again -- truncated - LongTruncOk == 1
# LongReadLen 20, LongTruncOk 1
ok 6 - prepare: select * from dbd_ora__drop_me order by idx
ok 7 - execute: select * from dbd_ora__drop_me order by idx
ok 8 - fetch_arrayref for select * from dbd_ora__drop_me order by idx
ok 9 - four rows
ok 10 - byte_string test of truncated to LongReadLen 20
ok 11 - nice_string test of truncated to LongReadLen 20
ok 12 - LONG UTF8 setting
ok 13 - byte_string test of truncated to LongReadLen 20
ok 14 - nice_string test of truncated to LongReadLen 20
ok 15 - LONG UTF8 setting
ok 16 - byte_string test of truncated to LongReadLen 20
ok 17 - nice_string test of truncated to LongReadLen 20
ok 18 - LONG UTF8 setting
ok 19 - last row undefined
#  --- fetch LONG data back again -- truncated - LongTruncOk == 0
# LongReadLen 81910, LongTruncOk 
ok 20 - prepare select * from dbd_ora__drop_me order by idx
ok 21 - execute select * from dbd_ora__drop_me order by idx
ok 22 - fetchrow_arrayref select * from dbd_ora__drop_me order by idx
ok 23 - length tmp->[1] 10240
ok 24 - truncation error not triggered (LongReadLen 81910, data 10240)
ok 25 - tmp==1406 || tmp==24345 tmp actually=24345
#  --- fetch LONG data back again -- complete - LongTruncOk == 0
# LongReadLen 82920, LongTruncOk 
ok 26 - prepare: select * from dbd_ora__drop_me order by idx
ok 27 - execute select * from dbd_ora__drop_me order by idx
ok 28 - fetchrow_arrayref select * from dbd_ora__drop_me order by idx
ok 29 - Strings are identical, Len 10240
ok 30 - fetchrow_arrayref select * from dbd_ora__drop_me order by idx
ok 31 - Strings are identical, Len 10240
ok 32 - fetchrow_arrayref select * from dbd_ora__drop_me order by idx
ok 33 - Strings are identical, Len 10240
ok 34 # skip blob_read tests for LONGs - not currently supported
ok 35 # skip blob_read tests for LONGs - not currently supported
ok 36 # skip blob_read tests for LONGs - not currently supported
ok 37 # skip blob_read tests for LONGs - not currently supported
ok 38 # skip blob_read tests for LONGs - not currently supported
ok 39 # skip blob_read tests for LONGs - not currently supported
ok 40 # skip blob_read tests for LONGs - not currently supported
ok 41 # skip blob_read tests for LONGs - not currently supported
ok 42 # skip blob_read tests for LONGs - not currently supported
ok 43 # skip blob_read tests for LONGs - not currently supported
ok 44 # skip blob_read tests for LONGs - not currently supported
ok 45 # skip blob_read tests for LONGs - not currently supported
ok 46 # skip blob_read tests for LONGs - not currently supported
ok 47 # skip blob_read tests for LONGs - not currently supported
ok 48 # skip blob_read tests for LONGs - not currently supported
ok 49 # skip ora_auto_lob tests for LONGs - not supported
ok 50 # skip ora_auto_lob tests for LONGs - not supported
ok 51 # skip ora_auto_lob tests for LONGs - not supported
ok 52 # skip ora_auto_lob tests for LONGs - not supported
ok 53 # skip ora_auto_lob tests for LONGs - not supported
ok 54 # skip ora_auto_lob tests for LONGs - not supported
ok 55 # skip ora_auto_lob tests for LONGs - not supported
ok 56 # skip ora_auto_lob tests for LONGs - not supported
ok 57 # skip ora_auto_lob tests for LONGs - not supported
ok 58 # skip ora_auto_lob tests for LONGs - not supported
ok 59 # skip ora_auto_lob tests for LONGs - not supported
ok 60 # skip ora_auto_lob tests for LONGs - not supported
ok 61 # skip ora_auto_lob tests for LONGs - not supported
ok 62 # skip ora_auto_lob tests for LONGs - not supported
ok 63 # skip ora_auto_lob tests for LONGs - not supported
ok 64 # skip ora_auto_lob tests for LONGs - not supported
ok 65 # skip ora_auto_lob tests for LONGs - not supported
ok 66 # skip ora_auto_lob tests for LONGs - not supported
ok 67 # skip ora_auto_lob tests for LONGs - not supported
ok 68 # skip ora_auto_lob tests for LONGs - not supported
ok 69 # skip ora_auto_lob tests for LONGs - not supported
ok 70 # skip ora_auto_lob tests for LONGs - not supported
ok 71 # skip ora_auto_lob tests for LONGs - not supported
ok 72 # skip ora_auto_lob tests for LONGs - not supported
ok 73 # skip ora_auto_lob tests for LONGs - not supported
ok 74 # skip ora_auto_lob tests for LONGs - not supported
ok 75 # skip ora_auto_lob tests for LONGs - not supported
ok 76 # skip ora_auto_lob tests for LONGs - not supported
ok 77 # skip ora_auto_lob tests for LONGs - not supported
ok 78 # skip ora_auto_lob tests for LONGs - not supported
ok 79 # skip ora_auto_lob tests for LONGs - not supported
ok 80 # skip ora_auto_lob tests for LONGs - not supported
ok 81 # skip ora_auto_lob tests for LONGs - not supported
ok 82 # skip ora_auto_lob tests for LONGs - not supported
ok 83 # skip ora_auto_lob tests for LONGs - not supported
ok 84 # skip ora_auto_lob tests for LONGs - not supported
ok 85 # skip ora_auto_lob tests for LONGs - not supported
ok 86 # skip ora_auto_lob tests for LONGs - not supported
ok 87 # skip ora_auto_lob tests for LONGs - not supported
ok 88 # skip ora_auto_lob tests for LONGs - not supported
ok 89 # skip ora_auto_lob tests for LONGs - not supported
ok 90 # skip ora_auto_lob tests for LONGs - not supported
ok 91 # skip ora_auto_lob tests for LONGs - not supported
ok 92 # skip ora_auto_lob tests for LONGs - not supported
ok 93 # skip ora_auto_lob tests for LONGs - not supported
ok 94 # skip ora_auto_lob tests for LONGs - not supported
# 
#     =========================================================================
#     Running long test for LONG RAW (24) use_utf8_data=0
# create table dbd_ora__drop_me ( idx integer, lng LONG RAW,  dt date )
# long_data[0] length 20480
# long_data[1] length 81920
# long_data[2] length 71680
#  --- insert some LONG RAW data (ora_type 24)
ok 95 - prepare: insert into dbd_ora__drop_me values (?, ?, SYSDATE)
ok 96 - insert long data 40
ok 97 - insert long data 41
ok 98 - insert long data 42
ok 99 - insert long data undef 43
#  --- fetch LONG RAW data back again -- truncated - LongTruncOk == 1
# LongReadLen 20, LongTruncOk 1
ok 100 - prepare: select * from dbd_ora__drop_me order by idx
ok 101 - execute: select * from dbd_ora__drop_me order by idx
ok 102 - fetch_arrayref for select * from dbd_ora__drop_me order by idx
ok 103 - four rows
ok 104 - byte_string test of truncated to LongReadLen 40
ok 105 - nice_string test of truncated to LongReadLen 40
ok 106 - LONG RAW UTF8 setting
ok 107 - byte_string test of truncated to LongReadLen 40
ok 108 - nice_string test of truncated to LongReadLen 40
ok 109 - LONG RAW UTF8 setting
ok 110 - byte_string test of truncated to LongReadLen 40
ok 111 - nice_string test of truncated to LongReadLen 40
ok 112 - LONG RAW UTF8 setting
ok 113 - last row undefined
ok 114 - prepare select * from dbd_ora__drop_me order by idx
#  --- fetch LONG RAW data back again -- truncated - LongTruncOk == 0
# LongReadLen 40955, LongTruncOk 
ok 115 - execute select * from dbd_ora__drop_me order by idx
ok 116 - fetchrow_arrayref select * from dbd_ora__drop_me order by idx
ok 117 - length tmp->[1] 20480
ok 118 - truncation error not triggered (LongReadLen 40955, data 20480)
ok 119 - tmp==1406 || tmp==24345 tmp actually=24345
#  --- fetch LONG RAW data back again -- complete - LongTruncOk == 0
# LongReadLen 82920, LongTruncOk 
ok 120 - prepare: select * from dbd_ora__drop_me order by idx
ok 121 - execute select * from dbd_ora__drop_me order by idx
ok 122 - fetchrow_arrayref select * from dbd_ora__drop_me order by idx
ok 123 - Strings are identical, Len 20480
ok 124 - fetchrow_arrayref select * from dbd_ora__drop_me order by idx
ok 125 - Strings are identical, Len 81920
ok 126 - fetchrow_arrayref select * from dbd_ora__drop_me order by idx
ok 127 - Strings are identical, Len 71680
ok 128 # skip blob_read tests for LONGs - not currently supported
ok 129 # skip blob_read tests for LONGs - not currently supported
ok 130 # skip blob_read tests for LONGs - not currently supported
ok 131 # skip blob_read tests for LONGs - not currently supported
ok 132 # skip blob_read tests for LONGs - not currently supported
ok 133 # skip blob_read tests for LONGs - not currently supported
ok 134 # skip blob_read tests for LONGs - not currently supported
ok 135 # skip blob_read tests for LONGs - not currently supported
ok 136 # skip blob_read tests for LONGs - not currently supported
ok 137 # skip blob_read tests for LONGs - not currently supported
ok 138 # skip blob_read tests for LONGs - not currently supported
ok 139 # skip blob_read tests for LONGs - not currently supported
ok 140 # skip blob_read tests for LONGs - not currently supported
ok 141 # skip blob_read tests for LONGs - not currently supported
ok 142 # skip blob_read tests for LONGs - not currently supported
ok 143 # skip ora_auto_lob tests for LONG RAWs - not supported
ok 144 # skip ora_auto_lob tests for LONG RAWs - not supported
ok 145 # skip ora_auto_lob tests for LONG RAWs - not supported
ok 146 # skip ora_auto_lob tests for LONG RAWs - not supported
ok 147 # skip ora_auto_lob tests for LONG RAWs - not supported
ok 148 # skip ora_auto_lob tests for LONG RAWs - not supported
ok 149 # skip ora_auto_lob tests for LONG RAWs - not supported
ok 150 # skip ora_auto_lob tests for LONG RAWs - not supported
ok 151 # skip ora_auto_lob tests for LONG RAWs - not supported
ok 152 # skip ora_auto_lob tests for LONG RAWs - not supported
ok 153 # skip ora_auto_lob tests for LONG RAWs - not supported
ok 154 # skip ora_auto_lob tests for LONG RAWs - not supported
ok 155 # skip ora_auto_lob tests for LONG RAWs - not supported
ok 156 # skip ora_auto_lob tests for LONG RAWs - not supported
ok 157 # skip ora_auto_lob tests for LONG RAWs - not supported
ok 158 # skip ora_auto_lob tests for LONG RAWs - not supported
ok 159 # skip ora_auto_lob tests for LONG RAWs - not supported
ok 160 # skip ora_auto_lob tests for LONG RAWs - not supported
ok 161 # skip ora_auto_lob tests for LONG RAWs - not supported
ok 162 # skip ora_auto_lob tests for LONG RAWs - not supported
ok 163 # skip ora_auto_lob tests for LONG RAWs - not supported
ok 164 # skip ora_auto_lob tests for LONG RAWs - not supported
ok 165 # skip ora_auto_lob tests for LONG RAWs - not supported
ok 166 # skip ora_auto_lob tests for LONG RAWs - not supported
ok 167 # skip ora_auto_lob tests for LONG RAWs - not supported
ok 168 # skip ora_auto_lob tests for LONG RAWs - not supported
ok 169 # skip ora_auto_lob tests for LONG RAWs - not supported
ok 170 # skip ora_auto_lob tests for LONG RAWs - not supported
ok 171 # skip ora_auto_lob tests for LONG RAWs - not supported
ok 172 # skip ora_auto_lob tests for LONG RAWs - not supported
ok 173 # skip ora_auto_lob tests for LONG RAWs - not supported
ok 174 # skip ora_auto_lob tests for LONG RAWs - not supported
ok 175 # skip ora_auto_lob tests for LONG RAWs - not supported
ok 176 # skip ora_auto_lob tests for LONG RAWs - not supported
ok 177 # skip ora_auto_lob tests for LONG RAWs - not supported
ok 178 # skip ora_auto_lob tests for LONG RAWs - not supported
ok 179 # skip ora_auto_lob tests for LONG RAWs - not supported
ok 180 # skip ora_auto_lob tests for LONG RAWs - not supported
ok 181 # skip ora_auto_lob tests for LONG RAWs - not supported
ok 182 # skip ora_auto_lob tests for LONG RAWs - not supported
ok 183 # skip ora_auto_lob tests for LONG RAWs - not supported
ok 184 # skip ora_auto_lob tests for LONG RAWs - not supported
ok 185 # skip ora_auto_lob tests for LONG RAWs - not supported
ok 186 # skip ora_auto_lob tests for LONG RAWs - not supported
ok 187 # skip ora_auto_lob tests for LONG RAWs - not supported
ok 188 # skip ora_auto_lob tests for LONG RAWs - not supported
# 
#     =========================================================================
#     Running long test for NCLOB (112) use_utf8_data=1
# create table dbd_ora__drop_me ( idx integer, lng NCLOB,  dt date )
# long_data[0] length 10240
# long_data[1] length 81920
# long_data[2] length 71680
#  --- insert some NCLOB data (ora_type 112)
ok 189 - prepare: insert into dbd_ora__drop_me values (?, ?, SYSDATE)
ok 190 - insert long data 40
ok 191 - insert long data 41
ok 192 - insert long data 42
ok 193 - insert long data undef 43
#  --- fetch NCLOB data back again -- truncated - LongTruncOk == 1
# LongReadLen 20, LongTruncOk 1
ok 194 - prepare: select * from dbd_ora__drop_me order by idx
ok 195 - execute: select * from dbd_ora__drop_me order by idx
DBD::Oracle has returned a NEED_DATA status when doing a LobRead!! 
DBD::Oracle::db disconnect failed: ORA-03127: no new operations allowed until the active operation ends (DBD ERROR: OCISessionEnd) at t/30long.t line 68.
# Looks like you planned 479 tests but ran 195.
# Looks like your test exited with 255 just after 195.
Dubious, test returned 255 (wstat 65280, 0xff00)
Failed 284/479 subtests 
	(less 122 skipped subtests: 73 okay)

Test Summary Report
-------------------
t/30long.t (Wstat: 65280 Tests: 195 Failed: 0)
  Non-zero exit status: 255
  Parse errors: Bad plan.  You planned 479 tests but ran 195.
Files=1, Tests=195,  1 wallclock secs ( 0.06 usr  0.00 sys +  0.13 cusr  0.01 csys =  0.20 CPU)
Result: FAIL
31lob_extended.log (text/x-log, 2.2 KB)
martin@bragi:/tmp/DBD-Oracle-1.24-RC2$ prove -vb t/31lob_extended.t 
t/31lob_extended.t .. 
1..31
ok 1 - created test table
# create table dbd_ora__drop_me ( idx integer, x clob,  dt date )
ok 2 - created test data
ok 3 - created test procedure
ok 4 - ora_auto_lobs prefetch prepare call proc
ok 5 - ora_auto_lobs prefetch - bind out cursor
ok 6 - ora_auto_lobs prefetch - execute to get out cursor
ok 7 - ora_auto_lobs prefetch - lob locator retrieved
ok 8 - ora_auto_lobs prefetch - is a lob locator
ok 9 - ora_auto_lobs prefetch - first lob length 6000
ok 10 - ora_auto_lobs prefetch - correct lob length
ok 11 - ora_auto_lobs prefetch - read lob
ok 12 - ora_auto_lobs prefetch - lob returned matches lob inserted
ok 13 - ora_auto_lobs prefetch - lob locator retrieved
ok 14 - ora_auto_lobs prefetch - is a lob locator
ok 15 - ora_auto_lobs prefetch - first lob length 6000
ok 16 - ora_auto_lobs prefetch - correct lob length
ok 17 - ora_auto_lobs prefetch - read lob
ok 18 - ora_auto_lobs prefetch - lob returned matches lob inserted
ok 19 - ora_auto_lobs prefetch - finished returned sth
ok 20 - ora_auto_lobs prefetch - finished sth
ok 21 - ora_auto_lobs not fetching prepare call proc
ok 22 - ora_auto_lobs not fetching - bind out cursor
ok 23 - ora_auto_lobs not fetching - execute to get out cursor
DBD::Oracle has returned a NEED_DATA status when doing a LobRead!! 
procedure p_DBD_Oracle_drop_me possibly not dropped- check
table dbd_ora__drop_me possibly not dropped - check
# Looks like you planned 31 tests but ran 23.
# Looks like your test exited with 255 just after 23.
DBD::Oracle::db DESTROY failed: ORA-03127: no new operations allowed until the active operation ends (DBD ERROR: OCIStmtExecute)
ORA-03127: no new operations allowed until the active operation ends (DBD ERROR: OCISessionEnd) at t/31lob_extended.t line 91.
Dubious, test returned 255 (wstat 65280, 0xff00)
Failed 8/31 subtests 

Test Summary Report
-------------------
t/31lob_extended.t (Wstat: 65280 Tests: 23 Failed: 0)
  Non-zero exit status: 255
  Parse errors: Bad plan.  You planned 31 tests but ran 23.
Files=1, Tests=23,  1 wallclock secs ( 0.03 usr  0.00 sys +  0.07 cusr  0.01 csys =  0.11 CPU)
Result: FAIL
patch.diff (text/x-patch, 3.8 KB)
Index: ocitrace.h
===================================================================
--- ocitrace.h	(revision 13722)
+++ ocitrace.h	(working copy)
@@ -267,7 +267,7 @@
 	stat=OCIAttrSet(th,ht,ah,s1,a,eh);				\
 	(DBD_OCI_TRACEON) ? PerlIO_printf(DBD_OCI_TRACEFP,			\
 		"%sAttrSet(%p,%s, %p,%lu,Attr=%s,%p)=%s\n",			\
-		OciTp, (void*)th,oci_hdtype_name(ht),sl_t(ah),ul_t(s1),oci_attr_name(a),(void*)eh,	\
+		OciTp, (void*)th,oci_hdtype_name(ht),(void *)ah,ul_t(s1),oci_attr_name(a),(void*)eh,	\
 		oci_status_name(stat)),stat : stat
 
 #define OCIBindByName_log_stat(sh,bp,eh,p1,pl,v,vs,dt,in,al,rc,mx,cu,md,stat)	\
Index: Oracle.pm
===================================================================
--- Oracle.pm	(revision 13722)
+++ Oracle.pm	(working copy)
@@ -1477,12 +1477,14 @@
 
 =item ora_ncs_buff_mtpl
 
-You can now customize the size of the buffer when selecting a LOBs with the build in AUTO Lob
-The default value is 1 which should be fine for most situations if you are converting between
-a NCS on the DB and one on the Client they you might want to set this to 2.  The orginal value
-was 4 which was excessive.  For convieance I have added support for a 'ORA_DBD_NCS_BUFFER' enviornemnt
-varaible that you can use at the OS level to set this value.  If used it will take the value at the
-connect stage.
+You can now customize the size of the buffer when selecting LOBs with
+the built in AUTO Lob.  The default value is 1 which should be fine
+for most situations. If you are converting between a NCS on the DB and
+one on the Client then you might want to set this to 2.  The orignal
+value (prior to version 1.24) of 4 was found to be excessive.  For
+convenience I have added support for a 'ORA_DBD_NCS_BUFFER'
+environment variable that you can use at the OS level to set this
+value.  If used it will take the value at the connect stage.
 
 See more details in the LOB section of the POD
 
Index: t/31lob_extended.t
===================================================================
--- t/31lob_extended.t	(revision 13722)
+++ t/31lob_extended.t	(working copy)
@@ -1,7 +1,7 @@
 #!perl -w
 
 ## ----------------------------------------------------------------------------
-## 26exe_array.t
+## 31lob_extended.t
 ## By Martin Evans, The Pythian Group
 ## ----------------------------------------------------------------------------
 ##  This run through some bugs that have been found in earlier versions of DBD::Oracle
@@ -38,7 +38,7 @@
 my ($table, $data0, $data1) = setup_test($dbh);
 
 #
-# bug in DBD::0.21 where if ora_auto_lobs is set and we attempt to
+# bug in DBD::Oracle 0.21 where if ora_auto_lobs is not set and we attempt to
 # fetch from a table containing lobs which has more than one row
 # we get a segfault. This was due to prefetching more than one row.
 #
@@ -82,7 +82,8 @@
         # ora_auto_lobs is supposed to default to set
         q/begin p_DBD_Oracle_drop_me(?); end;/);
       };
-    ok(!$@, "$testname prepare call proc");
+    ok(!$@, "$testname - prepare call proc");
+
     my $sth2;
     ok($sth1->bind_param_inout(1, \$sth2, 500, {ora_type => ORA_RSET}),
        "$testname - bind out cursor");
@@ -175,13 +176,13 @@
         eval {$dbh->do(q/drop procedure p_DBD_Oracle_drop_me/);};
         if ($@) {
             warn("procedure p_DBD_Oracle_drop_me possibly not dropped" .
-                     "- check\n") if $dbh->err ne '4043';
+                     "- check - $@\n") if $dbh->err ne '4043';
         } else {
             diag("procedure p_DBD_Oracle_drop_me dropped");
         }
         eval {drop_table($dbh);};
         if ($@) {
-            warn("table $table possibly not dropped - check\n")
+            warn("table $table possibly not dropped - check - $@\n")
                 if $dbh->err ne '942';
         } else {
             diag("table $table dropped");
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.