Friday, February 22, 2013

SQL Relay - 0.50 is out

SQL Relay version 0.50 is now available.

This release mainly fixes a few issues relevant to users of Microsoft SQL Server.

The following client C++ API methods, equivalent methods and functions in other API's and equivalent commands in sqlrsh now work properly with SQL Server via FreeTDS:

  • getDbVersion()
  • getDatabaseList()
  • getTableList()
  • getColumnList()

The FreeTDS code has been updated as well. FreeTDS (and the TDS protocol in general) doesn't support fetching multiple result sets simultaneously through the same connection. Any attempt to do so results in the error: "Attempt to initiate a new Adaptive Server operation with results pending." SQL Relay has always attempted to work around this by caching the entire result set on the client by default but there was a subtle bug that could cause the error to still occur under certain circumstances. That bug has been fixed and everything now works as expected. I added an entry to the FAQ about it as well.

Parameters have been added to sqlrelay.conf for reformatting dates in the result set as well. Many databases provide limited or no control over the formatting of dates and times in the result set. This is problematic when migrating from one database to another if the databases have different date/time formats and the application expects a particular format. To help remedy this the datetimeformat, dateformat, timeformat and dateddmm parameters have been added to allow dates in the result set to be reformatted by SQL Relay before they are sent to the client.

Various other bug fixes and updates have also been made:

  • fixed the sqlrserver-config script to return data for libsqlrserver rather than libsqlrconnection
  • added a test for SQLROWSETSIZE for odbc that doesn't define it
  • fixed a NULL dereference in custom_nw logger
  • fixed an uninitialized variable (sqltr) in sqlrcontroller class
  • fixed a memory leak in the freetds version-checking code
  • added new search paths and default prefix for Syllable OS
  • added support for null-terminated result bind lists to the mysql drop-in library so apps can optionally bind fewer columns than come back in the result set
  • added configure tests for php-config-"version"