2003-08-14  kpoitschke <kai[_at_]poitschke.de>
        * Released 2.2.11

	* sqlora.c (sqlo_execute): Fixed a memory problem when
	doing one parse and lots of bind_by_name and executes.
	Memory increased when lots of binds were done.

2003-06-11  kpoitschke  <kai.poitschke@axense.com>

	* 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>

	* Released 2.2.10

	* sqlora.c (_stmt_init): Fixed a malloc bug where stmts > 1024 bytes
	lost one byte at the end.

2002-12-02  Kai Poitschke  <kai[_at_]poitschke.de>

	* Released 2.2.9
	
	* acoracle.m4 (AM_PATH_ORACLE): Fixed configure/link problems 
	on AIX (at least some versions of it).

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, sterr
	will be returned.
	
2002-08-25  Kai Poitschke  <kai[_at_]poitschke.de>

	* Released 2.2.8
	
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: 
	- Added new functions for support of non-blocking calls:
	  sqlo_set_blocking
	  sqlo_get_blocking
	  sqlo_break

	- Added new function sqlo_open2 which will substitute sqlo_open.
	  sqlo_open2 can be used in non-blocking mode. sqlo_open is modified
          to switch temporarily back to blocking mode. 

	- Changed interface of sqlo_init. Takes now a third argument: 
          max_cursors. So you have the contol over how many parallel
	  open cursors can exist.
	
2001-02-20  Kai Poitschke  <kai.poitschke[_at_]computer.org>

	* sqlora.c (sqlo_connect): Fixed bug when unsuccessfull login 
	causes the database handle not to be released.

2001-02-18 (2.2.0beta1) Kai Poitschke  <kai.poitschke[_at_]computer.org>

	* sqlora.c: Initial thread safe version. See also NEWS
	for the major changes. The current version includes all
	fixes an enhancements of version 2.1.10.

2001-02-11 (2.1.10) Kai Poitschke  <kai.poitschke[_at_]computer.org>

	* sqlora.c (sqlo_version): Returned always
	SQLO_MAFORMED_VERSION_STR. Fixed it.

        * acsqlora8.m4: Fixed bug in ACKP_LD_RUNPATH_SWITCH
        Use $prefix as default sqlora8_config_prefix.
	
2001-02-10 Kai Poitschke  <kai.poitschke[_at_]computer.org>

	* sqlora.c (sqlo_get_db_handle): 
	Added versioning support.
	Added two new functions sqlora_version and 
	sqlora_get_db_handle

	Added autoconf macros to check libsqlora8 version.
	Added NEWS file.
	

2001-02-09 (2.1.9) Kai Poitschke  <kai.poitschke[_at_]computer.org>

	* sqlora.c (sqlo_bind_output): Fixed an array bound write bug
	which occurs when selecting columns with names longer then
	30, e.g.: 
	SELECT TO_CHAR(DATE_OF_CREATION,'DD-MM-YYYY HH24:MI:SS')
	  FROM table;
	This problem does not occur if you alias the column name
	to a name shorter then 30 like
	SELECT TO_CHAR(DATE_OF_CREATION,'DD-MM-YYYY HH24:MI:SS') AS 
	       DATE_OF_CREATION
	  FROM table;
	

2001-01-28  (2.1.8) Kai Poitschke  <kai.poitschke[_at_]computer.org>
        * sqlora.c: Marked some functions for inlining, if the
	compiler supports this. Improved autoconf macros (see
	acinclude.m4) to detect oracle version and HP-UX compiler
	and opt. flags settings. The default compiler on HP-UX 
	is c89. The CFLAGS are set to +e +O3 +Oinline.

	Fixed small problem in macro chk_status. The errcode is
	not reset there anymore. Instead, it is set in save_status.
	Thanks to Handa Hirotake <handa[_at_]yc4.so-net.ne.jp> who pointed
	me to that problem. 
	
	
2001-01-11  (2.1.7) Kai Poitschke  <kai.poitschke[_at_]computer.org>

	* sqlora.c (trace): Fixed missing parenthesis. This 
	caused fflush to be called for every trace command, even
	if trace was not enabled.
	Thanks to Carol Farlow Lerche (cafl[_at_]msbit.com) who pointed me at
	this one. 
	
2000-11-13 (2.1.6) Kai Poitschke  <kai.poitschke[_at_]computer.org>

	* sqlora.c (sqlo_bind_by_pos): Internal bind variable pointer
	was counted wrong when bind parameters were bound again (reusing
	and already parsed cursor). This causes a crash when closing
	the cursor. This problem is fixed now.

	Minor optimizations at diffent places.

2000-11-01  (2.1.5) Kai Poitschke  <kai.poitschke[_at_]computer.org>

	* sqlora.c (sqlo_reopen): Removed an abort() which was accindenlty
	in the code (was only raised on SQL errors).
	Thanks again to Hans-Joachim Baader (Hans-Joachim.Baader[_at_]cjt.de) who 
	detected the problem.

        * sqlora.c (sqlo_execute): sqlo_prows returned an error when asking 
        for the rowcount after sqlo_execute returned SQLO_NO_DATA. 
	This happens when you do an array fetch and all rows
	were retrieved via OCIStmtExecute.

	*sqlora.c: #ifdef'd the include for unistd.h, this should help to 
	compile it on windows systems.

        *sqlora.c (strdup): Fixed syntax error. This function is only compiled
	if your system doesn't have a strdup function. 
	
	Thanks to HANDA Hirotake (handa[_at_]yc4.so-net.ne.jp) who reported this
	problems .

2000-10-20 (2.1.4) Kai Poitschke  <kai.poitschke[_at_]computer.org>

	* sqlora.c (sqlo_connect): Fixed memory leak. This bug occured only
	on Oracle versions < 8.1.x. Multiple connects and disconnects
	increased the memory usage.
	Thanks to Pavel Konovalov (pasha[_at_]ema.ru) who detected this issue.

	Starting with this version the micro version is not part of the
	shared library name anymore. This means the installed shared library
	is named libsqlora-2.1.so.0.0.4 and not libsqlora-2.1.4.so.0.0.4
	This allows us to install version 2.1.5 and you don't have to relink
	all the executables depending on it. 
	

2000-10-16  (2.1.3) Kai Poitschke  <kai.poitschke[_at_]computer.org>

	* sqlora.c (sqlo_exec): Fixed bug with wrong status code
	in case of an sql error.
	Thanks again to Hans-Joachim Baader (Hans-Joachim.Baader[_at_]cjt.de) who 
	detected and fixed the problem.

2000-10-12 (2.1.2) Kai Poitschke  <kpoitschke[_at_]computer.org>

	* sqlora.c (sqlo_get_oci_handle): Inserted missing break.
	Thanks to Hans-Joachim Baader (Hans-Joachim.Baader[_at_]cjt.de) who detected
	the problem.

2000-09-13  (2.1.1) Kai Poitschke  <kai.poitschke[_at_]computer.org>

	* sqlora.c (sqlo_connect): Fixed problem when very long connect strings
	or oracle sids break the internal buffers. Many thanks to
	Hans-Joachim Baader (Hans-Joachim.Baader[_at_]cjt.de) who detected and
	fixed the problem.

2000-08-24  (2.1.0) Kai Poitschke  <kpoitschke[_at_]computer.org>

	* sqlora.c: Added these new functions:

	char ** sqlo_ocol_names(int sth, int *num);
           Returns the column names of an opened cursor.

        int * sqlo_ocol_name_lens(int sth, int *num);
          Returns the lengths of the column names.

        unsigned short int * sqlo_value_lens(int sth, int *num);
          Returns the length of the actual data values returned by 
	  sqlo_values.
     
        int sqlo_ncols(int sth, int in);
           Returns the number of input bind variables (in == 1) or select 
           list items (in == 0).
	

        int sqlo_get_oci_handle (int sqloh, void * ocih, int type);
           Returns a specified  oci handle pointer. This allows you to 
           mix your code written for this library with OCI calls.

           sqloh is the libraries handle. Depending on the type this is
           either a dbh or sth. type could be one of the following values:

           SQLO_OCI_HTYPE_ENV     
           SQLO_OCI_HTYPE_ERROR   
           SQLO_OCI_HTYPE_SVCCTX  
           SQLO_OCI_HTYPE_SERVER  
           SQLO_OCI_HTYPE_SESSION 
           SQLO_OCI_HTYPE_STMT    


2000-08-22  (2.0.3) Kai Poitschke  <kai.poitschke[_at_]computer.org>

	* sqlora.c (sqlo_exec): Fixed missing free of statement
	handle pointer. This bug causes ORA-01000 when doing lots
	of sqlo_exec. Thanks to Ivan Buttinoni (ivan[_at_]bware.it) for
	reporting this bug.

2000-08-01  (2.0.2)Kai Poitschke  <kpoitschke[_at_]computer.org>

	* sqlora.c (sqlo_connect): Fixed bug when unsuccessfull login 
	leaves an used database handle.


2000-07-12 (2.0.1) Kai Poitschke  <kpoitschke[_at_]computer.org>

	* sqlora.c (sqlo_bind_input): Fixed bug when passing a NULL
	pointer in argv[]. NULL pointers are supposed to identify
	NULL values in the database.

2000-07-12  Kai Poitschke  <kpoitschke[_at_]computer.org>

	* sqlora.c (sqlo_fetch): Parameter num was not set. Fixed it.

