Re: ANNOUNCE: DBD::Oracle 1.24 Release Candidate 3

Charles Jardine <[email protected]>
Newsgroups gmane.comp.lang.perl.modules.dbi.sybase.devel
Message-ID <[email protected]>
On 12/01/10 12:07, John Scoles wrote:
> Ok third time is a Charm
> 
> The Third RC of the beer edition of DBD::Oracle 1.24 can be found at
> 
> 
> http://svn.perl.org/modules/dbd-oracle/trunk/DBD-Oracle-1.24-RC3.tar
> 
> 
> This round has a few little patches from Martin Evans on it.
> 
> 
> Please test and enjoy

My environment is Linux x86-64, Perl 5.10.1 (64 bit), DBI 1.609,
Oracle 10.2.0.4.2 (64 bit). Database charset UTF8, national
charset AL16UTF16

Three things:


1. This release candidate passes all its tests in my environment if
   I set NLS_LANG=.WE8ISO8859P1, but the tests 30long.t and 31lob_extended.t
   still fail badly if NLS_LANG=.AL32UTF8.

   The symptoms match those reported by others for RC2. John, do you
   need any more information about this problem?

2. Back in early October, I reported a problem with the support for
   objects. Specifically, fetching a column value which was a nested
   table of objects was failing if $dbh->{ora_objects} was true.

   I have found the cause of the problem and have developed a patch.
   Unfortunately, while investigating this I have found another serious
   problem with the object support. Fetching a column value which
   is an object, one of whose properties is an object segfaults,
   regardless of the value of $dbh->{ora_objects}. The cause of this
   looks like a simple type error.

   I hope to be able to post a patch which fixes both these problems
   within the next few days.

3. Here is a patch which removes the remaining warnings detected by
   gcc in 64-bit mode.

diff -ur DBD-Oracle-1.24-RC3/dbdimp.c DBD-Oracle-1.24-RC3.warning_patches/dbdimp.c
--- DBD-Oracle-1.24-RC3/dbdimp.c        2010-01-08 19:39:46.000000000 +0000
+++ DBD-Oracle-1.24-RC3.warning_patches/dbdimp.c        2010-01-14 10:36:01.839787037 +0000
@@ -543,14 +543,14 @@
 #ifdef NEW_OCI_INIT    /* XXX needs merging into use_proc_connection branch */
 
                        /* Get CLIENT char and nchar charset id values */
-                       OCINlsEnvironmentVariableGet_log_stat( &charsetid, 0, OCI_NLS_CHARSET_ID, 0, &rsize ,status );
+                       OCINlsEnvironmentVariableGet_log_stat( &charsetid, (size_t)0, OCI_NLS_CHARSET_ID, 0, &rsize ,status );
                        if (status != OCI_SUCCESS) {
                                oci_error(dbh, NULL, status,
                                        "OCINlsEnvironmentVariableGet(OCI_NLS_CHARSET_ID) Check NLS settings etc.");
                                return 0;
                        }
 
-                       OCINlsEnvironmentVariableGet_log_stat( &ncharsetid, 0, OCI_NLS_NCHARSET_ID, 0, &rsize ,status );
+                       OCINlsEnvironmentVariableGet_log_stat( &ncharsetid, (size_t)0, OCI_NLS_NCHARSET_ID, 0, &rsize ,status );
                        if (status != OCI_SUCCESS) {
                                oci_error(dbh, NULL, status,
                                        "OCINlsEnvironmentVariableGet(OCI_NLS_NCHARSET_ID) Check NLS settings etc.");
diff -ur DBD-Oracle-1.24-RC3/oci8.c DBD-Oracle-1.24-RC3.warning_patches/oci8.c
--- DBD-Oracle-1.24-RC3/oci8.c  2010-01-08 19:39:46.000000000 +0000
+++ DBD-Oracle-1.24-RC3.warning_patches/oci8.c  2010-01-14 10:43:16.341547757 +0000
@@ -1872,7 +1872,7 @@
                if (status == OCI_NEED_DATA ){
                        char buf[300];
                        sprintf(buf,"fetching %s. LOB and the read bufer is only  %lubytes, and the ora_ncs_buff_mtpl is %d, which is too small. Try setting ora_ncs_buff_mtpl to %d",
-                               name, buflen, ora_ncs_buff_mtpl,ora_ncs_buff_mtpl+1);
+                               name, (unsigned long)buflen, ora_ncs_buff_mtpl,ora_ncs_buff_mtpl+1);
 
                        oci_error_err(sth, NULL, OCI_ERROR, buf, OCI_NEED_DATA); /* appropriate ORA error number */
                        croak("DBD::Oracle has returned a %s status when doing a LobRead!! \n",oci_status_name(status));
@@ -2240,7 +2240,7 @@
                                        if (tdo != obj->tdo) {
                                                /* new subtyped -> get obj description */
                                                if (DBIS->debug >= 5 || dbd_verbose >= 5 ) {
-                                                       PerlIO_printf(DBILOGFP, " describe subtype (tdo=%x) of object type %s (tdo=%x)\n",(int)tdo,base_obj->type_name,(int)base_obj->td
o);
+                                                       PerlIO_printf(DBILOGFP, " describe subtype (tdo=%p) of object type %s (tdo=%p)\n",(void*)tdo,base_obj->type_name,(void*)base_obj
->tdo);
                                                }
 
                                                Newz(1, obj->next_subtype, 1, fbh_obj_t);
@@ -3079,7 +3079,6 @@
        ub4 num_fields;
        int num_errors  = 0;
        int has_longs   = 0;
-       int has_lobs    = 0;
        int est_width   = 0;            /* estimated avg row width (for cache)  */
        int nested_cursors = 0;
        ub4 i = 0;
diff -ur DBD-Oracle-1.24-RC3/ocitrace.h DBD-Oracle-1.24-RC3.warning_patches/ocitrace.h
--- DBD-Oracle-1.24-RC3/ocitrace.h      2010-01-11 22:44:49.000000000 +0000
+++ DBD-Oracle-1.24-RC3.warning_patches/ocitrace.h      2010-01-14 10:38:09.520304633 +0000
@@ -222,8 +222,8 @@
        stat = OCINlsEnvironmentVariableGet(    valp, size, item, charset, rsizep ); \
        (DBD_OCI_TRACEON) \
        ?       PerlIO_printf(DBD_OCI_TRACEFP,\
-                "%sNlsEnvironmentVariableGet(%d,%d,%d,%d,%d)=%s\n",\
-                OciTp, *valp, size, item, charset, *rsizep, oci_status_name(stat)),stat \
+                "%sNlsEnvironmentVariableGet(%d,%llu,%d,%d,%llu)=%s\n",\
+                OciTp, *valp, (unsigned long long)size, item, charset, (unsigned long long)*rsizep, oci_status_name(stat)),stat \
        : stat
 
 /* added by lab */


-- 
Charles Jardine - Computing Service, University of Cambridge
[email protected]    Tel: +44 1223 334506, Fax: +44 1223 334679
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.