Wednesday, May 2, 2012

Rudiments Update - 0.36.1 (Urgent)

There's bug in Rudiments, version 0.36 in the charstring::copy method that can cause various problems including segmentation faults. Version 0.36.1 has just been released to fix the problem. Please update.

For anyone who just wants to fix version 0.36, the fix is simple... Just edit src/charstring.cpp and look for the copy() method around like 842. It currently calls rawbuffer::copy but should be modified to have the following implementation:

char *charstring::copy(char *dest, const char *source, size_t size) {
 return strncpy(dest,source,size);
}

I changed the code in 0.36 to fix a problem on windows but the new code doesn't work properly for what should have been obvious reasons when I made the change. strncpy() will stop when it hits a null-terminator but rawbuffer::copy will copy "size" bytes no matter what, even if that's past the end of the string and off into the weeds.

Tuesday, April 10, 2012

SQL Relay - 0.45 is out

SQL Relay 0.45 is now available.

This release has the following new features:

  • support for getting the native database error number
  • support for mapping native error numbers to MySQL error numbers for the mysql drop-in replacement library
  • MSVC projects for sqlrclient, sqlrclientwrapper, sqlrutil and sqlrsh (all work natively on windows now)
  • added autocommit on/off to sqlrsh

In addition, the following things have been fixed or updated:

  • ttl="0" works as expected
  • dynamic scaling of cursors works as expected now
  • fixed a few mdbtools errors
  • column aliases work as expected now with firebird
  • fixed a bug where if an app either enabled or disabled autocommit, that could become the default status of autocommit rather than what was set in the config file
  • fixed a bind-var-related memory leak in mysql drop-in lib
  • fixed return values in mysql drop-in lib
  • updated getTableList() to exclude system tables
  • applied Benno Lange's localstatedir patch to fix a case where the localstatedir command line parameter wasn't working properly
  • applied Renat's listener alarm handling patch to avoid race conditions and other issues with the listenertimeout feature

Enjoy!

Stencil - 2.0.6 is out

An updated version of Stencil is now available. This is an extremely minor update with a few modifications to the configure script and a few modifications to support the latest version of Rudiments. This version requires Rudiments 0.36.

Rudiments - 0.36 is out

Rudiments 0.36 is available for general consumption.

This release features several compatibility-related updates, mostly under the hood.

  • Various things work on various old SCO systems as well as Ultrix now.
  • MSVC projects/solutions have been added and the classes that build cleanly have been included.
  • All .C files were renamed to .cpp for compatibility with MSVC.
  • Several changes were made to improve compatibility with MSVC.
  • Methods that gave access to internal structures (such as pthread_mutex_t's or statfs's) all take and return void pointers now.

SQL Relay 0.45 requires Rudiments 0.36, so if you're updating SQL Relay, make sure to update Rudiments as well.

Tuesday, January 17, 2012

Rudiments 0.35 is out

An updated version of Rudiments is now available.  This release features some minor bug fixes and a few new methods.  Nothing all that significant.  However, the new features are required by SQL Relay 0.44 so if you're upgrading SQL Relay, upgrade Rudiments as well.

SQL Relay 0.44 is out

This release introduces a host of new features.

  • The MySQL Drop-In Replacement Library has been greatly improved and updated to support MySQL 5.2 and the MySQL statement API.
  • The SQL Relay client API's support new methods to get databases, tables and columns, returning lists similar to those returned by "show databases", "show tables" and "describe table" queries.
  • Bind Variable Translation is now supported.  If your queries have ?'s in them but you want to aim them at a database that uses colon-delimited queries, or vice-versa, SQL Relay can remap the variables automatically.
  • SQL Relay can now fake transaction blocks.  If you are migrating from a DB that is in autocommit mode by default and requires "begin" or "start" queries to begin a transaction to a database that is always in a transaction, SQL Relay can fake the behavior of the first database and make the new database appear to support transaction blocks.
  • The sqlrsh command line client now supports bind variables.
  • selectDatabase()/getCurrentDatabase() methods have been added to all API's, providing a database agnostic method for switching schemas/db's.
  • The fakebinds connect string option has been replaced by a parameter at the instance level and all databases support faking of input binds now.
  • getLastInsertId() has been added to all API's.  If the database supports it natively then the native function is used.  If the database doesn't support it then a stored procedure can be specified to fake it.
  • A set of queries can be run at the beginning and end of each client session now.
This is all in addition to the standard number of bug fixes and optimizations.

Monday, September 19, 2011

Web Site Facelifts

The firstworks.com website and project sites for SQL Relay, Rudiments and Stencil have all been updated. There's still plenty of work to do on each, but it's a start.