RE: ANNOUNCE: DBD:Oracle 1.18

2006-07-30 Thread Fox, Michael

John,

Found this
http://e-docs.bea.com/platform/suppconfigs/configs70/hptru64unix51_alpha/70s
p1.html which explains the problem of the unresolved OCILobLocatorAssign.

I got our DBA to include OCILobLocatorAssign as an entrypoint in the list,
rebuilt libclntsh.so, and the build works OK now.  Seems like it is Oracle
8.1.7 specific, but I don't know if its just this alpha platform.

There was still one error on the lob test:

 perl -Mblib t/31lob.t
1..9
ok 1 - returned valid locator
ok 2 - returned valid locator
ok 3 - returned valid locator
ok 4 - returned length
ok 5 - returned written value
ok 6 - returned length via PL/SQL
ok 7 - returned LOB as string
ok 8 - returned IN/OUT LOB as string
not ok 9 - no temp lobs left
# Failed test (t/31lob.t at line 166)
#  got: '2'
# expected: '0'
# Looks like you failed 1 test of 9.

but other than that it all looks good

Thanks
Michael Fox


Australia Post is committed to providing our customers with excellent service. 
If we can assist you in any way please telephone 13 13 18 or visit our website.

The information contained in this e-mail communication may be proprietary, 
confidential or legally professionally privileged.  It is intended exclusively 
for the individual or entity to which it is addressed. You should only read, 
disclose, re-transmit, copy, distribute, act in reliance on or commercialise 
the information if you are authorised to do so. Australia Post does not 
represent, warrant or guarantee the integrity of this e-mail communication has 
been maintained nor that the communication is free of errors, virus or 
interference. 

If you are not the addressee or intended recipient please notify us by replying 
direct to the sender and then destroy any electronic or paper copy of this 
message. Any views expressed in this e-mail communication are taken to be those 
of the individual sender, except where the sender specifically attributes those 
views to Australia Post and is authorised to do so.


Re: ANNOUNCE: DBD:Oracle 1.18

2006-07-28 Thread Martin J. Evans

On 28-Jul-2006 John Scoles wrote:
> 
> - Original Message - 
> From: "Fox, Michael" <[EMAIL PROTECTED]>
> To: 
> Sent: Thursday, July 27, 2006 11:00 PM
> Subject: RE: ANNOUNCE: DBD:Oracle 1.18
> 
> 
>>
>> Sorry I did not get a chance to test this before the release, but I have
>> had
>> a couple of problems building the new version, and any advice would be
>> welcome.  So far I have:
>>
> No problem
> 
>> Platform: Tru64 Unix V5.1 2650 alpha, native compiler
>> Oracle: 8.1.7
>> Perl: 5.8.7
>>
>> Problem 1: cc: Error: Oracle.xs, line 269: In this statement, "startp" is
>> not declared. (undeclared)
>> ME: startp declaration has been commented out in this version, so I
>> uncommented it to continue
> 
> This is what I was afraid of. I commented it out because it was causeing my
> compilers (win vc++ and lunix gcc) to throw a warning like 'startp is 
> declared but never used'.
> Well a warning in one compiler is better than and error in an other so I
> will fix that in trunk but put a comment why it is needed.

Hang on. The problem is because startp is only used like this:

#if !defined(ORA_OCI_8) && defined(OCI_HTYPE_DIRPATH_FN_CTX)
  ..
  ..
#else
  OCILobGetLength_log_stat(imp_dbh->svchp, imp_dbh->errhp, locator, &startp,
#endif

but it is not declared conditionally.

You make think warnings are better than errors but if I see a warning when I
compile something it immediately makes suspicious and it is sometimes justified.

Martin
--
Martin J. Evans
Easysoft Ltd, UK
http://www.easysoft.com



Re: ANNOUNCE: DBD:Oracle 1.18

2006-07-28 Thread John Scoles

- Original Message - 
From: "Fox, Michael" <[EMAIL PROTECTED]>
To: 
Sent: Thursday, July 27, 2006 11:00 PM
Subject: RE: ANNOUNCE: DBD:Oracle 1.18


>
> Sorry I did not get a chance to test this before the release, but I have
> had
> a couple of problems building the new version, and any advice would be
> welcome.  So far I have:
>
No problem

> Platform: Tru64 Unix V5.1 2650 alpha, native compiler
> Oracle: 8.1.7
> Perl: 5.8.7
>
> Problem 1: cc: Error: Oracle.xs, line 269: In this statement, "startp" is
> not declared. (undeclared)
> ME: startp declaration has been commented out in this version, so I
> uncommented it to continue

This is what I was afraid of. I commented it out because it was causeing my
compilers (win vc++ and lunix gcc) to throw a warning like 'startp is 
declared but never used'.
Well a warning in one compiler is better than and error in an other so I
will fix that in trunk but put a comment why it is needed.

>
> Problem 2: dbdimp.c and oci8.c look like DOS files, and the compiler
> complains about carriage returns
> ME: dos2unix both files to continue
>

Yeah found that one two. It actully crops up in a number of files. I have
checked all of the files and they are all unix like now. This seems only to
be a problem with older
gcc compilers (or at least they detect it)?

> Problem 3: unresolved
>
> t/01baseFailed to load Oracle extension and/or shared
> libraries:
> install_driver(Oracle) failed: Can't load
> '/u02/devel/src/cpan_dist/modules/DBD-Oracle-1.18/blib/arch/auto/DBD/Oracle/
> Oracle.so' for module DBD::Oracle: dlopen:
> /u02/devel/src/cpan_dist/modules/DBD-Oracle-1.18/blib/arch/auto/DBD/Oracle/O
> racle.so: symbol "OCILobLocatorAssign" unresolved at
> /usr/users/dwadmin/perl/lib/5.8.7/alpha-dec_osf/DynaLoader.pm line 230
>
> ME: This is just used in dbd_rebind_ph_lob, so I replace this with the one
> from DBD::Oracle version 1.17 to continue
>

This might be a problem more with the older oracle OCI in your client.  The
OCILobLocatorAssign is newer OCI code. What version of the client are you
using?
What I can try to do it leave this part out if the client does not support
it.

> Problem 4: builds OK, fails some LOB tests (not surprising given Problem
> 3)
> and has one warning in the array test
>
> perl -Mblib t/26exe_array.t
> 1..13
> ok 1 - use DBI;
> ok 2 - The object isa DBI::db
> ok 3 - ... execute_array should return true
> ok 4 - ... we should have 10 tuple_status
> DBD::Oracle::st execute_array warning: ORA-24381: error(s) in array DML
> (DBD
> SUCCESS_WITH_INFO: error possibly near <*> indicator at char 68 in 'INSERT
> INTO dbd_ora__drop_me ( row_1,  row_2, row_3) VALUES (:p1,:p2<*>,:p3)')
> [for
> Statement "INSERT INTO dbd_ora__drop_me ( row_1,  row_2, row_3) VALUES
> (?,?,?)" with ParamValues: :p3=undef, :p1=undef, :p2=undef] at
> t/26exe_array.t line 77.

This is a deliberate waringing here. I make the sql fail to get an error
report in the tuple so that in no 5 we get false (an error) and in no 7 we
get the text of the error message.

> ok 5 - ... execute_array should return flase
> ok 6 - ... we should have 10 tuple_status
> ok 7 - ... we should get text
> ok 8 - ... we should get -1
> ok 9 - ... execute_for_fetch should return true
> ok 10 - ... we should have 19 tuple_status
> ok 11 - ... execute_array should return flase
> ok 12 - ... we should have 10 tuple_status
> ok 13 - ... we should have 48 rows
>

""Fox, Michael"" <[EMAIL PROTECTED]> wrote in message 
news:[EMAIL PROTECTED]
>
> Sorry I did not get a chance to test this before the release, but I have 
> had
> a couple of problems building the new version, and any advice would be
> welcome.  So far I have:
>
> Platform: Tru64 Unix V5.1 2650 alpha, native compiler
> Oracle: 8.1.7
> Perl: 5.8.7
>
> Problem 1: cc: Error: Oracle.xs, line 269: In this statement, "startp" is
> not declared. (undeclared)
> ME: startp declaration has been commented out in this version, so I
> uncommented it to continue
>
> Problem 2: dbdimp.c and oci8.c look like DOS files, and the compiler
> complains about carriage returns
> ME: dos2unix both files to continue
>
> Problem 3: unresolved
>
> t/01baseFailed to load Oracle extension and/or shared
> libraries:
> install_driver(Oracle) failed: Can't load
> '/u02/devel/src/cpan_dist/modules/DBD-Oracle-1.18/blib/arch/auto/DBD/Oracle/
> Oracle.so' for module DBD::Oracle: dlopen:
> /u02/devel/src/cpan_dist/modules/DBD-Oracle-1.18/blib/arch/auto/DBD/Oracle/O
> racle.so: symbol "OCILobLocatorAssign" unresolved at
> /usr/user

RE: ANNOUNCE: DBD:Oracle 1.18

2006-07-27 Thread Fox, Michael
ng DBD::Oracle for perl 5.008007 on dec_osf (alpha-dec_osf)

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

Using Oracle in /u01/app/oracle/product/8.1.7
DEFINE _SQLPLUS_RELEASE = "80107" (CHAR)
Oracle version 8.1.7.0 (8.1)
Found /u01/app/oracle/product/8.1.7/rdbms/demo/demo_rdbms.mk
Found /u01/app/oracle/product/8.1.7/precomp/demo/proc/demo_proc.mk
Using /u01/app/oracle/product/8.1.7/rdbms/demo/demo_rdbms.mk
Your LD_LIBRARY_PATH env var is set to
'/u01/app/oracle/product/8.1.7/lib:/usr/users/dwadmin/lib:/u02/devel/lib:/us
r/users/dwadmin/samba/bin:/usr/users/dwadmin/freetds/lib:'
Reading /u01/app/oracle/product/8.1.7/rdbms/demo/demo_rdbms.mk
Reading /u01/app/oracle/product/8.1.7/rdbms/lib/env_rdbms.mk

Attempting to discover Oracle OCI build rules
cc-c -o DBD_ORA_OBJ.o DBD_ORA_OBJ.c
by executing: [make -f
/u01/app/oracle/product/8.1.7/rdbms/demo/demo_rdbms.mk build ECHODO=echo
ECHO=echo GENCLNTSH='echo genclntsh' CC=true OPTIMIZE= CCFLAGS=
EXE=DBD_ORA_EXE OBJS=DBD_ORA_OBJ.o]
Oracle oci build command:
[true -L/u01/app/oracle/product/8.1.7/lib/
-L/u01/app/oracle/product/8.1.7/rdbms/lib/ -o DBD_ORA_EXE DBD_ORA_OBJ.o
-lclntsh -lc]

Found header files in /u01/app/oracle/product/8.1.7/rdbms/public
/u01/app/oracle/product/8.1.7/rdbms/demo.

Checking for functioning wait.ph


System: perl5.008007 osf1 hx18.hq.auspost.com.au v5.1 2650 alpha
Compiler:   cc -O4 -std -D_INTRINSICS -fprm d -ieee -I/usr/local/include
-DLANGUAGE_C
Linker: /bin/ld
Sysliblist: -lexc -lmld -lrt -laio_raw -lm
Oracle makefiles would have used these definitions but we override them:
  CC:   cc
  CFLAGS:   $(GFLAG) $(OPTIMIZE) $(CDEBUG) $(CCFLAGS) $(QACCFLAGS)
$(PFLAGS)\
$(SHARED_CFLAG) $(USRFLAGS)
   [$(GFLAG) -O3 -fast -fp_reorder -U_FASTMATH -O3 -fast -fp_reorder
-U_FASTMATH $(GEMC_FLAGS) -std1 -DOSF1 -DA_OSF -readonly_strings -ieee
-noansi_alias -D_INTRINSICS -DARCH_EV56 -arch ev56 -tune ev6 $(QACCFLAGS)
-I/u01/app/oracle/product/8.1.7/rdbms/demo
-I/u01/app/oracle/product/8.1.7/rdbms/public
-I/u01/app/oracle/product/8.1.7/plsql/public
-I/u01/app/oracle/product/8.1.7/network/public $(LPFLAGS) $(SHARED_CFLAG)
$(USRFLAGS)]
  LDFLAGS:  -L$(LIBHOME) -L$(RDBMSLIB)
   [-L$(LIBHOME) -L/u01/app/oracle/product/8.1.7/rdbms/lib/]
Linking with OTHERLDFLAGS = -L/u01/app/oracle/product/8.1.7/lib/
-L/u01/app/oracle/product/8.1.7/rdbms/lib/   -lclntsh -lc [from 'build'
rule]


WARNING: If you have problems you may need to rebuild perl with threading
enabled.
Checking if your kit is complete...
Warning: the following files are missing in your kit:
META.yml
Please inform the author.
LD_RUN_PATH=/u01/app/oracle/product/8.1.7/lib:/u01/app/oracle/product/8.1.7/
rdbms/lib
Using DBD::Oracle 1.18.
Using DBD::Oracle 1.18.
Using DBI 1.50 (for perl 5.008007 on alpha-dec_osf) installed in
/usr/users/dwadmin/perl/lib/site_perl/5.8.7/alpha-dec_osf/auto/DBI/
Writing Makefile for DBD::Oracle


-Original Message-
From: John Scoles [mailto:[EMAIL PROTECTED] 
Sent: Tuesday, 25 July 2006 5:42 AM
To: dbi-users@perl.org; dbi-announce@perl.org; dbi-dev@perl.org
Subject: ANNOUNCE: DBD:Oracle 1.18



DBD::Oracle 1.18 has been released.

With this release DBD::Oracle finally implements Oracle's native Array 
Interface.  You will see very dramatic increase in speed.
For example; the time for a 2 million plus insert query dropped from well 
over an hour to less than 10 minutes when using execute_array() and the new 
code.

The new code is not 100% DBI compliant as it does not yet support named 
parameter binding,but it does support all the other forms of binding and has

full support for return Tuples.  Many thanks to Kristian Nielsen for his 
original work on this code.

There is also expanded support for LOB Locators from Jeffrey Klein.

Finally there are number of little fixes and an update or two to the 
readmes.

please enjoy.

John Scoles

(Please note that it may take a little while for CPAN to update to the 
latest version so if you need the latest code you can always use the 
subversion URL
http://svn.perl.org/modules/dbd-oracle/trunk.)


Australia Post is committed to providing our customers with excellent service. 
If we can assist you in any way please telephone 13 13 18 or visit our website.

The information contained in this e-mail communication may be proprietary, 
confidential or legally professionally privileged.  It is intended exclusively 
for the individual or entity to which it is addressed. You should only read, 
disclose, re-transmit, copy, distribute, act in reliance on or commercialise 
the information if you are authorised to do so. Australia Post does not 
represent, warrant or guarantee the integrity of this e-mail communication has 
been maintained nor that the communication is free of errors, virus or 
interference. 

If you are not the addressee or intended recipient please notify us by replying 
direct to the sender and then destroy any electronic or paper copy of this 
message. Any views expressed in this e-mail communication are taken to be those 
of the individual sender, except where the sender specifically attributes those 
views to Australia Post and is authorised to do so.


Re: ANNOUNCE: DBD:Oracle 1.18

2006-07-25 Thread John Scoles
When you say named parameter binding is not supported, are you talking 
about

*all* named parameters, or just for array operations?


Ohh god no!!

Just when using the execute_array();  command like this

my $sth = $dbh->prepare("INSERT INTO DETAILS ( ID,  P_ID, DATE_ENTRY) VALUES 
(:p1,:p2,:p3)") ;


$sth->bind_param_array(":p1",[EMAIL PROTECTED]);
$sth->bind_param_array(":p2",[EMAIL PROTECTED]);
$sth->bind_param_array(":p3",[EMAIL PROTECTED]);
$sth->execute_array();

Sorry if that casued you some trouble.

The real problem with execute_array and named parameter binding is that the 
native OCI does not support it very well and I wanted to get the new version 
out before I leave on summer vacation.


The plan is to add support for it with the next release some time in 
October or November.


Cheers
John Scoles
- Original Message - 
From: "Steve Baldwin" <[EMAIL PROTECTED]>

To: 
Sent: Tuesday, July 25, 2006 1:29 PM
Subject: RE: ANNOUNCE: DBD:Oracle 1.18



John,

When you say named parameter binding is not supported, are you talking 
about

*all* named parameters, or just for array operations?  We use named
parameters (e.g. :cust_id) extensively because it is more readable, 
position
independent, and if you are using the same parameter more than once you 
only

need to bind the value once.  Does this mean 1.18 would break our existing
code?  If so, are you expecting to rectify this behaviour - in the near
future?

Thanks,

Steve


-Original Message-
From: John Scoles [mailto:[EMAIL PROTECTED]
Sent: Monday, 24 July 2006 12:42 PM
To: dbi-users@perl.org; dbi-announce@perl.org; dbi-dev@perl.org
Subject: ANNOUNCE: DBD:Oracle 1.18


DBD::Oracle 1.18 has been released.

With this release DBD::Oracle finally implements Oracle's native Array
Interface.  You will see very dramatic increase in speed.
For example; the time for a 2 million plus insert query dropped from well
over an hour to less than 10 minutes when using execute_array() and the
new
code.

The new code is not 100% DBI compliant as it does not yet support named
parameter binding,but it does support all the other forms of binding and
has
full support for return Tuples.  Many thanks to Kristian Nielsen for his
original work on this code.

There is also expanded support for LOB Locators from Jeffrey Klein.

Finally there are number of little fixes and an update or two to the
readmes.

please enjoy.

John Scoles

(Please note that it may take a little while for CPAN to update to the
latest version so if you need the latest code you can always use the
subversion URL
http://svn.perl.org/modules/dbd-oracle/trunk.)










RE: ANNOUNCE: DBD:Oracle 1.18

2006-07-25 Thread Steve Baldwin
John,

When you say named parameter binding is not supported, are you talking about
*all* named parameters, or just for array operations?  We use named
parameters (e.g. :cust_id) extensively because it is more readable, position
independent, and if you are using the same parameter more than once you only
need to bind the value once.  Does this mean 1.18 would break our existing
code?  If so, are you expecting to rectify this behaviour - in the near
future?

Thanks,

Steve

> -Original Message-
> From: John Scoles [mailto:[EMAIL PROTECTED]
> Sent: Monday, 24 July 2006 12:42 PM
> To: dbi-users@perl.org; dbi-announce@perl.org; dbi-dev@perl.org
> Subject: ANNOUNCE: DBD:Oracle 1.18
> 
> 
> DBD::Oracle 1.18 has been released.
> 
> With this release DBD::Oracle finally implements Oracle's native Array
> Interface.  You will see very dramatic increase in speed.
> For example; the time for a 2 million plus insert query dropped from well
> over an hour to less than 10 minutes when using execute_array() and the
> new
> code.
> 
> The new code is not 100% DBI compliant as it does not yet support named
> parameter binding,but it does support all the other forms of binding and
> has
> full support for return Tuples.  Many thanks to Kristian Nielsen for his
> original work on this code.
> 
> There is also expanded support for LOB Locators from Jeffrey Klein.
> 
> Finally there are number of little fixes and an update or two to the
> readmes.
> 
> please enjoy.
> 
> John Scoles
> 
> (Please note that it may take a little while for CPAN to update to the
> latest version so if you need the latest code you can always use the
> subversion URL
> http://svn.perl.org/modules/dbd-oracle/trunk.)
> 





ANNOUNCE: DBD:Oracle 1.18

2006-07-24 Thread John Scoles

DBD::Oracle 1.18 has been released.

With this release DBD::Oracle finally implements Oracle's native Array 
Interface.  You will see very dramatic increase in speed.
For example; the time for a 2 million plus insert query dropped from well 
over an hour to less than 10 minutes when using execute_array() and the new 
code.

The new code is not 100% DBI compliant as it does not yet support named 
parameter binding,but it does support all the other forms of binding and has 
full support for return Tuples.  Many thanks to Kristian Nielsen for his 
original work on this code.

There is also expanded support for LOB Locators from Jeffrey Klein.

Finally there are number of little fixes and an update or two to the 
readmes.

please enjoy.

John Scoles

(Please note that it may take a little while for CPAN to update to the 
latest version so if you need the latest code you can always use the 
subversion URL
http://svn.perl.org/modules/dbd-oracle/trunk.)