2003-08-14 kpoitschke <kai[_at_]poitschke.de> Released 2.3.0pre9 sqlora.c (sqlo_execute): Fixed a memory problem when doing one parse and lots of bind_by_name and executes. 2003-07-28 kpoitschke <kai[_at_]poitschke.de> Released 2.3.0pre8 sqlora.c (_save_oci_status): Store where the error happened only when --enable-debug was configured. Otherwise, the plain Oracle error is stored. 2003-07-28 kpoitschke <kai[_at_]poitschke.de> sqlora.c (_db_release): Fixed a memory leak when using Oracle Threads Destroy the oracle thread_id when releasing a database. 2003-06-16 kpoitschke <kai[_at_]poitschke.de> sqlora.c (sqlo_init): Protect sqlo_init from multiple calls. Should also work in with POSIX threads, but not with ORACLE Threads :( 2003-06-11 kpoitschke <kai[_at_]poitschke.de> acoracle.m4 (ORACLE_LIBDIR): Use $ORACLE_HOME/lib32 if present in favour of $ORACLE_HOME/lib. Helps on Solaris9 and maybe on other 64bit OS too. 2002-12-06 Kai Poitschke <kai[_at_]poitschke.de> sqlora.c (_stmt_init): Fixed a malloc bug for statements >= 1024 bytes. 2002-11-27 Kai Poitschke <kai[_at_].poitschke.de> acoracle.m4 (AM_PATH_ORACLE): Fixed configure/link problems on AIX. sqlora.c: Fixed compiler warnings concening invalid parameter type in printf on systems where sizeof() return type is unsigned long. 2002-10-30 Kai Poitschke <kai[_at]@poitschke.de> sqlora.c (_db_add): Changed the storage of open statements. They are not indirect anymore by pointers to statements. Instead the _max_cursors number of statement structures is allocated when a database connection is created. Avoids an indirection when accessing statement structures. Attention: May cause a big memory footprint if you set the max. number of cursors to a really high number. 2002-10-30 Kai Poitschke <kai[_at]@poitschke.de> configure.in/acoracle.m4/acinclude.m4: Changed all AC_DEFINE, so they include the description of the parameter (new autoconf feature). 2002-09-24 Kai Poitschke <kai[_at_]poitschke.de> Released 2.3.0pre2 sqlora.c (sqlo_server_free): Added this new function to savely release a server connection if the connection got broken. Thanks to Jean-Pierre Brunod <j.brunot[_at_].inwind.it> on pointing me to this issue. 2002-08-25 Kai Poitschke <kai[_at_]poitschke.de> _db_release: Close open trace files _get_trace_fp: Return in any case a valid fp. If nothing works, stderr will be returned. 2002-08-25 Kai Poitschke <kai[_at_]poitschke.de> sqlora.c: Removed global _stmtv and allocate a statement vector per database connection. This removes the big lock and I don't have to check anymore if the operation on a cursor is done from the same of another thread. Should increase the performance of MT applications. 2002-08-24 Kai Poitschke <kai[_at_]poitschke.de> sqlora.c (sqlo_reopen, sqlo_fetch): This function closed internally the cursor, if an error occured. If the user did this also, the user probably closed a cursor which was already opened by another thread, which caused corruption in the internal data structure and strange effects for the user. Generally speaking, multiple sqlo_close were not safe. Now sqlo_close checks if the cursor was really opened by the closing thread. A better solution would be to store statement handles locally per database handle and make statement handle values unique across multiple connections. This would mean we don't have to lock the statement handle vector anymore, which means much less locks and hopefully a better performance. The drawback would be a lower limit of available dbh's (32768) and sth's (65535 per connection), which is not a too hard limit IMHO. sqlora.c (sqlo_server_attach): Protect OCIEnvCreate by a mutex lock. Looks like OCIEnvCreate is not thread safe, so we better protect it. sqlora.c (sqlo_close): Close cursor (means release any resources) even if the cursor is not opened or prepared. sqlora.c (sqlo_close): Check if the cursor we want to close is really opened by this thread. sqlora.h: Added missing prototype and documentation of sqlo_get_stmt. sqlora.c (sqlo_values, sqlo_ocol_names, sqlo_ocol_name_len) Set *num to 0, if function returns NULL, in case of errors. Of course this only done if num != NULL. Added windows subdirectory, which provides the readme file and a def file to use it with Visual C++ 2002-08-16 Kai Poitschke <kai[_at_]poitschke.de> configure.in: Added compiler flag -W if gcc is used. Makefile.start: New target config to get the lastest config.sub and config.guess from fsf. 2002-07-24 Kai Poitschke <kai[_at_]poitschke.de> Released 2.2.7 2002-07-23 Kai Poitschke <kai[_at_]poitschke.de> doc/Makefile.am: Made doc the default target. 2002-07-19 Kai Poitschke <kai[_at_]poitschke.de> sqlora.c (_save_oci_status): Changed format of error messages. libsqlora8 specific messages start with LIBSQLORA8-<nnnnn>, where nnnnn is the error number. acoracle.m4 (ACX_ORACLE_VERSION): Fixed error in script to determine the Oracle version. 2002-07-16 Kai Poitschke <kai[_at_]poitschke.de> Released 2.2.6 sqlora.c (sqlo_register_int_handler): New function to register a signal handler for interrupts. Because you are not allowed to install your own handler for SIGINT, you can register one with the OCI interface via the sqlo_register_int_handler function. Oracles OCI will call this function if it catches the SIGINT. NOTE: DON'T TRY TO EXECUTE ANY OCI/LIBSQLORA8 FUNCTIONS IN THE SIGNAL HANDLER!!! Have a look at examples/examples.c to see how it is used. sqlora.c (sqlo_clear_int_handler): New function to clear a signal handler for interrupts. 2002-07-16 Kai Poitschke <kai[_at_]poitschke.de> sqlora.c (sqlo_get_ocol_dtype): Returns allways the right Oracle datatype. The function returned the type used in the library before. sqlora.c (sqlo_ncols): For select list columns, we execute now the statement and return the number of columns delivered by the OCI statement attribute OCI_ATTR_PARAM_COUNT. 2002-07-12 Kai Poitschke <kai[_at_]poitschke.de> sqlora.c (_open_trace_file): Fixed wrong parameter documentation. 2002-07-11 Kai Poitschke <kai[_at_]poitschke.de> Released 2.2.5 sqlora.c (_open_trace_file): Write session specific trace files. There is still the trace file sqlora8.trc where information is written, before a connection to a databasé is established. The other trace files are named sqlora8.trc<n>, where <n> is the session id, not the dbh! This helps to trace threaded applications. 2002-07-09 Kai Poitschke <kai[_at_]poitschke.de> Released 2.2.4 acoracle.m4 (ACX_ORACLE_VERSION): Fixed determination of valid sqlplus option to query the Oracle version for Solaris 8. Thanks to Andrea Luciano <andrea.luciano[_at_]icteam.it, who pointed me to the fix. 2002-06-21 Kai Poitschke <kai[_at_]poitschke.de> sqlora.c: Fixed include problem for non-unix, non-pthread OS. 2002-06-17 Kai Poitschke <kai[_at_]poitschke.de> Released 2.2.3 sqlora.c (sqlo_reopen): Fixed a bug, when reopen failed to execute the cursor. This bug causes a SQLO_NOT_FOUND status when fetching data on the reopened cursor. The problem occured only for cursors doing a query ("SELECT * FROM..."). 2002-06-13 Kai Poitschke <kai[_at]poitschke.de> acoracle.m4 (AM_PATH_ORACLE): Changed "if ! test -z ..." into "if test -n ...", because the first version does not work on Solaris 2.8 2002-06-12 Kai Poitschke <kai[_at_]poitschke.de> Released 2.2.2 sqlora.h: Added example for sqlo_init and sqlo_connect to documentation. 2002-06-11 Kai Poitschke <kai[_at_]poitschke.de> Install: Removed wrong configure parameter --enable-sqlora1 2002-06-03 Kai Poitschke <kai[_at_]poitschke.de> configure.in: Fixed double definition of version constants. The version is now defined only in libsqlora8-config.h, not in config.h 2002-05-22 Kai Poitschke <kai[_at_]poitschke.de> libsqlora8.pc.in (pkg-config): Added missing oracle ld flags in Libs section. 2002-05-15 Kai Poitschke <kai[_at_]poitschke.de> sqlora.c Fixed compiler warnings on HP-UX 11 and older Oracle versions. (_close_all_executing_cursors): Fixed wrong storage class in definition. (_close_all_db_cursors): Fixed wrong storage class in definition. (sqlo_lob_write_stream): Make sure OCILobOpen is only called when this function is available. This is determined via autoconf. (sqlo_lob_append_buffer): This function is only available if autoconf detected the OCI function OCILobWriteAppend. If not, this function will always return SQLO_ERROR. 2002-04-19 Hans-Joachim Baader <hans-joachim.baader[_at_]cjt.de> sqlora.c (sqlo_lob_append_buffer): Supplied this new function to allow appends to existing lobs. 2002-04-19 Kai Poitschke <kai[_at_]poitschke.de> sqlora.c (sqlo_get_blocking): Return the blocking mode now in a separate parameter, not in the return value. 2002-03-16 Kai Poitschke <kai[_at_]poitschke.de> sqlora.c: Refactored the naming convention of the static functions and the variables. configure.in: Added new option --enable-glib-alloc If you are using glib in your program, and you want libsqlora8 to use also g_malloc/g_free instead of malloc/free, enable it with this option. 2002-03-12 Kai Poitschke <kai[_at_]poitschke.de sqlora.c (init_mutexes): Added support for using Oracle threads to protect the internal structures. Changed autoconf switch to --with-threads=(posix|oracle) 2002-03-11 (2.2.0beta8) Kai Poitschke <kai[_at]poitschke.de sqlora.c (sqlo_get_ocol_dtype): New function to get the datatype of a column in the select list. sqlora.c (sqlo_server_version): New function to retrieve the server version string. sqlora.c (sqlo_set_prefetch_rows): New function to set the prefetch rows attribute for select statements. sqlora.c: Added support for REF cursor and NESTED TABLE cursors. 2002-03-01 Kai Poitschke <kai[_at_]poitschke.de> sqlora.c (sqlo_define_by_pos2): Added rcode_addr to parameter list. Use the same skip size for value, ind, rlen and rcode. Doing this, you have to put these variables inside the structure, which is more convenient anyway. sqlora.c (sqlo_bind_by_pos2): New function. Basically the same as sqlo_define_by_pos2. sqlora.h: Updated the whole documentation using doxygen (see http://www.doxygen.org/) examples: Added examples. The examples are included into the documentation. 2002-02-28 Kai Poitschke <kai[_at_].poitschke.de> sqlora.c: Added LOB support 2002-02-15 Kai Poitschke <kai[_at_]poitschke.de> configure.in: Updated to latest autoconf macros (autoupdate). Moved all defines from acconfig.h to the new template macro AH_TEMPLATE (single point of maintenance) 2002-02-12 Kai Poitschke <kai[_at_]poitschke.de> configure.in: Set CC_PRAGMA_INLINE if this is a c89 compiler The ACX_C_PRAGMA check doesn't determine it correctly. 2002-02-03 (2.2.0.beta5) Kai Poitschke <kai[_at_]poitschke.de> sqlora.c (sqlo_server_attach): Ported sqlo_server_attach, sqlo_session_begin, sqlo_session_end and sqlo_server_detach from 2.1.15. Fixed some issues with non-blocking calls. sqlo_geterrcode calls now OCIErrorGet and saves the errcode in dbp->errcode. 2002-01-28 Kai Poitschke <kai[_at_]poitschke.de> libsqlora8.pc.in: Added this new file to allow clients using pkg-config (see http://www.freedesktop.org/software/pkgconfig/) 2001-11-29 Kai Poitschke <kai[_at_]poitschke.de> Updated config.guess and config.sub with latest versions from ftp://ftp.gnu.org/config Hope this helps to fix some configure problems. Changed some min alloc buffer sizes to higher values to avoid even more reallocs. 2001-11-23 (2.2.0beta4) Kai Poitschke <kai[_at_]poitschke.de> sqlora.c: Fixed a memory leak that occured when a lot of connects/disconnects are executed. 2001-09-14 (2.2.0beta3) Kai Poitschke <kai[_at_]poitschke.de> sqlora.c (sqlo_bind_output): Fixed wrong buffer size for big FLOAT columns. 2001-06-02 Kai Poitschke <kai.poitschke[_at_]computer.org> sqlora.c: Made lint (lclint) happy. acsqlora.m4: Removed blank after -Wl,-R to make cc on AIX happy 2001-02-27 Kai Poitschke <kai.poitschke[_at_]computer.org> sqlora.c (sqlo_open): Fixed switch into non-blocking mode caused by an uninitialized variable. 2001-02-26 (2.2.0beta2) Kai Poitschke <kai.poitschke[_at_]computer.org> sqlora.c: