Main Page | Modules | File List | Globals | Related Pages | Examples

libsqlora8 - 2.3.2


2005-02-26  kpoitschke  <kai[_at_]>
 Release 2.3.0
2005-02-26  kpoitschke  <kai[_at_]>

 sqlora.c (sqlo_define_ntable): Fixed memory leak caused by 
	double allocation of stmt handle

2005-02-26  kpoitschke  <kai[_at_]>

 sqlora.c (sqlo_bind_ref_cursor): Fixed memory leak caused by
	double allocation of stmt handle.

2005-01-22  kpoitschke  <kai[_at_]>

 sqlora.c (sqlo_set_autocommit): New functions sqlo_set_autocommit
	and sqlo_autocommit to set autocommit on/off and to read the
	autocommit status from the library.
	Autocommit is enabled by setting OCI_COMMIT_ON_SUCCESS in the mode
	parameter when calling OCIStmtExecute.
	Added two convenience macros sqlo_autocommit_on, sqlo_autocommit_off
	to ommit the on/off parameter.
	This functionality was supplied by Hans Oesterholt-Dijkema.

2005-01-19  kpoitschke  <kai[_at_]>

 sqlora.c (_calc_obuf_size): Added support for ANSI DATE,
	Changed the default size to 8 * db_size to be more safe.
        This was actually done by Raj K.

2005-01-11  kpoitschke  <kai[_at_]>
 Hans Oesterholt-Dijkema added the support for Windows XP + MinGW (
	The new subdirectory windows/msvc+mingw contains the Makefile.msvc
	and the sqlora8.def file.
	for detailed instructions.

2005-01-03  kpoitschke  <kai[_at_]>

 sqlora.h: (sqlo_fetch): Documented the cases where 

2005-01-03  kpoitschke  <kai[_at_]>

 sqlora.c (_define_ocol_by_pos): Return SQLO_UNSUPPORTED_DATA_TYPE
	when trying to query a data type where we cannot identify the
	output buffer size. This is the case for any LOB kind of type.
	This affects the sqlo_open and sqlo_open2 and sqlo_reopen 
	functions only.

2004-09-25  kpoitschke  <kai[_at_]>
 Release 2.3.0

2004-08-26  kpoitschke  <kai[_at_]>
 Release 2.3.0pre15

2004-07-30  kpoitschke  <kai[_at_]>

 sqlora.c (sqlo_query_result): New function
	sqlo_query_result. Combines the features of sqlo_fetch,
	sqlo_ncols, sqlo_values, sqlo_value_lens, sqlo_ocol_name_lens,
	sqlo_ocol_names2 in one function, makeing it even more easier 
	to query the database.

2004-06-13  kpoitschke  <kai[_at_]>

 sqlora.c: Deallocate all memory allocated for 
	input and output bind variables of statements when 
	a database connection is closed. On a normal sqlo_close they
        will not be deallocated, to make the easily available for
	the next statement.

	Inserted lots of (paranoid) assertions. Hope the cause not more
        trouble than they help finding problems.

2004-05-29  kpoitschke  <kai[_at_]>

 sqlora.c (_sqlo_execute): Fixed missing status save when
	an error occurs.

2004-05-28  kpoitschke  <kai[_at_]>

 sqlora.c (_define_by_pos): Fixed bug when
	num_defnpv gets greater than defnpv_size. Put in some assertions
	to check these cases.

2004-03-20  kpoitschke  <kai[_at_]>

 acoracle.m4 (ACX_ORACLE_VERSION): 
	Added configure parameter --with-oraversion=major.minor
	to let the user specify the Oracle client version.
	Used to tell configure the oracle version in cases where
	configure cannot find it out itself, because sqlplus or
	svrmgrl is not installed on the client side.

2004-02-26  kpoitschke  <kai[_at_]>

 sqlora.c (sqlo_open, sqlo_open2):
	In case of an error (parse, etc.) the stmt is closed.
	No need to call sqlo_close on an invalid sth.

2004-02-05  kpoitschke  <kai[_at_]>

 sqlora.c (sqlo_connect, sqlo_finish): Make sure all
	resources are freed when one of this functions fail 
	because of an unavailable database.

2004-01-03  kpoitschke  <kai[_at_]>

 Released 2.3.0pre10

 sqlora.c (sqlo_ocol_names2): New function which returns
	the vector as a parameter and returning the status in the
	function return code. See example ex7.c for usage.

	sqlo_ocol_names and sqlo_ocol_names2 work now also when using
	sqlo_define_by_pos to define the output columns.

2003-12-15  kpoitschke  <kai[_at_]>

 sqlora.c: Added support of windows threads.
	Thanks to Murat Eren (murat.eren[_at_] who supplied this

2003-12-02  kpoitschke  <kai[_at_]>

 sqlora.c (sqlo_init): Added more initialization
	for the oracle threads.

2003-08-14  kpoitschke <kai[_at_]>
 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_]>
 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_]>

 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_]>

 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_]>

 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_]>

 sqlora.c (_stmt_init): Fixed a malloc bug for statements >= 1024 bytes.

2002-11-27  Kai Poitschke  <kai[_at_]>

 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_]>

 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_]> Changed all AC_DEFINE, so they 
	include the description	of the parameter (new autoconf feature).

2002-09-24  Kai Poitschke  <kai[_at_]>

 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_]>
	on pointing me to this issue.

2002-08-25  Kai Poitschke  <kai[_at_]>

 _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_]>

 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_]>

 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_]> 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_]>

 Released 2.2.7

2002-07-23  Kai Poitschke  <kai[_at_]>

 doc/ Made doc the default target.

2002-07-19  Kai Poitschke  <kai[_at_]>

 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_]>

 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.


	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_]>

 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_]>

 sqlora.c (_open_trace_file): Fixed wrong parameter documentation.

2002-07-11  Kai Poitschke  <kai[_at_]>
 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_]>
 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_], 
	who pointed me to the fix.

2002-06-21  Kai Poitschke  <kai[_at_]>

 sqlora.c: Fixed include problem for non-unix, non-pthread OS.

2002-06-17  Kai Poitschke  <kai[_at_]>

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

 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_]>

 Released 2.2.2

 sqlora.h: Added example for sqlo_init and sqlo_connect to documentation.

2002-06-11  Kai Poitschke  <kai[_at_]>

 Install: Removed wrong configure parameter --enable-sqlora1

2002-06-03  Kai Poitschke  <kai[_at_]> 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_]> (pkg-config): Added missing oracle ld flags in
	Libs section.

2002-05-15  Kai Poitschke  <kai[_at_]>

 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_]>

 sqlora.c (sqlo_lob_append_buffer): Supplied this new
	function to allow appends to existing lobs.

2002-04-19  Kai Poitschke  <kai[_at_]>

 sqlora.c (sqlo_get_blocking): Return the blocking
	mode now in a separate parameter, not in the return

2002-03-16  Kai Poitschke  <kai[_at_]>

 sqlora.c: Refactored the naming convention of the static
	functions and the variables. 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_]

 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]

 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

2002-03-01  Kai Poitschke  <kai[_at_]>

 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

 examples: Added examples. The examples are included into the documentation.

2002-02-28  Kai Poitschke  <kai[_at_]>

 sqlora.c: Added LOB support

2002-02-15  Kai Poitschke  <kai[_at_]> 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_]> 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_]>

 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

2002-01-28  Kai Poitschke  <kai[_at_]> Added this new file to allow clients using
	pkg-config (see

2001-11-29  Kai Poitschke  <kai[_at_]>
 Updated config.guess and config.sub with latest versions
	Hope this helps to fix some configure problems.

 Changed some min alloc buffer sizes to higher values to avoid even more

2001-11-23 (2.2.0beta4) Kai Poitschke  <kai[_at_]>
 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_]>

 sqlora.c (sqlo_bind_output): Fixed wrong buffer size for 
	big FLOAT columns.

2001-06-02 Kai Poitschke  <kai.poitschke[_at_]>

 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_]>

 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_]>


2001-02-20  Kai Poitschke  <kai.poitschke[_at_]>

 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_]>

 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_]>

 sqlora.c (sqlo_version): Returned always

 acsqlora8.m4: Fixed bug in ACKP_LD_RUNPATH_SWITCH
        Use $prefix as default sqlora8_config_prefix.

2001-02-10 Kai Poitschke  <kai.poitschke[_at_]>

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

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

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

 sqlora.c (sqlo_bind_output): Fixed an array bound write bug
	which occurs when selecting columns with names longer then
	30, e.g.: 
	  FROM table;
	This problem does not occur if you alias the column name
	to a name shorter then 30 like
	  FROM table;

2001-01-28  (2.1.8) Kai Poitschke  <kai.poitschke[_at_]>
 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_]> who pointed
	me to that problem.

2001-01-11  (2.1.7) Kai Poitschke  <kai.poitschke[_at_]>

 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_] who pointed me at
	this one.

2000-11-13 (2.1.6) Kai Poitschke  <kai.poitschke[_at_]>

 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_]>

 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_] 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_] who reported this
	problems .

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

 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_] 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 and not
	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_]>

 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_] who 
	detected and fixed the problem.

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

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

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

 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_] who detected and
	fixed the problem.

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

 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 

        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:


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

 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_] for
	reporting this bug.

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

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

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

 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_]>

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

Generated on Sat Feb 26 16:02:43 2005 for libsqlora8 by doxygen 1.3.8