Re: DBD::Oracle Release Candidate 1

2011-02-16 Thread Martin J. Evans

On 11/02/11 18:43, John Scoles wrote:

Here is the latest and greatest DBD::Oracle for your programming pleasure.

You can find the Zip file here

a 
href=http://www.pythian.com/news/wp-content/uploads/DBD-Oracle-1.28_RC_1.zip;DBD-Oracle-1.28-RC1.zip/A

This is a long overdue maintenance release that fixes a large number of bug and 
issues which are detailed below in the Changes.

Don't worry there are some new goodies in this release namely I have added in 4 
new
server side tracing/debugging attributes

strongora_driver_name/strong
For 11g and later you can now set the name of the driver layer using OCI.
PERL, PERL5, ApachePerl so on. Names starting with ORA are reserved. You
can enter up to 8 characters. If none is enter then this will default to
DBDO where  is the current version number. This value can be
retrieved on the server side using V$SESSION_CONNECT_INFO or
GV$SESSION_CONNECT_INFO

strongora_client_info/strong
When passed in on the connection attributes it can specify any info you want
onto the session up t0 64 bytes. This value can be
retrieved on the server side using V$SESSION view.

strongora_client_identifier/strong
When passed in on the connection attributes it specifies the user identifier
in the session handle. Most useful for web app as it can pass in the session
user name which might be different than the connection user name. Can be up
to 64 bytes long do not to include the password for security reasons and the
first character of the identifier should not be ':'. This value can be
retrieved on the server side using V$SESSION view.

strongora_action/strong
You can set this value to anything you want up to 32byes.This value can be
retrieved on the server side using V$SESSION view.

We have also added in the connection attribute

strongora_connect_with_default_signals/strong

Whit this attribute you can localize the $SIG{} so this should solve the
problems with $SIG{} events that sometimes occur when using DBD::Oracle


Finally I would like to thank Martin Evans for volunteering to be another 
co-maintainer of DBD::Oracle



Cheers
John Scoles


Changes
Added connection attribute 'ora_connect_with_default_signals' that will 
localize Perl's $SIG{INT} handler from Brian Phillips and T. Bunce
Fix in execute_array to stop possible endless loop when using a fetch sub by 
Martin J. Evans
Adapted Martin J. Evans' ODBC 70execute_array.t into t/26exe_array.t by John 
Scoles
Fix for execute_array to bring it up to spec. by Martin J. Evans and John Scoles
Marked ProC, Oraperl.pm, ora_explain.pl, ora_context, ora_use_proc_connection 
and ora_parse_lang as deprecated to be removed in 1.29
Added in 4 new server side debug/trace attributes, ora_driver_name, 
ora_client_info, ora_session_user and ora_action on the connection handle from 
John Scoles
Cleaned up the pod a little by John Scoles
Fix for function name length, Some function names are over 31char long which 
may cause problems for some OS/Compilers (VMS IA64 box.) from Jakob Snoer
Fix for OCIPing in case where a 10 client tries to ping a lt;10 DB from Tim 
Oertel
Fix for DBD-Oracle stored proc with array bug where second call array size is 
unchanged from Tim Oertel
Fix for rt.cpan.org Ticket #=63332: Spelling error in POD from jonasbn
Fix for rt.cpan.org Ticket #=62152: t/28array_bind.t and t/31lob.t may call 
plan() twice and others do not fail on not connect from John Scoles
Fix for rt.cpan.org Ticket #=61511 ORA-00942 when inserting into a table with a 
LOB column over a synonym on HP-UX from Kris Lemaire
Fix for rt.cpan.org Ticket #=42842 Test 31lob fails with 64-bit Instant Client 
by John Scoles
Fix for support for objects on big endian platforms from Charles Jardine, John 
R Pierce
Fix for rt.cpan.org Ticket #=61225 Windows install (Stawberry Perl) fails on 
long path names from David Tulloh
Fix for rt.cpan.org Ticket #=rt64524 Memory Leak when Oracle connection fails 
by Martin J. Evans
Added all the missing ora_drcp values to dbh private_attribute_info by Martin 
J. Evans
Removed a load of attributes from sth private_attribute_info which are not 
handle attributes but attributes to bind_param/prepare by Martin J. Evans
Fix for rt.cpan.org Ticket #=64244 - don#039;t bail out, skip tests when we 
cannot connect by Martin J. Evans and John Scoles
Added DBI to PREREQ_PM in Makefile.PL by Martin J. Evans
Added build_requires in Makefile.PL by Martin J. Evans
Added workaround for ExtUtils::MakeMaker problems by Martin J. Evans
Added LICENSE to Makefile.PL by Martin J. Evans

Cheers John Scoles


Thanks John.

I haven't had a chance to play with this release candidate properly until today 
- sorry.

On the platforms I've tested on so far (a few Linuxes) I am getting 100% test 
success.
I will upgrade our test system to this RC later to see if it finds any problems.

The only problems I've found so far:

o the META.yml has not been generated properly (e.g., it is missing 
build_required, configure_requires etc

o the version is 

Re: DBD::Oracle Release Candidate 1

2011-02-16 Thread H.Merijn Brand
On Fri, 11 Feb 2011 13:43:34 -0500, John Scoles sco...@pythian.com
wrote:

 Here is the latest and greatest DBD::Oracle for your programming pleasure.
 
 You can find the Zip file here

A ZIP is a quite unusual way to release CPAN modules, even for RC's

 a 
 href=http://www.pythian.com/news/wp-content/uploads/DBD-Oracle-1.28_RC_1.zip;DBD-Oracle-1.28-RC1.zip/A

You need to work on longdouble support I guess

Sorry for the long mail. I think it contains a lot of info to digest :)

A summary for a few boxes ...

##
1. Linux 2.6.31.14-0.4-default/#1
   HP xw6400 Xeon(R) CPU E5320 @1.86GHz/1596(4) x86_64

Using DBI 1.616 (for perl 5.010001 on x86_64-linux) installed in 
/pro/lib/perl5/site_perl/5.10.1/x86_64-linux/auto/DBI/
Configuring DBD::Oracle for perl 5.010001 on linux (x86_64-linux)
Installing on a linux, Ver#2.6
Using Oracle in /pro/oracle/v11.2
DEFINE _SQLPLUS_RELEASE = 1102000200 (CHAR)
Oracle version 11.2.0.2 (11.2)
Found /usr/share/oracle/11.2/client64/demo.mk
Using /usr/share/oracle/11.2/client64/demo.mk
Your LD_LIBRARY_PATH env var is set to 
'/pro/asql/o90G/bin:/pro/asql/o90G/lib:/usr/lib64:/usr/lib:/pro/oracle/v11.2/lib'
Reading /usr/share/oracle/11.2/client64/demo.mk
Found header files in /usr/include/oracle/11.2/client64.
client_version=11.2

DBD-Oracle-1.28_RC_1  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 ... 2/12
t/31lob.t ... Dubious, test returned 1 (wstat 256, 0x100)
Failed 4/12 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 ... skipped: Database is set up as US7ASCII

Test Summary Report
---
t/31lob.t (Wstat: 256 Tests: 9 Failed: 1)
  Failed test:  9
  Non-zero exit status: 1
  Parse errors: Bad plan.  You planned 12 tests but ran 9.
Files=30, Tests=2509, 25 wallclock secs ( 0.61 usr  0.08 sys +  5.44 cusr  0.97 
csys =  7.10 CPU)
Result: FAIL
Failed 1/30 test programs. 1/2509 subtests failed.
make: *** [test_dynamic] Error 255

DBD-Oracle-1.28_RC_1  prove -vwb t/31lob.t
t/31lob.t ..
1..12
ok 1 - returned valid locator
ok 2 - inserted into BLOB successfully
ok 3 - got back what we put in
ok 4 - returned valid locator
ok 5 - returned valid locator
ok 6 - returned initialized locator
ok 7 - returned length
ok 8 - returned written value
not ok 9 - returned length via PL/SQL

#   Failed test 'returned length via PL/SQL'
#   at t/31lob.t line 152.
#  got: undef
# expected: '4'
Errors in file :
OCI-21500: internal error code, arguments: [kghufree_06], [0x000C68978], [0], 
[0], [0], [], [], []
sx�sx�sx�
 
��Errors
 in file :
OCI-21500: internal error code, arguments: [kghufree_06], [0x000C68978], [0], 
[0], [0], [], [], []
j���sx�sx�sx�
Dubious, test returned 1 (wstat 256, 0x100)
Failed 4/12 subtests

Test Summary Report
---
t/31lob.t (Wstat: 256 Tests: 9 Failed: 1)
  Failed test:  9
  Non-zero exit status: 1
  Parse errors: Bad plan.  You planned 12 tests but 

Re: DBD::Oracle Release Candidate 1

2011-02-16 Thread H.Merijn Brand
On Fri, 11 Feb 2011 13:43:34 -0500, John Scoles sco...@pythian.com
wrote:

 Here is the latest and greatest DBD::Oracle for your programming pleasure.
 
 You can find the Zip file here
 
 a 
 href=http://www.pythian.com/news/wp-content/uploads/DBD-Oracle-1.28_RC_1.zip;DBD-Oracle-1.28-RC1.zip/A

Next to the failures for longdouble, here's a fix for Oracle9:

http://www.xs4all.nl/~procura/DO-128.diff

/pro/bin/perl -MExtUtils::MY -e 'MY-fixin(shift)' -- blib/script/ora_explain
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 hpux 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 . 1/74

#row 4: DUMP(nch) = Typ=1 Len=4: 0,38,0,58
t/24implicit_utf8.t . 38/74

#row 4: DUMP(nch) = Typ=1 Len=4: 0,38,0,58
t/24implicit_utf8.t . Dubious, test returned 4 (wstat 1024, 0x400)
Failed 4/74 subtests
t/25plsql.t . ok
t/26exe_array.t . ok
t/28array_bind.t  ok
t/30long.t .. ok
t/31lob.t ... ok
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 ... skipped: Database is set up as US7ASCII

Test Summary Report
---
t/24implicit_utf8.t   (Wstat: 1024 Tests: 74 Failed: 4)
  Failed tests:  33-34, 70-71
  Non-zero exit status: 4
Files=30, Tests=2512, 47 wallclock secs ( 1.43 usr  0.23 sys + 23.53 cusr  2.79 
csys = 27.98 CPU)
Result: FAIL
Failed 1/30 test programs. 4/2512 subtests failed.

DBD-Oracle-1.28_RC_2  prove -vwb t/24implicit_utf8.t
t/24implicit_utf8.t ..
1..74
#  --- testing implicit csform (dbhimp.c sets csform implicitly)
# row:   1: nice_string=\x03 byte_string=3 (, '.')
# row:   2: nice_string=a byte_string=97 (a, 'a')
# row:   3: nice_string=b byte_string=98 (b, 'b')
# row:   4: nice_string=\x{263A} byte_string=9786 (☺, âº)
#  --- testing with NLS_NCHAR=UTF8
# set $ENV{NLS_NCHAR}=UTF8
# Database 9.2.0.8.0 CHAR set is US7ASCII (Non-Unicode), NCHAR set is AL16UTF16 
(Unicode)
# Client 9.2.0.8 NLS_LANG is 'unset', NLS_NCHAR is 'UTF8'
ok 1 - prepared: insert into dbd_ora__drop_me ( idx, nch, descr, dt ) values( 
?, ?, ?, sysdate )
ok 2 - bind_param idx
ok 3 - bind_param nch
ok 4 - bind_param descr withOUT attribute ora_csform
# create table dbd_ora__drop_me ( idx integer, nch nvarchar2(20), descr 
varchar2(50),  dt date )
ok 5 - insert row 1: control-C
ok 6 - bind_param idx
ok 7 - bind_param nch
ok 8 - bind_param descr withOUT attribute ora_csform
ok 9 - insert row 2: lowercase a
ok 10 - bind_param idx
ok 11 - bind_param nch
ok 12 - bind_param descr withOUT attribute ora_csform
ok 13 - insert row 3: lowercase b
ok 14 - bind_param idx
ok 15 - bind_param nch
ok 16 - bind_param descr withOUT attribute ora_csform
ok 17 - insert row 4: smiley face
ok 18 - prepared: select nch, descr, DUMP(nch), dt from dbd_ora__drop_me order 
by idx
ok 19 - bind column nch
ok 20 - bind column descr
ok 21 - byte_string test of row 1: column: nch  (uft8) control-C
ok 22 - nice_string test of row 1: column: nch  (uft8) control-C
ok 23 - byte_string test of row 1: column: descr  control-C
ok 24 - nice_string test of row 1: column: descr  control-C
ok 25 - byte_string test of row 2: column: nch  (uft8) lowercase a
ok 26 - nice_string test of row 2: column: nch  (uft8) lowercase a
ok 27 - byte_string test of row 2: column: descr  lowercase a
ok 28 - nice_string test of row 2: column: descr  lowercase a
ok 29 - byte_string test of row 3: column: nch  (uft8) lowercase b
ok 30 - nice_string test of row 3: column: nch  (uft8) lowercase b
ok 31 - byte_string test of row 3: column: descr  lowercase b
ok 32 - nice_string test of row 3: column: descr  lowercase b
not ok 33 - byte_string test of row 4: column: nch  (uft8) smiley face
not ok 34 - nice_string test of row 4: column: nch  (uft8) smiley face
ok 35 - byte_string test of row 4: column: descr  smiley face
ok 36 - nice_string test 

Re: DBD::Oracle Release Candidate 1

2011-02-16 Thread John Scoles
On Wed, Feb 16, 2011 at 5:45 AM, Martin J. Evans
martin.ev...@easysoft.com wrote:
 On 11/02/11 18:43, John Scoles wrote:

 Here is the latest and greatest DBD::Oracle for your programming pleasure.

 You can find the Zip file here

 a
 href=http://www.pythian.com/news/wp-content/uploads/DBD-Oracle-1.28_RC_1.zip;DBD-Oracle-1.28-RC1.zip/A

 This is a long overdue maintenance release that fixes a large number of
 bug and issues which are detailed below in the Changes.

 Don't worry there are some new goodies in this release namely I have added
 in 4 new
 server side tracing/debugging attributes

 strongora_driver_name/strong
 For 11g and later you can now set the name of the driver layer using OCI.
 PERL, PERL5, ApachePerl so on. Names starting with ORA are reserved. You
 can enter up to 8 characters. If none is enter then this will default to
 DBDO where  is the current version number. This value can be
 retrieved on the server side using V$SESSION_CONNECT_INFO or
 GV$SESSION_CONNECT_INFO

 strongora_client_info/strong
 When passed in on the connection attributes it can specify any info you
 want
 onto the session up t0 64 bytes. This value can be
 retrieved on the server side using V$SESSION view.

 strongora_client_identifier/strong
 When passed in on the connection attributes it specifies the user
 identifier
 in the session handle. Most useful for web app as it can pass in the
 session
 user name which might be different than the connection user name. Can be
 up
 to 64 bytes long do not to include the password for security reasons and
 the
 first character of the identifier should not be ':'. This value can be
 retrieved on the server side using V$SESSION view.

 strongora_action/strong
 You can set this value to anything you want up to 32byes.This value can be
 retrieved on the server side using V$SESSION view.

 We have also added in the connection attribute

 strongora_connect_with_default_signals/strong

 Whit this attribute you can localize the $SIG{} so this should solve the
 problems with $SIG{} events that sometimes occur when using DBD::Oracle


 Finally I would like to thank Martin Evans for volunteering to be another
 co-maintainer of DBD::Oracle



 Cheers
 John Scoles


 Changes
 Added connection attribute 'ora_connect_with_default_signals' that will
 localize Perl's $SIG{INT} handler from Brian Phillips and T. Bunce
 Fix in execute_array to stop possible endless loop when using a fetch sub
 by Martin J. Evans
 Adapted Martin J. Evans' ODBC 70execute_array.t into t/26exe_array.t by
 John Scoles
 Fix for execute_array to bring it up to spec. by Martin J. Evans and John
 Scoles
 Marked ProC, Oraperl.pm, ora_explain.pl, ora_context,
 ora_use_proc_connection and ora_parse_lang as deprecated to be removed in
 1.29
 Added in 4 new server side debug/trace attributes, ora_driver_name,
 ora_client_info, ora_session_user and ora_action on the connection handle
 from John Scoles
 Cleaned up the pod a little by John Scoles
 Fix for function name length, Some function names are over 31char long
 which may cause problems for some OS/Compilers (VMS IA64 box.) from Jakob
 Snoer
 Fix for OCIPing in case where a 10 client tries to ping a lt;10 DB from
 Tim Oertel
 Fix for DBD-Oracle stored proc with array bug where second call array size
 is unchanged from Tim Oertel
 Fix for rt.cpan.org Ticket #=63332: Spelling error in POD from jonasbn
 Fix for rt.cpan.org Ticket #=62152: t/28array_bind.t and t/31lob.t may
 call plan() twice and others do not fail on not connect from John Scoles
 Fix for rt.cpan.org Ticket #=61511 ORA-00942 when inserting into a table
 with a LOB column over a synonym on HP-UX from Kris Lemaire
 Fix for rt.cpan.org Ticket #=42842 Test 31lob fails with 64-bit Instant
 Client by John Scoles
 Fix for support for objects on big endian platforms from Charles Jardine,
 John R Pierce
 Fix for rt.cpan.org Ticket #=61225 Windows install (Stawberry Perl) fails
 on long path names from David Tulloh
 Fix for rt.cpan.org Ticket #=rt64524 Memory Leak when Oracle connection
 fails by Martin J. Evans
 Added all the missing ora_drcp values to dbh private_attribute_info by
 Martin J. Evans
 Removed a load of attributes from sth private_attribute_info which are not
 handle attributes but attributes to bind_param/prepare by Martin J. Evans
 Fix for rt.cpan.org Ticket #=64244 - don#039;t bail out, skip tests when
 we cannot connect by Martin J. Evans and John Scoles
 Added DBI to PREREQ_PM in Makefile.PL by Martin J. Evans
 Added build_requires in Makefile.PL by Martin J. Evans
 Added workaround for ExtUtils::MakeMaker problems by Martin J. Evans
 Added LICENSE to Makefile.PL by Martin J. Evans

 Cheers John Scoles

 Thanks John.

 I haven't had a chance to play with this release candidate properly until
 today - sorry.

 On the platforms I've tested on so far (a few Linuxes) I am getting 100%
 test success.
 I will upgrade our test system to this RC later to see if it finds any
 problems.

 The only