CHANGES version 2.2.3 This file summarizes changes made since 1.0 Version 2.2.3 ------------- Bug fixes: * Make sure connection properties, max rows and query timeout are reset on Connection_close(), if changed. * Ensure that timeout is set for new Connections and fixed a bug in the SQLite retry macro so the SQLite driver now will retry executing on database lock Version 2.2.2 ------------- Bug fixes: * Ensure that reaper progress forward and remove all connections it can * Fixed a va_copy bug on 64 bits systems Version 2.2.1 ------------- * SQLite: Improved error reporting by using sqlite3_prepare_v2() when available. Thanks to Paul Stevens for suggesting this. Bug fixes: * MySQL and PostgreSQL: Fixed off-by-one count when verifying validity of parameter and column index. Thanks to Paul Stevens for bug report. * MySQL: Workaround mysql column truncation bug. Thanks to Paul Stevens for bug report. Version 2.2 ----------- * Detailed error message added to exception. In an exception handler, the variable Exception_frame.message, now provides an alternative to Connection_getLastError() for obtaining the latest error message * From this release, building with exceptions handling is no longer optional but required * Internal optimizing changes Bug fixes: * Fixed Connection_prepareStatement() error reported on a PostgreSQL Connection. Thanks to Paul Stevens for bug report. * MySQL: Fixed error in ResultSet_getBlob() and ResultSet_getString() which lead to a segfault when trying to obtain "large" strings and blobs. Again thanks to Paul Stevens. * PostgreSQL: Fixed the "syntax error at character 12" for prepared statement deallocation. Thanks to Paul Stevens for bug report. Version 2.1 ----------- * API: Connection_ping is promoted to a public method. Clients can use this method to test if a Connection is alive. * API: Connection_clear() is exposed as a public method. Normally it is not necessary to call this method, but in some situations, if you use PreparedStatement_executeQuery it is necessary to call this function to close a prepared statement explicit. Basically, if you see this SQLite error, "SQL statements in progress", call this function to close any previous opened statements before proceeding. * Upon returning a Connection, the Connection Pool previously tried to commit a Connection if it was in a non-committed state, while now it rollback instead, which is assumed to be more correct. * Improved retry when SQLite report database lock, which should reduce the chance to meet the infamous SQLite "database is locked" error * Removed section 3 from "Tildeslash License Exception" so libzdb is licensed clear and permissive. * Internal optimizing changes Version 2.0.2 ----------- * Don't normalize path during URL parsing. If the path needs to be normalized it is the responsibility of the caller * Minor internal changes * libzdb is now licensed under GNU General Public License version 3 Version 2.0.1 ----------- * ConnectionPool_version() is now a class method * Minor internal changes Version 2.0 ----------- * Exceptions handling added to the library. This change how clients should use the library. Methods in the library that can throw an SQL Exception should now be called from inside a try-catch block. Bug fixes: * Fixed a PostgreSQL prepared statement bug. If parts of a statement was defined after its last parameter, preparation failed. Version 1.1.3 ------------- Bug fixes: * This release fixes a MySQL prepared statement bug. If a prepared statement was used with two or more number parameters, the numbers were saved with a bogus value in the database. Thanks to José Antonio Sánchez Version 1.1.2 ------------- * ResultSet_next() can be given a NULL value, upon which false is returned. Version 1.1 ------------- * Added PostgreSQL support * Using 'mysql_config' when available. Thanks to Paul Stevens paul * Removed the viral clausal from the exceptions license * Note, the caller is now responsible for freeing the URL_T object used in ConnectionPool_new(), via the URL_free() method. Version 1.0.4 ------------- * Use libtool to set release information for the library. * Simplified and removed section 4 of the license exception. * Use new version of auto-tools so library extension is set correct * Include bootstrap script for recreating configure * Minor internal changes Version 1.0.3 ------------- * Clear any previous resultset when calling Connection_execute() also. This allow MySQL implementations to issue a Connection_executeQuery() followed by Connection_execute() without having to close the Connection first. Otherwise MySQL may return a 'commands out of sync' error. Bug fixes: * Changed declaration of AbortHandler() so clients are not required to provide this function. Version 1.0.2 ------------- Bug fixes: * Refactor and consolidate PreparedStatement clearResultSet * Do not free prepared statements on Connection_executeQuery(), only the ResultSet if any. * MySQL: Avoid unnecessary re-allocation in MysqlResultSet.ensureCapacity() and set the new buffer length properly. * MySQL: Stop MysqlResultSet_next() sooner when maxRows is reached for versions < 5.0 * MySQL: Do not try to bind params in PreparedStatement unless in-params are present in the statement Version 1.0.1 ------------- * API: Connection_beginTransaction(), Connection_commit() and Connection_rollback() now returns an int (true of false) instead of void. Bug fixes: * MySQL: Removed a debug statement in MySQL prepare statement so a potential error message is not lost - MySQL pops last error messages. * MySQL: Make room for a terminating NUL byte when fetching large strings. * configure.ac: Don't link with zlib unless mysql version was confirmed * configure.ac: Don't print a warning if re2c was not found - Not required Version 1.0 ----------- * Initial release