2008-03-31 Version 2.3.0 Vincent Rogier vince.rogier@gmail.com * Added Support for OCI Connection Pools - See new section in the documentation (page , section ) - Added type OCI_ConnPool - Added OCI_ConnPoolCreate() - Added OCI_ConnPoolFree() - Added OCI_ConnPoolGetConnection() - Added OCI_ConnPoolGetTimeout() - Added OCI_ConnPoolSetTimeout() - Added OCI_ConnPoolGetlGetNoWait() - Added OCI_ConnPoolSetNoWait() - Added OCI_ConnPoolGetBusyCount() - Added OCI_ConnPoolGetOpenedCount() - Added OCI_ConnPoolGetMin() - Added OCI_ConnPoolGetMax() - Added OCI_ConnPoolGetIncrement() * Added Support for OCI Mutexes - See new section in the documentation (page , section ) - Added type OCI_Mutex - Added OCI_MutexCreate() - Added OCI_MutexFree() - Added OCI_MutexAcquire() - Added OCI_MutexRelease() * Added Support for OCI Threads - See new section in the documentation (page , section ) - Added type OCI_Thread - Added OCI_ThreadCreate() - Added OCI_ThreadFree() - Added OCI_ThreadRun() - Added OCI_ThreadJoin() * Extended support for public retrieval of internal OCI handles : - Added OCI_HandleGetMutex() - Added OCI_HandleGetThread() - Added OCI_HandleGetThreadID() * Extended Lobs support : - Added OCI_LobAssign() - Added OCI_FileAssign() * Extended "Formatted" functions support : - Added support for OCI_Timestamp (<%p>) and OCI_Interval(<%v>) * Public interface (IMPORTANT CHANGES) - OCI_Initialize() : * New flag : OCI_ENV_THREADED * Up to v2.2.0, OCILIB was internally initializing OCI in threaded mode (even for non threaded applications) * With v2.3.0, applications HAVE TO SET EXPLICITLY the flag OCI_ENV_THREADED for multithreaded applications - Normalization of few Function Names : * OCI_CreateConnection() -> OCI_ConnectionCreate() * OCI_FreeConnection() -> OCI_ConnectionFree() * OCI_CreateStatement() -> OCI_StatementCreate() * OCI_FreeStatement() -> OCI_StatementFree() - Added Macro for existing code compatibility * Bug fixes : - OCILIB_MINOR_VERSION was not updated - A segmentation fault could happen when fetching Long column - If an OCI_Statement object or its internal handle couldn't be allocated, the entry was not removed from the connection statements list - Binding and fetching Unicode strings on national character columns: non ansi characters (code points) were badly converted (Now, it uses national charset form for conversion) - OCI_LobErase() : Offset value was wrongly used (shifted by 1) and could cause an error if set to zero - OCI_Immediate() and OCI_ImmediateFmt() : * Passing OCILIB objects for output result led to crash because of assignment of out-of-scope object pointers * Now, pass the OCILIB object handle, NOT the handle address * Now, OCI_Long, OCI_Statement are not handled * Miscelleanous - Added OCI_ReleaseResultsets() : optional call to release resultsets - OCI_SetPrefetchSize() and OCI_SetPrefetchMemory() : internal value is now set only is OCI call succeed - Internal connection rewrite for handling Connection pool - Renamed few function parameters + documentation updates - Unicode strings are now converted into database using national charset form - OCI environment handle : * Up to v2.2.0, every connection object holded an environment handle * Now, there is an unique environment handle associated to the internal OCI_Library object