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
mar...@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

mar...@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

mar...@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

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");

Reply via email to