develooper Front page | perl.dbi.users | Postings from July 2006

Re: ANNOUNCE: DBD:Oracle 1.18

From:
John Scoles
Date:
July 28, 2006 05:40
Subject:
Re: ANNOUNCE: DBD:Oracle 1.18
Message ID:
20060728124005.2371.qmail@lists.develooper.com

----- Original Message ----- 
From: "Fox, Michael" <Michael.Fox@auspost.com.au>
To: <dbi-users@perl.org>
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/01base................Failed 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"" <Michael.Fox@auspost.com.au> wrote in message 
news:497F410E2DCB954FAEAAA342D77D9DEC900FC5@exsmel11.hq.auspost.com.au...
>
> 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/01base................Failed 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
>
> 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.
> 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
>
>
> Thanks
> Michael Fox
>
> ============================================================================
> ===========================
>
> Details
> =======
>
> perl -V
> Summary of my perl5 (revision 5 version 8 subversion 7) configuration:
>  Platform:
>    osname=dec_osf, osvers=5.1b, archname=alpha-dec_osf
>    uname='osf1 hx18.hq.auspost.com.au v5.1 2650 alpha '
>    config_args='-Dprefix=/usr/users/dwadmin/perl'
>    hint=recommended, useposix=true, d_sigaction=define
>    usethreads=undef use5005threads=undef useithreads=undef
> usemultiplicity=undef
>    useperlio=define d_sfio=undef uselargefiles=define usesocks=undef
>    use64bitint=define use64bitall=define uselongdouble=undef
>    usemymalloc=n, bincompat5005=undef
>  Compiler:
>    cc='cc', ccflags ='-std -D_INTRINSICS -fprm 
> d -ieee -I/usr/local/include
> -DLANGUAGE_C',
>    optimize='-O4',
>    cppflags='-std -D_INTRINSICS -fprm d -ieee -I/usr/local/include
> -DLANGUAGE_C'
>    ccversion='V6.5-011', gccversion='', gccosandvers=''
>    intsize=4, longsize=8, ptrsize=8, doublesize=8, byteorder=12345678
>    d_longlong=define, longlongsize=8, d_longdbl=define, longdblsize=16
>    ivtype='long', ivsize=8, nvtype='double', nvsize=8, Off_t='off_t',
> lseeksize=8
>    alignbytes=8, prototype=define
>  Linker and Libraries:
>    ld='ld', ldflags =' -L/usr/local/lib'
>    libpth=/usr/local/lib /usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc
> /usr/lib /var/shlib
>    libs=-ldbm -ldb -lm -lutil
>    perllibs=-lm -lutil
>    libc=/usr/shlib/libc.so, so=so, useshrplib=true, libperl=libperl.so
>    gnulibc_version=''
>  Dynamic Linking:
>    dlsrc=dl_dlopen.xs, dlext=so, d_dlsymun=undef, ccdlflags='
> -Wl,-rpath,/usr/users/dwadmin/perl/lib/5.8.7/alpha-dec_osf/CORE'
>    cccdlflags=' ', lddlflags='-shared -expect_unresolved 
> "*" -O4 -msym -std
> -s -L/usr/local/lib'
>
>
> Characteristics of this binary (from libperl):
>  Compile-time options: USE_64_BIT_INT USE_64_BIT_ALL USE_LARGE_FILES
>  Built under dec_osf
>  Compiled at Dec 13 2005 15:27:28
>  @INC:
>    /usr/users/dwadmin/perl/lib/5.8.7/alpha-dec_osf
>    /usr/users/dwadmin/perl/lib/5.8.7
>    /usr/users/dwadmin/perl/lib/site_perl/5.8.7/alpha-dec_osf
>    /usr/users/dwadmin/perl/lib/site_perl/5.8.7
>    /usr/users/dwadmin/perl/lib/site_perl/5.6.0
>    /usr/users/dwadmin/perl/lib/site_perl
>    .
>
> ============================================================================
> ===========================
> perl Makefile.PL
> 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/
>
> Configuring 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 = "801070000" (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:scoles@pythian.com]
> 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. 





nntp.perl.org: Perl Programming lists via nntp and http.
Comments to Ask Bjørn Hansen at ask@perl.org | Group listing | About