Discussion:
ANNOUNCE: DBD::Oracle 1.24 Release Candidate 1
John Scoles
2009-12-24 18:46:13 UTC
Permalink
Well here it is the long awaited 1.24 Beer version of DBD::ORACLE

Loading Image...


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
Martin Evans
2010-01-04 11:15:27 UTC
Permalink
Post by John Scoles
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
--
Martin J. Evans
Easysoft Limited
http://www.easysoft.com
Martin Evans
2010-01-04 15:20:16 UTC
Permalink
Post by Martin Evans
Post by John Scoles
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
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.
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
Martin Evans
2010-01-04 17:17:26 UTC
Permalink
Post by Martin Evans
Post by John Scoles
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
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.
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
Spoke too soon about it running ok except 26exe_array - don't know how I
missed it first time around but with a fresh untar of the rc using same
versions of client and server as above I get:

t/26exe_array...........dubious

Test returned status 2 (wstat 512, 0x200)
DIED. FAILED tests 11, 14
Failed 2/17 tests, 88.24% okay
t/28array_bind..........ok

t/30long................ok 1/479DBD::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................dubious

Test returned status 255 (wstat 65280, 0xff00)
DIED. FAILED tests 196-479
Failed 284/479 tests, 40.71% okay (less 122 skipped tests: 73 okay, 15.24%)
t/31lob.................ok

t/31lob_extended........ok 1/31DBD::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........dubious

Test returned status 255 (wstat 65280, 0xff00)
DIED. FAILED tests 24-31
Failed 8/31 tests, 74.19% okay
t/32xmltype.............ok

Martin
--
Martin J. Evans
Easysoft Limited
http://www.easysoft.com
Martin Evans
2010-01-05 09:01:30 UTC
Permalink
Post by Martin Evans
Post by Martin Evans
Post by John Scoles
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
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.
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
Spoke too soon about it running ok except 26exe_array - don't know how I
missed it first time around but with a fresh untar of the rc using same
t/26exe_array...........dubious
Test returned status 2 (wstat 512, 0x200)
DIED. FAILED tests 11, 14
Failed 2/17 tests, 88.24% okay
t/28array_bind..........ok
t/30long................ok 1/479DBD::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................dubious
Test returned status 255 (wstat 65280, 0xff00)
DIED. FAILED tests 196-479
Failed 284/479 tests, 40.71% okay (less 122 skipped tests: 73 okay, 15.24%)
t/31lob.................ok
t/31lob_extended........ok 1/31DBD::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........dubious
Test returned status 255 (wstat 65280, 0xff00)
DIED. FAILED tests 24-31
Failed 8/31 tests, 74.19% okay
t/32xmltype.............ok
Martin
These failures were due to the fact I had set
NLS_LANG=AMERICAN_AMERICA.AL32UTF8 to test the utf8 text in error
messages. They go away when NLS_LANG is unset.

Martin
--
Martin J. Evans
Easysoft Limited
http://www.easysoft.com
H.Merijn Brand
2010-01-04 11:33:58 UTC
Permalink
Post by John Scoles
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
I'm mostly interested in the multiple BLOB/record fixes, but still get
errors/warnings:



DBD-Oracle-svn 25 > perl Makefile.PL
Using DBI 1.609 (for perl 5.010001 on x86_64-linux) installed in /pro/lib/perl5/site_perl/5.10.1/x86_64-linux/auto/DBI/
Argument "6.55_02" isn't numeric in numeric ge (>=) at Makefile.PL line 61.

Configuring DBD::Oracle for perl 5.010001 on linux (x86_64-linux)

Remember to actually *READ* the README file! Especially if you have any problems.

Installing on a linux, Ver#2.6
Using Oracle in /pro/oracle/v11.1.0
DEFINE _SQLPLUS_RELEASE = "1101000600" (CHAR)
Oracle version 11.1.0.6 (11.1)
Found /pro/oracle/v11.1.0/rdbms/lib/ins_rdbms.mk
Found /usr/share/oracle/11.1/client64/demo.mk
Using /pro/oracle/v11.1.0/rdbms/lib/ins_rdbms.mk
Your LD_LIBRARY_PATH env var is set to '/pro/asql/o90G/bin:/pro/asql/o90G/lib:/pro/oracle/v11.1.0/lib'
Reading /pro/oracle/v11.1.0/rdbms/lib/ins_rdbms.mk
Reading /pro/oracle/v11.1.0/rdbms/lib/env_rdbms.mk
WARNING: Oracle /pro/oracle/v11.1.0/rdbms/lib/ins_rdbms.mk doesn't define a 'build' rule.

WARNING: I will now try to guess how to build and link DBD::Oracle for you.
This kind of guess work is very error prone and Oracle-version sensitive.
It is possible that it won't be supported in future versions of DBD::Oracle.
*PLEASE* notify dbi-users about exactly _why_ you had to build it this way.

Found header files in /pro/oracle/v11.1.0/rdbms/public.

Checking for functioning wait.ph


System: perl5.010001 linux pc09 2.6.27.23-0.1-default #1 smp 2009-05-26 17:02:05 -0400 x86_64 x86_64 x86_64 gnulinux
Compiler: ccache cc -O2 -fPIC -fno-strict-aliasing -pipe -fstack-protector -I/pro/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64
Linker: /usr/bin/ld
Sysliblist: -ldl -lm -lpthread -lnsl -lirc -lipgo
Oracle makefiles would have used these definitions but we override them:
CC: $(COMPDIR)/bin/gcc
CFLAGS: $(GFLAG) $(OPTIMIZE) $(CDEBUG) $(CCFLAGS) $(PFLAGS)\
$(SHARED_CFLAG) $(USRFLAGS)
[$(GFLAG) -O3 $(CDEBUG) -m32 -trigraphs -fPIC -I/pro/oracle/v11.1.0/rdbms/demo -I/pro/oracle/v11.1.0/rdbms/public -I/pro/oracle/v11.1.0/plsql/public -I/pro/oracle/v11.1.0/network/public -DLINUX -D_GNU_SOURCE -D_LARGEFILE64_SOURCE=1 -D_LARGEFILE_SOURCE=1 -DSLTS_ENABLE -DSLMXMX_ENABLE -D_REENTRANT -DNS_THREADS -D__NO_CTYPE=1 $(LPFLAGS) $(USRFLAGS)]
LDFLAGS: $(LDFLAGS32)
[-m32 -o $@ -L/pro/oracle/v11.1.0/rdbms//lib32/ -L/pro/oracle/v11.1.0/lib32/ -L/pro/oracle/v11.1.0/lib32/stubs/]
Linking with -lclntsh -ldl -lm -lpthread -lnsl -lirc -lipgo -ldl -lm -lpthread [from $(OCISHAREDLIBS)]
:

DBD-Oracle-svn 26 > make
:
ccache cc -g -c -I/pro/oracle/v11.1.0/rdbms/public -I/pro/oracle/v11.1.0/rdbms/demo -I/pro/oracle/v11.1.0/rdbms/public -I/pro/oracle/v11.1.0/plsql/public -I/pro/oracle/v11.1.0/network/public -I/pro/lib/perl5/site_perl/5.10.1/x86_64-linux/auto/DBI -g -fPIC -fno-strict-aliasing -pipe -fstack-protector -I/pro/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -DVERSION=\"1.23\" -DXS_VERSION=\"1.23\" -fPIC "-I/pro/lib/perl5/5.10.1/x86_64-linux/CORE" -Wall -Wno-comment -DUTF8_SUPPORT -DNEW_OCI_INIT -DORA_OCI_VERSION=\"11.1.0.6\" -Wall -Wcast-align -Wpointer-arith -Wbad-function-cast -Wcast-qual dbdimp.c
dbdimp.c: In function ‘ora_db_login6’:
dbdimp.c:546: warning: format ‘%d’ expects type ‘int’, but argument 8 has type ‘size_t’
dbdimp.c:553: warning: format ‘%d’ expects type ‘int’, but argument 8 has type ‘size_t’
dbdimp.c:765: warning: format ‘%p’ expects type ‘void *’, but argument 6 has type ‘long int’
dbdimp.c:793: warning: format ‘%p’ expects type ‘void *’, but argument 6 has type ‘long int’
dbdimp.c: In function ‘dbd_rebind_ph_varchar2_table’:
dbdimp.c:1679: warning: format ‘%p’ expects type ‘void *’, but argument 6 has type ‘long int’
dbdimp.c:1711: warning: format ‘%p’ expects type ‘void *’, but argument 6 has type ‘long int’
dbdimp.c:1720: warning: format ‘%p’ expects type ‘void *’, but argument 6 has type ‘long int’
dbdimp.c: In function ‘dbd_rebind_ph_number_table’:
dbdimp.c:2086: warning: format ‘%p’ expects type ‘void *’, but argument 6 has type ‘long int’
dbdimp.c: In function ‘dbd_rebind_ph’:
dbdimp.c:2689: warning: format ‘%p’ expects type ‘void *’, but argument 6 has type ‘long int’
dbdimp.c:2721: warning: format ‘%p’ expects type ‘void *’, but argument 6 has type ‘long int’
dbdimp.c:2730: warning: cast from function call of type ‘char *’ to non-matching type ‘long int’
dbdimp.c:2730: warning: format ‘%p’ expects type ‘void *’, but argument 6 has type ‘long int’
dbdimp.c: In function ‘do_bind_array_exec’:
dbdimp.c:3243: warning: format ‘%p’ expects type ‘void *’, but argument 6 has type ‘long int’
dbdimp.c:3294: warning: format ‘%p’ expects type ‘void *’, but argument 6 has type ‘long int’
ccache cc -g -c -I/pro/oracle/v11.1.0/rdbms/public -I/pro/oracle/v11.1.0/rdbms/demo -I/pro/oracle/v11.1.0/rdbms/public -I/pro/oracle/v11.1.0/plsql/public -I/pro/oracle/v11.1.0/network/public -I/pro/lib/perl5/site_perl/5.10.1/x86_64-linux/auto/DBI -g -fPIC -fno-strict-aliasing -pipe -fstack-protector -I/pro/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -DVERSION=\"1.23\" -DXS_VERSION=\"1.23\" -fPIC "-I/pro/lib/perl5/5.10.1/x86_64-linux/CORE" -Wall -Wno-comment -DUTF8_SUPPORT -DNEW_OCI_INIT -DORA_OCI_VERSION=\"11.1.0.6\" -Wall -Wcast-align -Wpointer-arith -Wbad-function-cast -Wcast-qual oci8.c
oci8.c:430:99: warning: "/*" within comment
oci8.c:431:2: warning: "/*" within comment
oci8.c:435:44: warning: "/*" within comment
oci8.c:516:50: warning: "/*" within comment
oci8.c:689:79: warning: "/*" within comment
oci8.c:997:3: warning: "/*" within comment
oci8.c: In function ‘dbd_rebind_ph_lob’:
oci8.c:1460: warning: format ‘%p’ expects type ‘void *’, but argument 6 has type ‘long int’
oci8.c: In function ‘fetch_lob’:
oci8.c:1886: warning: format ‘%lu’ expects type ‘long unsigned int’, but argument 4 has type ‘ub4’
oci8.c: In function ‘get_object’:
oci8.c:2254: warning: cast from pointer to integer of different size
oci8.c:2254: warning: cast from pointer to integer of different size
oci8.c: In function ‘sth_set_row_cache’:
oci8.c:2781: warning: format ‘%p’ expects type ‘void *’, but argument 6 has type ‘long int’
oci8.c:2791: warning: format ‘%p’ expects type ‘void *’, but argument 6 has type ‘long int’
oci8.c: In function ‘ora_describe’:
oci8.c:3588: warning: format ‘%p’ expects type ‘void *’, but argument 6 has type ‘long int’
oci8.c:3090: warning: unused variable ‘has_lobs’
oci8.c: In function ‘ora_parse_uid’:
oci8.c:3887: warning: format ‘%p’ expects type ‘void *’, but argument 6 has type ‘long int’
oci8.c:3891: warning: format ‘%p’ expects type ‘void *’, but argument 6 has type ‘long int’
Running Mkbootstrap for DBD::Oracle ()
:

DBD-Oracle-svn 27 > make test
PERL_DL_NONLAZY=1 /pro/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 ........... skipped: this linux perl 5.010001 not configured to support iThreads
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 ........... skipped: Database character set is not Unicode
t/23wide_db_8bit.t ...... skipped: Database character set is not Unicode
t/23wide_db_al32utf8.t .. skipped: Database character set is not Unicode
t/24implicit_utf8.t ..... ok
t/25plsql.t ............. ok
t/26exe_array.t ......... ok
t/28array_bind.t ........ ok
t/30long.t .............. ok
t/31lob.t ............... 1/11 DBD::Oracle::st execute failed: ORA-24813: cannot send or receive an unsupported LOB (DBD ERROR: OCIStmtExecute) [for Statement "BEGIN ? := DBMS_LOB.GETLENGTH( ? ); END;" with ParamValues: :p1=undef, :p2=OCILobLocatorPtr=SCALAR(0xb53ad0)] at t/31lob.t line 123.

t/31lob.t ............... Dubious, test returned 1 (wstat 256, 0x100)
Failed 4/11 subtests
t/31lob_extended.t ...... ok
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 ....... 1/14



t/80ora_charset.t ....... Dubious, test returned 4 (wstat 1024, 0x400)
Failed 4/14 subtests

Test Summary Report
-------------------
t/31lob.t (Wstat: 256 Tests: 8 Failed: 1)
Failed test: 8
Non-zero exit status: 1
Parse errors: Bad plan. You planned 11 tests but ran 8.
t/80ora_charset.t (Wstat: 1024 Tests: 14 Failed: 4)
Failed tests: 9-10, 13-14
Non-zero exit status: 4
Files=30, Tests=2108, 21 wallclock secs ( 0.44 usr 0.11 sys + 5.38 cusr 0.97 csys = 6.90 CPU)
Result: FAIL
Failed 2/30 test programs. 5/2108 subtests failed.
make: *** [test_dynamic] Error 4
--
H.Merijn Brand http://tux.nl Perl Monger http://amsterdam.pm.org/
using & porting perl 5.6.2, 5.8.x, 5.10.x, 5.11.x on HP-UX 10.20, 11.00,
11.11, 11.23, and 11.31, OpenSuSE 10.3, 11.0, and 11.1, AIX 5.2 and 5.3.
http://mirrors.develooper.com/hpux/ http://www.test-smoke.org/
http://qa.perl.org http://www.goldmark.org/jeff/stupid-disclaimers/
H.Merijn Brand
2010-01-04 16:47:17 UTC
Permalink
On Mon, 4 Jan 2010 12:33:58 +0100, "H.Merijn Brand"
Post by H.Merijn Brand
DBD-Oracle-svn 25 > perl Makefile.PL
Using DBI 1.609 (for perl 5.010001 on x86_64-linux) installed in /pro/lib/perl5/site_perl/5.10.1/x86_64-linux/auto/DBI/
Argument "6.55_02" isn't numeric in numeric ge (>=) at Makefile.PL line 61.
Configuring DBD::Oracle for perl 5.010001 on linux (x86_64-linux)
Remember to actually *READ* the README file! Especially if you have any problems.
Installing on a linux, Ver#2.6
Using Oracle in /pro/oracle/v11.1.0
DEFINE _SQLPLUS_RELEASE = "1101000600" (CHAR)
Oracle version 11.1.0.6 (11.1)
FWIW, same thing with Oracle Instant Client 11.2:

Installing on a linux, Ver#2.6
Using Oracle in /pro/oracle/v11.2
DEFINE _SQLPLUS_RELEASE = "1102000002" (CHAR)
Oracle version 11.2.0.0 (11.2)
Found /usr/share/oracle/11.2/client64/demo.mk
Using /usr/share/oracle/11.2/client64/demo.mk

t/31lob.t ............... 1/11 DBD::Oracle::st execute failed: ORA-24813: cannot send or receive an unsupported LOB (DBD ERROR: OCIStmtExecute) [for Statement "BEGIN ? := DBMS_LOB.GETLENGTH( ? ); END;" with ParamValues: :p1=undef, :p2=OCILobLocatorPtr=SCALAR(0xb54fd0)] at t/31lob.t line 123.

t/31lob.t ............... Dubious, test returned 1 (wstat 256, 0x100)
Failed 4/11 subtests

t/80ora_charset.t ....... 1/14

t/80ora_charset.t ....... 11/14

t/80ora_charset.t ....... Dubious, test returned 4 (wstat 1024, 0x400)
Failed 4/14 subtests


Note that these databases have been created with

CHARACTER SET US7ASCII

On a 11.1.0.6.0 server

SQL*Plus: Release 11.1.0.6.0 - Production on Mon Jan 4 17:45:55 2010
Oracle Database 11g Enterprise Edition Release 11.1.0.6.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
--
H.Merijn Brand http://tux.nl Perl Monger http://amsterdam.pm.org/
using & porting perl 5.6.2, 5.8.x, 5.10.x, 5.11.x on HP-UX 10.20, 11.00,
11.11, 11.23, and 11.31, OpenSuSE 10.3, 11.0, and 11.1, AIX 5.2 and 5.3.
http://mirrors.develooper.com/hpux/ http://www.test-smoke.org/
http://qa.perl.org http://www.goldmark.org/jeff/stupid-disclaimers/
H.Merijn Brand
2010-01-04 16:58:55 UTC
Permalink
Post by John Scoles
Well here it is the long awaited 1.24 Beer version of DBD::ORACLE
http://sctvguide.ca/images/bd_two-four.jpg
How 'bout this safety:
--8<---
--- t/80ora_charset.t.org 2010-01-04 17:56:49.000000000 +0100
+++ t/80ora_charset.t 2010-01-04 17:56:53.000000000 +0100
@@ -116,6 +116,8 @@ sub db_connect
$p->{ora_ncharset} = $ncharset if $ncharset;

my $dbh = DBI->connect($dsn, $dbuser, '', $p);
+ $dbh->ora_nls_parameters ()->{NLS_CHARACTERSET} =~ m/US7ASCII/ and
+ plan skip_all => "Database is set up as US7ASCII";
return $dbh;
}
-->8---
--
H.Merijn Brand http://tux.nl Perl Monger http://amsterdam.pm.org/
using & porting perl 5.6.2, 5.8.x, 5.10.x, 5.11.x on HP-UX 10.20, 11.00,
11.11, 11.23, and 11.31, OpenSuSE 10.3, 11.0, and 11.1, AIX 5.2 and 5.3.
http://mirrors.develooper.com/hpux/ http://www.test-smoke.org/
http://qa.perl.org http://www.goldmark.org/jeff/stupid-disclaimers/
Loading...