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).
SQL Relay, Rudiments, and other firstworks technologies...
...release announcements, tutorials, and other news.
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).
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 APISome 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 StringsIf 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 FixesThe 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.
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.
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.
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.
Version 1.9.1 of SQL Relay, the powerful connection pool, load balancer, query router, and database proxy, is now available.
This release fixes 2 bugs: a potential crash in the PostgreSQL front-end module, and a fix/workaround for an isuse where if a NULL was bound to the first argument of MS SQL Server's isnull() function then it wouldn't actually be interpreted as a NULL.
If you've run into either of these issues, then this release is for you!
Version 1.9.0 of SQL Relay, the powerful connection pool, load balancer, query router, and database proxy, is now available.
The main features of this release are:
Support for TLS Encryption in the MySQL and PostgreSQL Protocol Modules
SQL Relay has long supported the MySQL and PostgreSQL protocols, on the front-end, allowing SQL Relay to be dropped-in, transparently between many MySQL or PostgreSQL applications and the database. However, SQL Relay's implementation of the MySQL and PostgreSQL protocols has lacked support for TLS encryption, until now. It is now possible to do end-to-end encryption (without a tunnel) from a MySQL or PostgreSQL application, through SQL Relay, and into the database.
Support for UTF-16 Characters in SQL Server nchar/nvarchar Fields
SQL Server 2012 introduced the ability to store UTF-16 characters in nchar/nvarchar fields in addition to the standard UCS-2 that they traditionally supported. However, SQL Relay has traditionally forced a UCS-2 encoding when using nchar/nvarchar fields, preventing SQL Server users from being able to take advantage of this feature. Starting with this release, when using ODBC to connect SQL Relay to a SQL Server database, you can now specify ncharencoding=UCS-2 or ncharencoding=UTF-16 in the connect string to instruct SQL Relay how to deal with nchar/nvarchar fields.
PHP 8 Support
SQL Relay should now compile against, and work seamlessly with PHP 8.
NodeJS 14+ Support
SQL Relay should now compile against, and work seamlessly with NodeJS 14+.
Of course, there are many other subtle new features, improvements, and bug fixes. Full ChangeLog follows:
Version 1.4.0 of Rudiments, the C++ class library for developing systems and applications, is now available.
Though this release does include some new classes, additions to existing classes, this release mainly features changes to improve consistency between classes, as well as some under-the-hood improvements.
ChangeLog follows: