Tuesday, August 9, 2022

SQL Relay 1.9.3 Re-Release Announcement

I just updated the release files for version 1.9.3 of SQL Relay. There was a problem that caused the master branch rather than the 1.9.3 branch to get packaged as 1.9.3, which led to all kinds of build errors. That's been fixed. The files that are out there now should contain source for the actual 1.9.3 release. If you had trouble building, then that's almost certainly why. Try re-downloading the SQL Relay source. It should work this time.

Friday, August 5, 2022

SQL Relay 1.9.3 Release Announcement

Version 1.9.3 of SQL Relay, the powerful connection pool, load balancer, query router, and database proxy, is now available.

This release has 2 main features:

  • Support for PHP 8.1
  • Support for Oracle 18 and 19

However, it does include some bug fixes as well:

  • It is now possible to bind NULLs when using the ODBC backend to talk to MS SQL. This, apparently, didn't work in previous versions.
  • Some SQLGetInfo()s were missing from the ODBC driver, which prevented it from working correcltly with specific apps, in conjunction with ODBC 3.8+, most notably the Oracle Heterogenous Agent. Those are now fixed.
  • I had inadvertantly enabled some experimental code in the PostgreSQL backend. That's disabled now, and works correctly.
  • The PostgreSQL front-end had bind-related trouble when used with a non-PostgreSQL backend due to various subtle bugs. Those are fixed now.
  • In certain circumstances, SQL Relay had trouble binding date values when used with MySQL. That's also fixed.

If any of that sounds familiar to you, or if you need support for PHP 8.1 or Oracle 18+, give this release a try!

Wednesday, November 3, 2021

Rudiments 1.4.2 Release Announcement

Version 1.4.2 of Rudiments, the C++ class library for developing systems and applications, is now available.

This release fixes bugs that caused timeouts to not timeout on systems that use epoll_wait() (eg. Linux) and kqueue() (eg. FreeBSD).

Monday, September 27, 2021

SQL Relay 1.9.2 Release Announcement

Version 1.9.1 of SQL Relay, the powerful connection pool, load balancer, query router, and database proxy, is now available.

This release has 2 main features:

Improved Ruby API

Some time ago Ruby added a Global Interpreter Lock, similar to the one that Python has had forever. To improve performance with modern Ruby, I added code to release/reacquire the lock around SQL Relay C-API calls in case they perform I/O, similar to what the Python API does.

Password File Support in the Userlist Auth Modules and Connect Strings

If you don't want to store passwords directly in the sqlrelay.conf files any more, it's now possible to store them in external files (with potentially more restrictive permissions) and refer to them in the sqlrelay.conf file enclosed in square brackets.

The userlist, mysql_userlist, and postgresql_userlist auth modules now support this. It is also supported in the "password" parameter of the "string" attribute of the "connection" tag for all databases.

Bug Fixes

The sqlrclient protocol module had some quirks related to how it handled cases where it was out of cursors, but was sent a really long query. These are resolved now. There was also a bug that could cause the result set not to be closed and the "current error" not to be cleared between reexecutions of the same query (eg. with updated bind variables) if the previous execution resulted in an error. That's also fixed. Both fairly obscure errors, but if they sound familiar then try this release.

Rudiments 1.4.1 Release Announcement

Version 1.4.1 of Rudiments, the C++ class library for developing systems and applications, is now available.

Though this release just adds the sensitivedata class required by SQL Relay 1.9.2.

Monday, June 21, 2021

SQL Relay 1.9.1 second packaging update

Well, I can't explain how, but apparently a few files inside of the previously released sqlrelay source code got gzipped. Specifically config.guess and config.sub. This led to configure not working, and general impossibility compiling things. I just repackaged everything again, double-checked it prior to upload, and double-checked the download. All appears to be well at the moment. If you had trouble building SQL Relay from source, please re-download and try again.

Friday, June 18, 2021

SQL Relay 1.9.1 packaging update

It looks like I made a mistake during the 1.9.1 release. The sqlrelay-1.9.1.tar.gz and sqlrelay-1.9.1.zip files containing the source for SQL Relay actually contained the source code for the trunk, rather than the 1.9.1 release. Similarly, the source code for both rudiments and sqlrelay that was included inside of the binary distributions was also the source code for the trunk, rather than the appropriate vesions. This has just been fixed. So, if you had trouble building the source, or if you managed to successfully build the source, but running "sqlrsh --version" returns "sqlrsh 2.0.0" rather than "sqlrsh 1.9.1", then please re-download/build/install the 1.9.1 release.

There was no issue with the binary release. The rpms, debs, and windows installers all included the correct versions. The mistake was, oddly, just in the source distribution.