Martin Evans wrote: > John Scoles wrote: >> Well here it is the long awaited 1.24 Beer version of DBD::ORACLE >> >> http://sctvguide.ca/images/bd_two-four.jpg >> >> >> You can find the release candidate here >> >> http://svn.perl.org/modules/dbd-oracle/trunk/DBD-Oracle-1.24-RC1.tar >> >> Any and all testing will be most welcome! >> >> Well a big load of stuff this time. A number of patches and bug fixes >> plus with this RC I am introducing a two really big features >> >> 1) Full support for a multiple records from a single Fetch. This should >> really speed things up as it cuts down on round trips to the >> server >> >> 2) I have added ora_ncs_buff_mtpl or environment var ORA_DBD_NCS_BUFFER >> so you can control the size of the byte buffer for lobs. So rather >> than a default buffer 4* the Long_Read_Length or it is now 1. >> This should free up great hoards of memory for your LOB Fetches >> >> anyway here is a complete list >> >> >> Added extended support for 64 bit clients in Makefile.PL from Ralph >> Doncaster >> Added extended nvarchar support from Jan Mach >> Added support for the TYPE attribute on bind_col and the new DBI >> bind_col attributes StrictlyTyped and DiscardString from Martin J. Evans >> Added ora_ncs_buff_mtpl and environment var ORA_DBD_NCS_BUFFER so we >> can control the size of the buffer when doing nclob reads >> Fix for bug in for changes to row fetch buffer mostly lobs and object >> fetches >> Fix for rt.cpan.org Ticket #=49741 Oracle.h has commented out params >> in OCIXMLTypeCreateFromSrc from Kartik Thakore >> Added from rt.cpan.org Ticket #=49436 Patch to add support for a few >> Oracle data types to type_info_all from David Hull >> Added from rt.cpan.org Ticket #=49435 Patch to add support for a few >> Oracle data types to dbd_describe from David Hull >> Fix for rt.cpan.org Ticket #=49331 Bad code example in POD from John >> Scoles >> Added support for looking up OCI_DTYPE_PARAM Attributes >> Added support for looking up csform values >> Fix for rt.cpan.org Ticket #=46763,46998 enhancement -Rowcache size is >> now being properly implemented with row fetch buffer from John Scoles >> Fix for rt.cpan.org Ticket #=46448 enhancement -Errors returned by >> procedures are now unicode strings from Martin Evans, John Scoles and >> Tim Bunce >> Fix for rt.cpan.org Ticket #=47503 bugfix - using more than 1 LOB in >> insert broken from APLA >> Fix for rt.cpan.org Ticket #=46613 bugfix - sig-abort on nested >> objects with ora_objects=1 from TomasP >> Fix for rt.cpan.org Ticket #=46661 DBD::Oracle hungs when >> insert/update with LOB and quoted table name from APLA >> 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 >> >> > > Thanks for this John. > > All tests pass on "v5.10.0 built for i486-linux-gnu-thread-multi" with > instant client 11.1 to Oracle 11.1.0 and the latest (from subversion) > DBI except 26exe_array (the usual problem). > > I have a few minor comments. > > 1. > > The following minor patch makes a lot of warnings go away because ah is > actually an OCIServer * and not a signed long: > > Index: ocitrace.h > =================================================================== > --- ocitrace.h (revision 13710) > +++ 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) \ > > 2. > > There are a number of typos in the Changes file for 1.24: > > extened (*2) => extended > enviornment => environment > "Fix for bug in for changes" => ? what does this mean? > implimented => implemented > hungs => hangs > > 3. > > Since 26exe_array fails for a growing number of people (758 hits on > google for 26exe_array fail) I think it would be useful to explain why > somewhere and add a Test::More::diag (or note, but needs a later > Test::More - I think DBI needs note now too). I would happily supply the > text but I still don't understand exactly why it fails. > > 4. > > There are a number of comments on annocpan (and typos) which would be > worth considering. > > 5. > > What does ora_ncs_buff_mtpl and ORA_DBD_NCS_BUFFER in the Changes refer > to - I cannot find any documentation. > > I have not tested the rts I reported yet or the bind_col changes but > once I've done that I'll report back again and install it on our test > system. > > Martin
In addition: 1. in Changes: rt 46448 should be 46438 2. the code seems to have been realigned (in oci8.c) re tabbing etc and it is much more readable now. However, some stuff is not realigned properly e.g., some preprocessor code like the changes I made to oci_error_err now look like this: #ifdef sv_utf8_decode sv_utf8_decode(errstr_sv); #else SvUTF8_on(errstr_sv); #endif and should be: #ifdef sv_utf8_decode sv_utf8_decode(errstr_sv); #else SvUTF8_on(errstr_sv); #endif The # needs to be in column 1. Similarly with: #if DBISTATE_VERSION > 94 These prevent 2 of the rts from working. 3. The call to DBIh_SET_ERR_SV at the end of oci.8/oci_error_err should used &sv_undef instead of Nullsv. e.g., DBIh_SET_ERR_SV(h, imp_xxh, errcode_sv, errstr_sv, &sv_undef, &sv_undef); It was originally Nullsv but my followup corrected that. With the fixes in 1 and 2, rt 46438 works ok and I'll move on to rt 49818 and 46763. Martin -- Martin J. Evans Easysoft Limited http://www.easysoft.com