OCILIB version 3.9.0 coming on April the 27th !


OCILIB version 3.9.0 will be finally released in 3 days, on April the 27th !

The SVN repository is already up to date with this version.

Here is the summary of this version :

Here is the final changelog :

2011-04-20 Version 3.9.0 Vincent Rogier vince.rogier@ocilib.net

    * Added support Oracle XA

      - Oracle XA integration in OCLIB is transparent by using OCI_ConnectionCreate() and requires just :
         - an XA db name for parameter 'db'
         - an extra flag OCI_SESSION_XA for parametrer 'mode'
         - no user or password
      - See the OCI_ConnectionCreate() documentation for the XA open string needed by OCILIB to pass to the TMP 

    * Added support for statement cache

      - Statement cache is now automatically enabled when using an Oracle client >= 9iR2
      - Added statement cache size customization when using an Oracle client >= 10gR1 :
        - Added OCI_SetStatementCacheSize()
        - Added OCI_GetStatementCacheSize()
        - Added OCI_PoolSetStatementCacheSize()
        - Added OCI_PoolGetStatementCacheSize()

    * Added support for TAF (Transparent Application Failover) and HA (High availabality) 
      - The following handler has been added when using an Oracle client >= 10gR2

        - Added OCI_IsTAFCapable()
        - Added OCI_SetTAFHandler()
        - Added OCI_SetHAHandler()

    * Added support for Connection attributes introduced in Oracle 10gR2 

      - Added OCI_GetDBName()
      - Added OCI_GetInstanceName()
      - Added OCI_GetServiceName()
      - Added OCI_GetServerName()
      - Added OCI_GetDomainName()
      - Added OCI_GetInstanceStartTime()

    * Improved bind tuning. Now it is possible to set the bind direction mode (in, out, in/out) for slightly better performance 
      - Added OCI_BindSetDirection()
      - Added OCI_BindGetDirection()

    * Miscellaneous new calls :

      -  Added OCI_Describe() and OCI_DescribeFmt() to enable the retrieving of an OCI_Resultset object for 'select' statement wihtout exectuing the SQL

    * Miscellaneous changes :

      - Reenforced checks on OCI_Statement handle related methods that checks the statement state (prepared, executed, parsed,...) that now can throw more exceptions
      - Updated layout of some internal structure to supress unnecessary padding
      - Manual update of source code formatted with Uncrustify (wrong indentation of preprocessor directives)
      - User callbacks were not correctly documented
      - Updated Doxygen version used to generate the documentation (update in the output html style)

    * Miscellaneous fixes :

      - Fixed Binding call using the binding mode OCI_BAM_INTERNAL :

        - arrays of Lobs, Files, Intervals and timestamps : internal objects were not properly initialized
        - big_int : single bind and array bind were incorrectly implemented (allocation size wrongly computed that lead to a segfault for arrays)	
        - strings : 
          - single binds : if the length parameter was set to 0, a segfault happened 
          - Wide strings : if the native Oracle Unicode used a different size than the C runtime for wchar_t (like unix like system) translation were not performed by OCILIB 

      - Fixed 11Gr2 compile time detection when using OCI_IMPORT_LINKAGE (default on Unix platform)   
      - Fixed OCI_ImmediateFmt() : the method returned FALSE even on success
      - Fixed OCI_PoolGetConnection() : OCILIB tried to set the driver name attribute (appeared in 10gR2) on the session that is not allowed anymore in 11g
      - Fixed OCI_SetFormatDate() macro : fixed macros parameters declaration
      - Fixed OCI_ColumnGetNullable() returned value
      - Fixed OCI_ConnectionCreate() : 2 OCI handles not freed if connection failed
      - Fixed OCI_SetPrefetchSize(), OCI_SetPrefetchMemory() : the given value was not really passed to Oracle
      - Fixed OCI_TypeInfoGet() called internally when fetching object owned by a different schema
      - Fixed OCI_Parse() : the method was internally doing a describe operation instead of just a parse (which gave same results from an end user view)
      - Fixed OCI_LobAssign() that was not handling correclty Lob arrays created with OCI_LobArrayCreate()
      - Fixed OCI_BindDouble() and OCI_BindArrayOfDoubles() : internal sub numeric type OCI_NUM_DOUBLE was not set on the bind handle
      - Fixed OCI_StringGetFromAttrHandle() allocation of insuffucient buffer in unicode mode
      - Fixed OCI_ObjectSetxxx() could return true if attribute not found
      - Fixed Queues function in OCI_CHARSET_MIXED mode