Tuesday, August 25, 2020

SQL Relay 1.8.0 Release Announcement

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

This release mainly lays the groundwork for some future features, including a generic import/export framework. Some notable progress was also made on the JDBC driver, though it's still not finished. The most significant (finshed) new feature is an aes128 password encryption module.

There are some bugfixes as well. A long-standing issue with postgresql that could cause results from multiple open cursors to get confused has been resolved. A subtle error that could cause counting of bind variables on the client-side to hang has been fixed. A long-standing, but apparently obscure, issue that could cause tables from other MySQL schemas to be included in a "show tables" command has been fixed. As well as various other issues.

Full ChangeLog follows:

  • unattended tests
  • added sqlrresultsetdomnode class to c++ client API
  • fixed datedelimiters parameter
  • added support for SQLParamOptions with SQLUINTEGER arguments
  • sqlr-import detects uppercase .CSV suffix now
  • fixed a csv number-detection but in sqlr-import
  • fixed a delete[] of a const in sqlr-import
  • it's possible to specify a commitcount of 0 with sqlr-import now
  • moved sqlrimportxml/csv classes into libsqlrclient
  • moved sqlrexportxml/csv classes into libsqlrclient
  • csv import/export is consistent now
  • added some event methods to sqlrexport
  • migrated parsedatetime functions to rudiments datetime class
  • different postgresql cursors use different stmtNames now
  • sqlrimportcsv can create a primary key that's not in the CSV now
  • sqlrexportcsv quotes 12+ digit numbers now
  • fixed subtle, count-related issues when validating bind variables on the client side, that could cause a hang
  • added an aes128 pwdenc module
  • applied a patch to fix a crash in the debug logger (missing "%s")
  • added a tweak to getsitearchdir.rb to fix incorrect lib/lib64 reporting on some centos x64 systems
  • fixed mysql getColumnList to distinquish proper db/schema

Rudiments 1.3.0 Release Announcement

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

This release mainly featured integration of code from other projects. The remnants of the old firstworks project "stencil" have been merged in, as well as some MVC base classes from other projects. Some date-time parsing code from SQL Relay has been pushed down into the datetime class.

There are some new features as well - most notably an encryption framework and aes128 class. There are also sax/dom parsers for CSV, ini, and java-style properties files as well, similar to the xml/json sax/dom classes.

The logger classes have been refactored a bit, in back-incompatible ways. Thus the minor version bump.

Full ChangeLog follows:

  • unattended tests
  • added support for escaping single/double-quotes to templateengine
  • migrated in clasess from stencil project
  • added librudiments-apache
  • added \r\n support when parsing CSVs
  • integrated MVC base classes from other projects
  • added inisax/inidom and propsax/propdom classes
  • added cronschedule class
  • added logger start/end methods
  • logger string-write works like printf now
  • logger indent uses uint32_t now
  • removed some unused logger::write() methods
  • added a log level to the logger class
  • process::spawn()'s forked child exits if exec() fails now
  • charstring::replace() methods are null-safe now
  • migrated datetime::parse() and datetime::formatAs() from sqlrelay
  • csvsax accepts empty (or all whitespace) files now
  • logger::write() is null-safe now
  • base64encode is whitespace-safe now
  • added support for 5-part dates and day-month-year 4-part dates
  • added datetime::getWeekOfYear
  • added file::extension
  • added directory::createTemporaryDirectory
  • added directory::removeTree
  • added encryption interface
  • added aes128 encryption
  • added charstring::startsWith/endsWith