News/2006
2006-12-21 - OpenDBX 1.1.9 released
The release before Christmas :-)
We are heading for the next stable branch of OpenDBX and this release might be the release candidat if no more bugs are found. Thus, only two updates compared to 1.1.8 were made which include an updated German language file and fixes to remove the warnings when compiling the Oracle backend.
2006-12-10 - OpenDBX 1.1.8 released
The Valgrind memchecker revealed some minor memory leaks in the mysql, sqlite, sqlite3 and firebird backend. They all occured when creating or releasing a connection and might have been a problem if many connections were established or a single connection recreated frequently. Also, a serious bug in the sqlite3 backend was fixed which could lead to an infinite loop if a backend error occured in sqlite3_odbx_result().
Additional enhancements are the updated spec file for creating RPM files and the check for the memset function in the configure script.
2006-12-03 - New Code Library
There's now a new section "Code Library" at Linuxnetworks which contains a repository of code I've written for several projects and which might be also useful for other ones. It contains functions and classes written in various languages with documentation and examples for interested developers.
2006-10-15 - OpenDBX 1.1.7 released
Much work have been done to clean up several backends and optimize the mssql and sybase backends to be in par with the other ones in terms of code quality. Further big changes were the replacement of the ODBX_* types by the ODBX_TYPE_* ones and the comparison of pointers to NULL instead of 0.
There are also some important bugfixes included like the wrong code the pgsql backend returned for empty queries or the off by one bug in odbx_excape(). Moreover there was an uninitialized variable for the host string in mysql_odbx_init().
2006-10-08 - OpenDBX 1.0.3 released
Two minor issues were fixed in this minor release for the stable branch. The MySQL backend didn't distinguish between clob and blob types and the PostgreSQL backend returned a wrong status for empty result sets. Furthermore the code in sqlite3_odbx_bind_simple() doesn't generate a compiler warning any more.
2006-09-25 - OpenDBX 1.1.6 released
This is another major step toward the next stable version. OpenDBX 1.1.6 adds a backend for Oracle databases (8i, 9i and 10g), compilation support for Solaris and additional autoconf checks. According to the release plan the 1.1.x branch is considered feature-complete and the next versions will mostly consist of code cleanups, bugfixes and minor improvements.
2006-09-10 - OpenDBX 1.1.5 released
Release 1.1.5 of the OpenDBX library contains the new Sybase backend which is based on Sybase's ctlib for handling communication to ASE servers. Contrary to the old dblib, it's much more flexible and will be able to support prepared statements in the future. The freetds backend still exists and can be used for connecting to a MS SQL Server and was therefore renamed to mssql backend.
Further on a new schema for naming data types was introduced (the old one will coexist for compatibility) and two bugs in the freetds backend were fixed.
2006-09-09 - New patch for PDNS OpenDBX backend
This is a small update to the previous patch and uses a new "status" column for supporting better DNS management by default. Please have a look at the migration section in the documentation if you update from previous versions. For optimal performance it's also necessary to recreate the table indices.
Download OpenDBX patch Configuration
2006-08-31 - New patch for PDNS OpenDBX backend
The current patch includes minor changes in the default SQL statements for the PowerDNS OpenDBX backend for compatibility with MS SQL and Sybase ASE servers. In particular, the SQL dialects of these servers do not allow quoting of numeric values like IDs. The patch removed quoting where necessary and both servers are now officially supported by the PowerDNS OpenDBX backend. Please have a look at the specific configuration for these backends in the documentation
Download OpenDBX patch Configuration
2006-08-25 - OpenDBX 1.1.4 released
Version 1.1.4 is another major improvement on the road to ANSI compatibility for all backends. The MySQL and MSSQL/Sybase operate now by default in ANSI mode with the infrastructure for supporting different modes in the backends which provide them. The freetds backend was updated to be in line with the other backends when handling date and time data types.
In addition the errno clash in odbx.h and bugs in the firebird and freetds backends were fixed. Specifically a NULL pointer check was added and the number of affected rows were corrected in the freetds backend while two minor bugs in the firebird backend were removed.
2006-08-10 - OpenDBX 1.1.3 released
The OpenDBX development continues with major improvements in several backends. Most of the work is related to the firebird backend which does now return correct ISO date and time information and decimal values in text format and - most important - can handle transactions like all other backends. This release also fixes the segfaults if odbx_finish() is called more often and corrects minor bugs in the mysql and pgsql backends.
To sustain on this high level of code quality in all backends and improving it further, scripts for automated regression tests are included. They will prevent introducing bugs in existing code and will also be helpful for comparison between existing and newly written backends.
2006-07-31 - OpenDBX 1.0.2 released
This is the second bugfix release in our stable branch. Due to an incorrect pointer handed over to dlclose(), a segfault is likely to occur when calling odbx_finish(). It may not occur on the first call but the more often your program reestablishes a connection, the higher the probability. Thanks to Clizio Merli who provided the excellent bug report.
Another correction was related to the pgsql backend which returned 't' and 'f' instead of '1' and '0' for boolean values.
2006-07-04 - OpenDBX 1.1.2 released
I can proudly announce that this release of the OpenDBX library contains a fully featured and stable backend for firebird/interbase database servers which works well with both, the classic server and the newer firebird threaded server (often called "firebird super server"). Using the firebird/interbase client library correctly is one of the more challenging tasks and therefore great news for the OpenDBX project.
Beside the firebird backend this version also introduces a new function called odbx_error_type(), whose primary goal is to distinguish fatal from non-fatal errors. This is especially important for client programs to be able to recover from errors instead of just fail.
2006-06-28 - OpenDBX 1.1.1 released
Besides laying the foundation for a Win32 port, this release includes the updates from the stable branch and a working spec file as well. The spec file from Kees is very sophisticated: By default only the most used backends will be build (MySQL, PostgreSQL and SQLite3) but you are able to select additional backends or deselect defaults ones. Pretty cool stuff!
In addition some streamlining was done and the depricated function odbx_bind_simple() is now guarded by a #define. If you want to compile your program without changing the code to use odbx_bind() instead, you have to add the preprocessor define "ODBX_DEPRICATED".
2006-06-17 - PowerDNS OpenDBX backend patch
This day features not only a new release of the OpenDBX library but also a major patch for the OpenDBX backend which is part of PowerDNS 2.9.20. It contains several important improvements:
- Supports separate DBMS servers for reading and writing
- Fault tolerance if the server for updating domains is down
- Meaningful warnings and error messages at every time
- Fine tuning for a maximum of speed
Supporting different server for reading and updating domains is especially important if you don't have a cluster where each node is equal. Most of the time one server (the master) is used for updates and the changes are replicated to one or more slave server. The patch enables the OpenDBX backend to support this as well as being able to serve all domains by the slaves even if the master is down and updates can't be made.
Feel free to test it in your environment :-)
2006-06-17 - OpenDBX 1.0.1 released
This is our first bugfix release for the stable branch - not that we are expecting more ;-)
A problem occured in heavily multithreaded applications which open and close connections to a MySQL database often. The OpenDBX MySQL backend was able to crash the native library on Debian Sarge systems using version 4.1.11a of libmysqlclient.so which leads to a segfault in MySQLs get_charset_number().
Minor bugfixes include a working spec file for the OpenDBX package (thanks to Kees Monshouwer for his excellect work) and the MySQL backend supports now also the unsetting of options. At the same time the robustness of the pgsql and sqlite3 backends was increased and they should be in par with the other backends.
2006-06-10 - OpenDBX 1.1.0 released
... and further ahead :-)
Todays release of the new development branch introduces two new backends: freetds for MSSQL/Sybase DB support and a firebird prototype. While the firebird prototype is not yet ready for serious use, the freetds backend provides the full functionality available in all other backends from the stable branch.
Version 1.1.0 also contains two improvements in the API which are backward compatible to the stable versions. To improve performance when using some backends, you can now directly access the binary values of standard C types which are stored in integer and floating point column types. Furthermore a future-safe method for binding to the server was introduced and the old one (odbx_bind_simple) was set to depricated.
2006-05-28 - OpenDBX 1.0.0 released
Ready for prime time! :-)
Finally it's done - we finished the first stable release of the OpenDBX database abstraction library and you are invited to spread the word and use it in your own applications.
Some final bug fixes were made and several memleaks in error conditions were removed which have been found with the help of valgrind. Also all available backends are now feature complete to the degree they were provided by them. I would like to get your feedback so don't hesitate and send an email to norbert@linuxnetworks.de :-)
2006.05.05 - OpenDBX 0.9.9 released
Almost done :-)
Version 0.9.9 only adds the missing static keywords and tiny/medium blob recognision in the MySQL backend.
2006.03.25 - OpenDBX 0.9.8 released
We are headling for version 1.0! ;-)
First of all a big "Thank you" to Ralf van der Enden who maintains the FreeBSD port of OpenDBX and helped fixing the configure script so the library compiles and links on FreeBSD cleanly.
Further on this release fixes an error message bug and contains a heap of changes in the mysql backend - from support of multiple statements over changed SSL handling to removed timeout support (fails by design of mysql). Last but not least an application for regression testing is now also part of the package.
2006.01.17 - OpenDBX 0.9.6 released
The 0.9.6 release fixes a bug in odbx.h which contained a wrong define for a backend error. Additonal changes include ISO C99 cleanness and allmost all warnings in pedantic mode are also removed.