DBD::Oracle, binary releases, 8.0 support

From: Jeff Urlwin (jurlwin_at_esoftmatic.com)
Date: 07/28/04

  • Next message: Tim Bunce: "Re: DBD::Oracle, binary releases, 8.0 support"
    To: "'Tim Bunce'" <Tim.Bunce@pobox.com>
    Date: Tue, 27 Jul 2004 23:39:23 -0400
    
    

    Tim,

    I now have a list of functions not supported by 8.0.6 OCI.dll

     OCILobIsTemporary
     OCILobFreeTemporary

    The functions handled by our 9.x/NLS makefile.pl time testing/command line
    parameters already are:
     OCINlsEnvironmentVariableGet
     OCIEnvNlsCreate
     OCINlsCharSetNameToId
     OCILobWriteAppend

    So, the only functions I have to avoid which we don't already are:
    OCILobIsTemporary and OCILobFreeTemporary. From my (limited) research,
    OCILobIsTemporary and OCILobFreeTemporary are only to be used after
    OCILobCreateTemporary. So, I'm thinking for 8.0.x clients, we can force
    OCILobIsTemporary to return false and stub OCILobFreeTemporary, since I
    can't find a call to OCILobCreateTemporary anyway. I'm sure I'm missing
    something about the use of OCILobIsTemporary.

    What do you think of this patch? It fixes the Test-Simple issue we
    previously discussed and passes tests. It only gets compiled in if perl
    Makefile.PL -V 8.0 is used.

    Regards,

    Jeff

    Index: ocitrace.h
    ===================================================================
    --- ocitrace.h (revision 408)
    +++ ocitrace.h (working copy)
    @@ -200,19 +200,29 @@
               OciTp, (void*)sv,(void*)eh,(void*)lh, \
               oci_status_name(stat)),stat : stat
     
    +#if !defined(ORA_OCI_8)
     #define OCILobFreeTemporary_log_stat(sv,eh,lh,stat) \
             stat=OCILobFreeTemporary(sv,eh,lh);
    \
             (DBD_OCI_TRACEON) ? PerlIO_printf(DBD_OCI_TRACEFP,
    \
               "%sLobFreeTemporary(%p,%p,%p)=%s\n", \
               OciTp, (void*)sv,(void*)eh,(void*)lh, \
               oci_status_name(stat)),stat : stat
    +#else
    +#define OCILobFreeTemporary_log_stat(sv,eh,lh,stat) \
    + stat=0
    +#endif
     
    +#if !defined(ORA_OCI_8)
     #define OCILobIsTemporary_log_stat(ev,eh,lh,istemp,stat)
    \
             stat=OCILobIsTemporary(ev,eh,lh,istemp);
    \
             (DBD_OCI_TRACEON) ? PerlIO_printf(DBD_OCI_TRACEFP,
    \
               "%sLobIsTemporary(%p,%p,%p,%p)=%s\n", \
               OciTp, (void*)ev,(void*)eh,(void*)lh,(void*)istemp, \
               oci_status_name(stat)),stat : stat
    +#else
    +#define OCILobIsTemporary_log_stat(ev,eh,lh,istemp,stat) \
    + stat=0
    +#endif
     
     #define OCILobRead_log_stat(sv,eh,lh,am,of,bp,bl,cx,cb,csi,csf,stat) \
             stat=OCILobRead(sv,eh,lh,am,of,bp,bl,cx,cb,csi,csf); \
    Index: Makefile.PL
    ===================================================================
    --- Makefile.PL (revision 408)
    +++ Makefile.PL (working copy)
    @@ -43,7 +43,7 @@
     my %opts = (
         NAME => 'DBD::Oracle',
         VERSION_FROM => 'Oracle.pm',
    - PREREQ_PM => { "Test::More" => 0 },
    + PREREQ_PM => { "Test::Simple" => 0.40 },
         EXE_FILES => [ "ora_explain$exe_ext" ],
         OBJECT => '$(O_FILES)',
         DEFINE => '',


  • Next message: Tim Bunce: "Re: DBD::Oracle, binary releases, 8.0 support"