Wednesday, September 25, 2013

SQL Relay - 0.52 is out

Yes.  SQL Relay 0.52 is now available for general consumption.

Usually when I make a release of SQL Relay there is at least one significant new features.  This release though, is mainly just for compatibility with all of the changes I recently made to Rudiments.  A side effect of those changes is platform compatibility, so arguably that's a new feature, but most of the platforms that it now runs on are old or obscure in one way or another.  There were some recent fixes for ARM platforms which are actually growing in popularity these days, but the fixes for SCO OSR6, NetBSD Vax or Linux libc4 aren't likely to get too many peoples' attention.

It is kind of neat though, to see screenshots of an Oracle 12c database being accessed from platforms that Oracle has probably never remotely considered supporting.

There were a few non-platform-compatibility-related updates to this release.  sqlr-export supports CSV output now.  I had a need for that so I added code for it.  sqlrsh now reports the correct version.  It had been stuck at 0.22 probably since release 0.22.  sqlrsh also supports multiple queries on the command line.  You can now do:

sqlrsh -id myinstance -command "select * from table1; select * from table2"

I'd long thought you could but apparently hadn't written it that way.

The rest of the changes are either bug fixes, platform-compatibility updates or changes under the hood.  If the version you're using is satisfying then there's probably no pressing need to upgrade.

Full ChangeLog:

  • sqlrsh has long reported the wrong version, fixed that
  • added csv support to sqlr-export and a -format xml|csv option
  • replaced snprintf calls with charstring::printf calls
  • added a test for sys/vnode.h to work around an issue with perl on SCO OSR6
  • added workarounds for old versions of sqlite without sqlite3_malloc and sqlite3_free with char * argument
  • fixed error with sqlserver where "describe " would return columns in alphabetical order rather than the order they are in the table
  • the code freetds uses to get column names from MS SQL Server works for temp tables now
  • added informix->mssqlserver translation for select into queries
  • added translation to convert ||'s to concat() calls or +'s
  • added a long-missing "delete clientsock" to sqlrlistener that could cause a crash after enough time
  • various documentation tweaks
  • added handling for "select into" queries to temptableslocalize/sybaseize translations
  • fixed various crashes that could occur when a query filter was used
  • updated the query routing and filtering doc
  • sqlrsh supports multiple commands on a single line or on the command-line now
  • exit/quit in a sqlrsh script aborts the script now
  • improved date/time parsing for translations and result-set conversions
  • fixed lots of cases where const char *'s were being deleted
  • added 64-bit build support for windows
  • combined sqlrclient files for faster compiling
  • converted \t to actual tab in regular expressions for posix-compatibility