[Sqlrelay-discussion] SQL Relay 0.50 is out
Brought to you by:
mused
|
From: David M. <dav...@fi...> - 2013-02-22 23:24:03
|
Hello all,
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"
One thing that has not been addressed yet is support for Multiarch
systems. Debian and Ubuntu have recently started installing libraries
for some modules under /usr/lib/<arch> where arch is something like
i386-gnu-linux or x86_64-gnu-linux. On 64 bit platforms, both
directories exist with 32-bit libraries installed in
/usr/lib/i386-gnu-linux and 64-bit libraries installed in
/usr/lib/x86_64-gnu-linux. On arm platforms it's even more complicated
as there are both old-school and EABI directories as well as one for
thumb and some other option as well. Mips platforms are similarly
complicated. To make it more complex, the Debian/Ubuntu naming
conventions don't match the output of the config.guess script. I'm
working on a solution but it didn't make it into this release.
Unfortunately the only good solution for now is to symlink the
appropriate libraries into /lib.
For example, to get FreeTDS to be detected and used, run:
cd /usr/lib
ln -s i386-gnu-linux/libct.so.4.0.0 libct.so.4.0.0
ln -s i386-gnu-linux/libct.so.4.0.0 libct.so.4
ln -s i386-gnu-linux/libct.so.4.0.0 libct.so
Or similar for the libraries of other packages.
Enjoy,
David Muse
dav...@fi...
|