Here is the list of OCILIB changelogs.
Click on a change log entry to see the full details.
-
Fixes (C API)
- Issue 326: OCI_GetTimeout() always returns 0 since v4.7.0
* Fixes (C++ API)
- Issue 325: ocilib::Lob::GetConnection() does not compile anymore since v4.7.5
* Changes (C API)
- OCI_Cleanup() now returns FALSE if OCI_Initialize() has not been called
- OCI_GetSQLVerb() handles some new verbs added with Oracle 21c
- OCI_Execute() and related methods return now FALSE and report an OCI_Error for PL/SQL statements raising PL/SQL no_data_found exceptions
* This revert behavior introduced in v4.3.1 for addressing issue #68
* Motivation is to re-align on SQL*Plus behavior
- OCI_GetOCIRuntimeVersion() and OCI_GetOCICompileVersion() returned integer values on 6 digits instead of 4 digits
* Handles now minor version using 2 digits (e.g. Oracle OCI version 19.16.0)
* Use macros OCI_VER_MAJ, OCI_VER_MIN, OCI_VER_REV and OCI_VER_MAKE to do computations on versions
- Very old Oracle OCI 8.0.x is now supported
- Up to now, OCILIB supported all Oracle versions from 8.1
- Oracle 8.0 is now also supported for very old legacy systems (as Oracle 8.0 was released in mid 90's)
- As OCI multi-threaded APIs were only available from 8.1, passing OCI_ENV_THREADED to OCI_Initialize() with Oracle 8.0 will generate an error:
- OCILIB Error code : OCI_ERR_NOT_AVAILABLE
- OCILIB Error message : "Feature not available (Oracle 8.1 multihreading support)"
* Fixes (C API)
- Issue 297: Library compilation fails with MSVC 2022 version 17.2 (error C2220)
- Issue 298: OCI_DirPathLoad() can never returns in case of internal load errors (infinite loop)
- Issue 308: OCI_Execute() raises error OCI-22060 when binding host big_int variables with OCI_BDM_OUT in case the SQL or PL/SQL engine sets a NULL value
- Issue 309: OCI_Execute() does not raise exceptions when executing PL/SQL statement raising no data was found PL/SQL exception
- Issue 313: OCI_GetString() returns NULL for CLOB columns is the CLOB row value was filled with empty_clob()
- Issue 314: OCI_BindSetCharsetForm() is not accessible since v4.7.0
- ISsue 316: OCI_DequeueGet() returns messages with OCI_Object payloads that can have NULL properties while being NOT NULL when queued
- ISsue 317: OCI_SubscriptionRegister() generates a segfault on failure
* Fixes (C++ API)
- Issue 299: Performance issues with C++ API in multi-threaded environments
- Issue 306: Compile error under GCC when accessing an ocilib::Collection item
-
Miscellaneous
- Updated compilers for MS Windows prebuilt binaries to VS2022 17.4.4
- Internal code changes / refactoring
- Some documentation updates
- Added more tests in tests suite
- Fixed ocilib C demo makefile : compilation could failed on some Linux environments
-
Fixes (C API)
- Issue 291: OCI_DirPathGetErrorRow() always return 0 since v4.7.0
- Issue 284: OCI_MsgGetID() returns a NULL ID after being queued with OCI_DequeuePut()
- Issue 288: OCI_GetString returns null on implicit conversion of a RAW value when it’s longer than 64 bytes
- Issue 283: OCI_DequeueGet() returns null pointer when message has empty payload
- Issue 282: PL/SQL Server output wrong internal buffer size on some oracle versions
- Issue 281: ORA-00931 in OCI_TypeInfoGet() when using SYS.RAW type
* Fixes (C++ API)
- Issue 272: AddressSanitizer reports mismatched new[] vs delete
- Issue 278: ocilib::Object causes Segmentation fault
-
Miscellaneous
- Updated compilers for MS Windows prebuilt binaries
- VS2022 17.0.1 for 32/64 bit DLLs
- VC runtime (statically linked) updated from vc142 to vc143
- Updated compilers for MS Windows prebuilt binaries
* Fixes (C API)
- Issue 247: When using a OCI_Timestamp object created with OCI_TIMESTAMP_TZ flags, some OCILIB timestamps methods might raise an OCI_ERR_NULL_POINTER error
- Issue 248: For Oracle client version < 11g, version 4.7.0 broke the ability to fetch data from resultset containing specific datatypes
- Fixed some Coverity code analysis findings (hypothetical issues never encountered)
* Miscellaneous
- Updated C API test suite
* Re-Ran successfully test suite with OCILIB compiled in 8i, 9i, 10g, 11g, 12c, 18c modes (ANSI and Unicode)
-
Enhancements (C API)
- OCILIB internal and public symbols management * For static library: - All private symbols that can have local scope are now declared static - All private non static symbols are now prefixed with "Ocilib" to avoid collisions * For shared library: - No change for Windows platform as __declspec(dllimport) and __declspec(dllexport) were already handled - When using GNUC compatible compiler: - all public symbols are now declared with __attribute__ ((visibility ("default"))) - all private symbols are now delcared with __attribute__ ((visibility ("hidden"))) - Configure script will automatically add the compiler flag "-fvisibility=hidden" - OCILIB compiles now without any warnings when using GNUC with flags -Wall -Wextra -pedantic
-
Fixes (C API)
- Issue 242: Fixed strings.h conflict with recent GCC versions
- Issue 243 : Fixed compiling ocilib directly from repository on non Windows systems (while using distribution archive was OK)
- Issue 245 : Fixed ocilib shared library symbols visibility (Linux/Unix)
-
Changes (C API)
- Removed useless old macros for mapping lib C string function to ansi or wide char versions (ostrXXX)
- Removed symbols ocisprintf(), ocistrdup(), ocistrcasecmp(), ociwcsdup(), ociwcscasecmp() from OCILIB shared library
-
Miscellaneous
- Updated compilers for MS Windows prebuilt binaries
- VS2019 16.7.6 for 32/64 bit DLLs
- VS2019 16.7.6 for 32/64 bit DLLs
- Updated compilers for MS Windows prebuilt binaries
-
* Enhancements (C API)
- Library internal design changes (preparing v5.0.0)
* OCILIB code base has been layered in 2 distinct API layers:
- Internal API that has now its own separate design
- v4.7.0 internal API, while matching the public one in this version, has most of its methods renamed
- It will evolve differently, preparing new public APIs for future versions
- Public APIs exposing features to clients
- v4.7.0 is exposing the same public API as previous versions
- v5.0.0 will expose a different API
- Both will use same internal API
- Contextual error management enhancements
- As internal APIs cannot be called from outside the library, last error management has been simplified and improved
- Enhancements on internal methods implementation:
- Since v3.0.0 (back in 2008), OCILIB methods implementations are standardized to follow the same single exit point pattern
- Standardized entry point checks and exit points are based on extentive macros usage
- But the control flow was handled by a status variable leading to continuous and nested checks
- With 4.7.0, no more "if (STATUS) {...}" in the code.
- Instead, in case of errors, code directly jumps to exit points that can have cleanup code sections.
- See it as try {...} finally{...}
- Thus, code is now very sequential, much easier to read, with no nested error management/branching.
- Public headers reorganization:
* Broke up ocilib.h content into multiple headers located in /include/ocilibc/
* Broke up C++ headers content into multiple headers located in /include/ocilibcpp/
- Enhanced Error handing:
* Updated OCI_Cleanup(): if there are any unfreed allocated bytes by the library itself (e.g. OCILIB user objects not freed)
- it raises an error of type OCI_ERR_UNFREED_BYTES (with the amount of bytes in the error message)
- it completes cleanup and returns FALSE
* Added method OCI_ErrorGetLocation() to return the method name where the exception occured
* Updated method OCI_ErrorGetString() to return a string using the following format "Error occured at {Location}: {Description}"
* Fixes (C API)
- Issue 239: Fetching nclobs as strings return value in hexa format truncated values when nsl_lang is UTF8
- Issue 238: Fetching clobs as strings return truncated values when nsl_lang is UTF8
- Issue 236: Memory issue with OCI_BAM_INTERNAL and OCI_CDT_NUMERIC
- Fixed OCI_EnqueuePut() and OCI_DequeueGet() in OCI_CHARSET_WIDE charset mode (added a workaround for a known oracle client UTF16 bug)
- Fixed a minor memory leak when using implicit resultsets
* Fixes (C++ API)
- Issue 230: Memory leaks while rebinding vectors
* Miscellaneous
- Extended C API Test suite that has now a much wider coverage <br/> <br/>
* Fixes (C API)
- Issue #222: Allow OCI_SESSION_SYSDBA for session pools
- Issue #225: Fixed some PL/SQL tables binding issues when statement is an anonymous PL/SQL block
- Issue #226: When NOT using OCI_ENV_CONTEXT environment flag, OCI_CollToText() andOCI_ObjectToText() failed if previous OCILIB call failed
- Issue #227: Enhanced performance when fetching Clobs as strings (for Oracle 11g and above)
* Miscellaneous (C API)
- Some performance improvements when converting Objects and Collections to strings
- Some performance improvements when calling OCI_GetString() on non strings columns
* Miscellaneous (C++ API)
- Enhanced Number class in C++ API <br/> <br/>
- Some C API Bug fixes
- Some C API and C++ API Bug fixes
- Some C API and C++ API Bug fixes
- Enhanced Oracle 18c support
- Added network timeout management support
- Some C API and C++ API Bug fixes
- Some C API and C++ changes
- Some C API and C++ API Bug fixes
- Some C API and C++ API enhancements and Bug fixes
- Some C API and C++ API enhancements and Bug fixes
- Some C API and C++ API enhancements and Bug fixes
- Some C API enhancements and Bug fixes
- Some C API Bug fixes
- Some C API Bug fixes
- Some C API Bug fixes
- Some C++ API Bug fixes
- Added NUMBER SQL type native wrapping
- Various Bug fixes
- Major internal refactoring
- Re-licensed OCILIB under Apache License Version 2.0 instead of LGPL 2.1
- Various Bug fixes
- Some minor changes
- Implemented Oracle 12c extended support for PL/SQL types
- Added Memory usage information
- Added Session Max Cursor information
- Miscellaneous enhancements
- Various Bug fixes
- C API : Major library code update
- C API : Some enhancements
- C API : Various Bug fixes
- C++ API: Major enhancements
- C++ API: Various bug fixes
- C API : Fixed Object API with complex nested types
- C API : New error OCI_ERR_ARG_INVALID_VALUE
- C API : Miscellaneous Fixes
- C++ API : Some Enums definitions where promoted to Flags
- C++ API : Fixed binding strings
- C++ API : Fixed possible race conditions in multithreaded applications
- C++ API : Miscellaneous enhancements
- Introducing new C++ API
- Added Support for some Oracle 12cR1 new features
- Enhanced Collections support
- Refactored Oracle Pooling support
- Enhanced string conversions
- Miscellaneous new methods
- Miscellaneous changes
- Miscellaneous fixes
- Fixed Unicode support (OCI_CHARSET_WIDE and OCI_CHARSET_MIXED)
-
Miscellaneous fixes 2013-02-07 . version 3.12.0
- Added support for lob prefetching introduced in 11gR1
- Enhanced and fixed Direct Path API
-
Fixed Oracle Streams AQ (Advanced Queues) asynchrounous notifications
- Fixed numeric/ string conversions
- Miscellaneous fixes
- Fixed broken support for Oracle Database Change notifications
- Extended Oracle Streams AQ (Advanced Queues) support
- Fixed And Enhanced support of BINARY FLOAT and BINARY DOUBLE types
- Miscellaneous changes
- Miscellaneous fixes
- Added support for native C float datatype
- Miscellaneous fixes
- Miscellaneous changes
- Miscellaneous fixes
- Miscellaneous internal changes
- Documentation update
- Miscellaneous fixes (Detection of the ‘long long’ type on unix/linux, repaired support of Oracle client versions < 10g broken by version 3.9.0)
- Miscellaneous fixes (string binds, objects null attribute, “returning into” SQL clause)
- Added support for Oracle XA connectivity (X/Open Distributed Transaction Processing XA interface)
-
Added support for TAF (Transparent Application Failover) and HA (High availability)
- Added support for statement cache
- Added support for Connection attributes introduced in Oracle 10gR2
- Miscellaneous new API calls and tuning
- Miscellaneous changes
- Miscellaneous fixes
- Miscellaneous changes
- Miscellaneous fixes
- Added support for Oracle Streams AQ (Advanced Queues)
- Added support for SQL parsing only
- Miscellaneous changes
- Miscellaneous fixes
- Added support for Session Pools
- Extended fetch interface
- Improved Execute/Fetch performance
- Extended Array interface
- Miscellaneous changes
- Miscellaneous fixes
-
Improved Array interface
- Added proper support for UTF8 strings
- Exented String support
- Extended LOB API
- Modified native CHARSET modes
- Fixed Multiple loads in Direct path mode
- Miscellaneous changes
- Miscellaneous fixes
- Miscelleanous fixes (see changelog)
- Added support for Oracle Database Change notification / Continuous Query Notification
- Added support for Oracle warning (grace period notification, SQL truncation, etc …)
- Major Object API internal update, rewrite and improvement
- Extended Lob Support
- New various functions
- Miscelleanous fixes (see changelog)
- Miscelleanous modifications (see changelog)
-
Added support for Oracle 11g remote instance management
-
Miscelleanous fixes (see changelog)
-
Miscelleanous modifications (see changelog)
-
Added SQL command and verb retrieving
-
Added support for batched errors for Array DML
-
Extended Lob Support
-
Extended Collection API
-
Modified and extended Bind API
-
Extended OCI_ImmediateXXX() API
-
Extended OCI_XXXFmt() API
- Miscelleanous fixes (see changelog)
- Miscelleanous modifications (see changelog)
- support for direct path loading
- extended binding capabilities (rebinding, update of array size, …)
- extended objects API
- modified Database objects describe API
- static libraries builds for GCC ports on MS Windows added
- documentation updated
- Miscellaneous internal modifications
- Miscelleanous fixes (see changelog)
- Miscelleanous modifications (see changelog)
- Added support for Oracle REF datatype
- Added some tracing features
- Extended Object API
- Extended Collection elements API
- Extended Bind informations
-
Fixed Unicode support for Unixes platforms
- Miscellaneous public modifications
- Miscellaneous internal modifications
- Miscelleanous fixes (see changelog)
- Miscelleanous modifications (see changelog)
- Fixed few memory leaks introduced in v3.0.0 (see changelog)
- Fixed ocilib sources compilation with MSVC6++
- Added support for scrollable cursors
- Added Support for Oracle Collections (VARRAYs and Nested Tables)
- Major library rewrite
- Extended Error handling
- New thread contextual error handling
-
New functions
- Extended implicit datatypes conversions
- Extended documentation and demos
- Miscelleanous fixes (see changelog)
- Miscelleanous modifications (see changelog)
- Fixed runtime loading of som OCI symbols (broken since v2.5.0)
- Fixed runtime loading of OCI shared library on Unix-like platforms(broken since v2.5.0)
- Fixed connection pooling emulation for Oracle 8i
- Fixed Unicode strings binding to PL/SQL tables of char/varchar
- see changelog for details
- Added support for PL/SQL tables (PL/SQL arrays)
- Extended Date, timestamp and interval support
- Extended OCI_Connection handle attributes
- Added Support for retreiving server output
- Added Support for OCI Threadkeys
- Extended runtime loading of Oracle shared libs on various Unix-like systems
- Added Support for Oracle Instant Client on Unix-like systems
- Extended OCILIB documentation
- Added more demo source code
-
Miscelleanous modifications (see changelog) 2008-24-04 . version 2.4.0
- Added support for 16bits and 64bits integers
- Extended error handling
- Added prebuilt binaries for MS Windows 64bits
- Miscelleanous modifications (see changelog)
-
Miscelleanous fixes (see changelog) 2008-30-03 . version 2.3.0
- Added support for connection pooling
- Added support for portable threads and mutexes
- Extended Lob support
- Public interface modification (see changelog)
-
Misc. fixes (see changelog) 2008-19-03 . version 2.2.0
- Added support for cancelling long calls
- Extended statement tuning
- Added password modification
- Misc. modifications (see changelog)
-
Misc. fixes (see changelog) 2008-04-03 . version 2.1.0
- Added public retrieval of internal OCI handles
- Extended Hash Tables support
- Added support for Lobs larger > 4 Go
- Extended Oracle versions support
- Modified Error handling
-
Misc. fixes (see changelog) 2008-02-16 . version 2.0.0
- Added Object support
- Added Unicode support for Unixes
- Added National charform support
- Added SYSDBA/SYSOPER session support
- Extended Metadata information support
- Modified OCI_Long and OCI_Lob API
- Various modifications (see changelog)
-
Various fixed bugs (see changelog) 2008-01-28 . version 1.6.0
- “Returning into” SQL Clause support
- Added misc. fonctions (see changelog)
- Modifications (see changelog)
-
Fixed bugs (see changelog) 2008-01-10 . version 1.5.4
- Fixed bugs (see changelog)
- Code refactoring (see changelog)
-
Updated demo applications (see changelog) 2008-01-04 . version 1.5.3
-
Fixed Array binding (see changelog) 2008-01-04 . version 1.5.2
-
Fixed fetch on empty resultsets (see changelog) 2008-01-04 . version 1.5.1
-
Fixed 2 bugs (see changelog) 2008-01-04 . version 1.5.0
- Added proper RAW support
- Added Array interface support for fast bulk operations
- Extended interval and timestamp support
-
Miscellanious internal modifications and fixes (see changelog) 2007-12-30 . version 1.4.0
- Added Interval datatype support
- Added Timestamp datatype support
- Added Hash tables support
- Added OCI version detection
- Added OCILIB C source compatibility for C++
- Resulset values can be retreived now by column names
- Miscellanious internal fixes (see changelog)
-
Miscellanious internal modifications (see changelog) 2007-12-18 . version 1.3.1
-
Fixed sourceforge bug #1853369 2007-12-10 . version 1.3.0
- Added Full BFILE support
- Extended Lob support
- Added Prefetch support
- Added Support for describing database objects (currenly only table support)
- Modified and extended Column info API
- Extended support for formatted fonctions
- Fixed OCILIB Objects binding
- Miscellanious internal fixes (see changelog)
- Miscellanious internal modifications (see changelog)
- Perfomances improvement
-
Updated Documentation 2007-12-01 . version 1.2.1
- Updated Documentation (regenerated from source without macro expansion)
-
Fixed sourceforge bug #1841998 2007-11-25 . version 1.2.0
- Added complete html documentation
- Embedded source documentatiobn (throught Doxygen)
- Support for global transactions
-
Interface modfications (see changelog) 2007-11-12. version 1.1.0
- Modified the library comes with 2 archvives : GNU et Win32
- Added use of GNU install tools
- Added options for building the library
- Modified interfaces and some functions calls
-
Fixed unicode support 2007-10-19 . version 1.0.0
- First public release