Thursday, November 1, 2012

SQL Relay - 0.47 is out

SQL Relay 0.47 is now available.

This release mainly features the ability to use Oracle's Statement Cache feature. Code for this was contributed by Neowiz.

To enable the statement cache, simply add:

stmtcachesize=20

(Or some size other than 20)

...to the connect string for your instance of SQL Relay that talks to Oracle in your sqlrelay.conf file. Note also that there are a few quirks when using the statement cache which appear to be either bugs in OCI or issues with the way SQL Relay uses OCI. They may be resolved in a future release of OCI or SQL Relay. See Configuring SQL Relay for more information.

Note also that I haven't finished integrating all of the contributed code yet, so if something doesn't work as expected, that could be why.

Also in this release, I updated the SQL Relay command line clients to have a consistent command-line parameter interface and renamed a few of them.

All command line programs now have the following parameters:

  • -host
  • -port
  • -socket
  • -user
  • -password

So, for example, to connect to localhost, port 9000 using user test with password test, you now use:

sqlrsh -host localhost -port 9000 -user test -password test

Whereas in the past, you would have used:

sqlrsh localhost 9000 "" test test

In addition, sqlrsh now has -script and -command arguments to run scripts or commands non-interactively.

I also renamed the query and fields commands sqlr-query and sqlr-fields.

In addition to those updates and changes, the following new features and bug fixes have also been implemented:

  • fixed bug that caused sqlr-export to output negative xml-entity values
  • fixed single-quote-escaping in sqlr-export
  • forced handoff="reconnect" for Cygwin and Linux<2.2
  • added a "fields" command to sqlrsh
  • improved readline detection in the configure script
  • added getDatabase/Table/ColumnList support to odbc and mdbtools connections
  • added detection and support for openjdk
  • integrated patches from Neowiz for:
    • using -g3 if available when --enable-debug is specified
    • fixing an oracle column-resource-related memory leak
    • eliminating sqlr-start delay
    • "using namespace rudiments" declaration fixes
  • added a faq entry about common OCIEnvCreate errors
  • removed default id warning from sqlr-cachemanager
  • removed coloration from sqlrsh
  • updated begin, commit and rollback to return errors if they fail
  • updated firebird docs
  • added parsing of standalone constraints in a create table query

Rudiments - 0.38 is out

Rudiments 0.38 is now available!

This release features the following new features and bug fixes:

  • included some contributed updates to chat, charstring and modemclient
  • added several more wrappers to system class
  • refactored configure/make for non-gnu make compatibility
  • upated passFileDescriptor to dynamically allocate the control buffer for OS X 10.7 whos CMSG_LEN ultimately calls a function
  • updated msvc build to create Release code rather than Debug by default
  • added posix analogs (rewind, skip and read) to directory class
  • updated filedescriptor debug so debugging of the buffering can be enabled/disabled
  • integrated patches from Neowiz for:
    • using -g3 if available when --enable-debug is specified
    • testing the result of getaddrinfo for any non-zero result when checking for EINTR, not just EAI_SYSTEM, and also to reset errno between tries
    • clientsocket to use WSAConnect and friends on windows
    • disabling code that uses AF_UNIX sockets outright for windows
    • inetserversocket::listen() to reuse addresses
  • added process::exitImmediately
  • updated error::getErrorString() to be thread safe when it uses strerror_r or strerror_s internally
  • fixed charstring::isInteger/isNumber to return false when the string passed in is either - or . without any actual number
  • changed longs in snooze class to uint32_t's