1.0.0 - updated md5 pwdenc to use rudiments md5 class
	solved a long-standing hang that could occur if the database password
		expired while sqlrelay was running, and the sqlr-scaler
		attempted to start new connections
	added convertcase, convertcasedoublequotes, and removedoublequotes
		parameters to normalize translation module
	added ColumnCaseName parameter to ODBC driver
	fixed a subtle bug in the ODBC driver that caused the first row to be
		skipped if columns were not bound
	added -backtrace option for debugging
	fixed mysql connection module so it can use the statement API on
		Windows
	fixed semaphore reference-before-init bug in sqlrservercontroller
	added support for db, debug, columnnamecase, dontgetcolumninfo,
		nullsasnulls, and lazyconnect connect-string options to all
		drivers (though in some they are camel-case and others
		lower-case)
	in DB-abstraction-layer drivers, the debug, dontgetcolumninfo,
		nullsasnulls, lazyconnect, krb, and tls connect-string options
		now support any yes/no equivalent such as yes, Yes, y, Y, true,
		True, 1, (and similar for no)
	fixed a regression that could cause crashes in the C#/ADO driver
		when binding null or date values
	added all parameters to ODBC config screen
	removed calls to mysql_stmt_store_result/mysql_stmt_num_rows from
		mysql connection to improve performance.  mysql connection
		doesn't know the total number of rows prior to full fetch
		now (which is consistent with most other databases).
	updated postgresql connection to use an unnamed cursor instead of
		naming it and having to deallocate it over an over
	tweaked skipWhitespaceAndComments and related methods to use
		charstring::isNullOrEmpty and character::isWhitespace
	replaced regular expression comparisons in sap/freetds connections
		with simpler charstring comparisons
	updated db2 connection to reuse the statement instead of recreating
		it with each prepare
	made column-lookup by name case sensitive to improve performance
	fixed nagle-disable and sizing of socket read/write buffers
	changed default maxcursors to 5
	fixed an uninitialized variable in the firebird connection
	python api's are installed in dist-packages subdirectory on systems
		that have that instead of site-packages
	added route-entire-session option to router modules

0.67.0 - general documenation clean-up
	added missing all: target to man/Makefile
	mysql_info in drop-in library for mysql returns NULL instead of "" now
	mysql_errno in the drop-in library now returns the error number from the
		DB, instead of CR_UNKNOWN_ERROR, if no error map is provided,
		and the backend database is known to be mysql
	mysql_refresh in the drop-in library works with options other than
		REFRESH_GRANT now
	mysql_shutdown/kill in the drop-in library return 1 on failure now
		rather than 2000
	date/time and timestamp types are recognized as binary types now
	year/timestamp types are recognized as unsigned types now
	TINY/MEDIUM/LONG_TEXT types are recognized as blobs now
	mapping date/time to MYSQL_TYPE_DATE/TIME, rather than
		MYSQL_TYPE_DATETIME is the default in the drop-in library now
		and SQLR_MAP_DATETIME_TO_DATE has been removed
	mysql drop-in library sets column flags correctly now
	mysql drop-in library runs appropriate kill/shutdown queries now
	mysql connection uses non-stmt api for "show *" queries now
	mysql drop-in library runs "show processlist" for mysql_list_processes
	mysql drop-in library supports date/time/datetime input binds now
		instead of just treating them all as datetimes
	connection modules differentiate between date/time/datetime binds now
		instead of just treating them all as datetimes
	added result set row translation module framework
	updated firebird connection module to  the fieldstruct.textbuffer
		instead of fieldbuffer for non-text to text translations
	added support for negative times in mysql connection module and
		drop-in library
	added translation-failure event
	general refactoring of server module API
	consolidated sqlr-scaler code
	fixed a 1-byte empty-blob memory leak in the client
	/etc/alternatives/java_sdk is preferred, if found, now

0.66.0 - fixed mysql set isolation level query
	updated mysql connection to run commit/rollback at the end of every
		session even if only selects were run, to make sure metadata
		locks are released
	renamed sqlrclientexitstatus_t to clientsessionexitstatus_t
	updated all db connection modules to reinit the column count during
		prepare rather than execute
	fixed bug where server-side errors set by conn/cursor->setError()
		could inadverntantly be overriden during the next call to
		conn/cursor->errorMessage()
	added several more queries to mysql stmt-api blacklist
	configure option --disable-odbc-driver actually works now
	filters can specify an error string and error number now
	added support for systemd
	fixed a memory leak by applying and updating a patch from Kasyanov
		Dmitry to deallocate the error message in C++ API destructor
	legacy_stdio_definitions.lib is now included when building ODBC with
		VS2015
	added support for PHP7
	added -wait option to sqlr-start for non-Windows
	disabled -disable-new-window option to sqlr-start for non-Windows
	non-ascii character encodings work with the C# API now
	rudiments prompt class is used instead of using readline directly now
	renamed "logger-events" to just "events"
	added notification framework and "events" module
	added connection schedule framework and "cron" module
	applied sec/usec patch from samchuck at neowiz to custom_nw logger to
		fix subtle time calculation error
	applied a patch from samchuck at neowiz to the sqlrclient protocol
		module to deallocate storage for bind variables after logging
		the query to resolve a reference-after-free bug
	added router module framework with "regex", "userlist" and
		"clientiplist" modules
	when router detects a possible integrity violation now, it raises an
		event which can be logged or trigger a notification and
		disables the instance
	router calls begin, commit, and rollback on all connections now, even
		if they're executed as queries rather than using the api methods
	removed tls_userlist/krb_userlist auth modules and updated the
		userlist auth module to support tls and kerberos auth
	converted most of the doc source to wikitext
	fixed ODBC driver bug that could corrupt memory and trick the driver
		manager into thinking that some basic functions are unavailable
	ODBC SQLTables works more correctly now
	fixed an ODBC bug that caused the first row to be fetched twice when
		using SQLBindCol
	added /DPERL_IMPLICIT_SYS macro for windows builds of Perl API

0.65.0 - removed erroneous SQLR_SQLExecute export in ODBC driver
	fixed call type of internal ODBC driver functions and made them static
	fixed --disable-API flags in configure.vbs
	fixed bad user/password copy logic in ODBC SQLConnect function
	added missing default implementation of
		sqlrservercursor::getColumnTypeName()
	added parser debug option
	normalize translation can convert foreign decimals now
	updated missing-tnsnames.ora warning
	updated sqlr-start and sqlr-scaler to run programs using fully
		qualified path names
	fixed query timer in sqlrsh
	add timer="query/command" parameter to slowqueries logger
	added odbcversion parameter to ODBC connection
	updated erlang api to use the C++ compiler to link (for netbsd 7.0)
	added major-version check to node.js api for node 4.x+
	ODBC driver's SQLGetData can deal with NULL targetvalue now
	fixed normalize || bug
	fixed normalize bug that removed spaces around * for "all columns"
		improperly
	removed freetds warning, modern sybase has different library file names
	updates to support python3
	added several --disable options to the configure script for unix/linux
	removed sqlr-fields/sqlr-query and updated sqlrsh to provide the same
		functionality
	removed antiquated sqlrelay.dtd
	moved default example directory to share/sqlrelay/examples
	sqlrelay.conf example is installed under example directory now
	Python DB -> Python DB-API in the docs
	moved private members and support classes into C++ API's .cpp files
	removed -revision during link and adopted Semantic Versioning 2.0
	added missing get*List methods to Java API
	removed errant information_schema views from getTableList with mysql
	refactored listenertimeout to use timed semaphore ops and only fall
		back to an alarm if the system doesn't support timed sem ops
		and the instance isn't configured to use threads
	fixed inode-check in logger modules - works correctly with logrotate
	change "an error occurred" to "server closed connection" to reduce
		false-positives from log analyzers - "real" errors will still
		be reported elsewhere
	refactored the config file parser
	added support for kerberos authentication and encryption
	added krb_userlist auth module
	renamed "authentication" to "auth" (for authentication/authorization,
		also matches module name prefix) in config file and docs
	removed an errant flushWriteBuffer after client auth
	moved debugprint stuff into rudiments
	added support for tls authentication and encryption
	added tls_userlist auth module
	fixed long-standing copyrefs bug
	when calling after-triggers, "success" flag is set correctly now
	fixed bug where after-triggers could mask failed queries
	added support for "before and after" triggers
	moved call to set stdinput to use blocking mode from
		rudiments::stdiofiledescriptor to sqlrsh, as doing it in every
		case caused problems with apps like Apache, which need
		stdin/out/err to be in non-blocking mode sometimes (fixes bug
		where PHP's that used the SQL Relay API would cause apache
		workers to hang closing connections after a graceful restart)
	made auth_database module always re-login
	added auth_proxied module to support Oracle's (and potentially other
		databases') n-tier/proxied authentication
	fixed a long-standing bug where passwords weren't checked when
		switching between oracle n-tier authenticated users

0.64 - fixed bug in sqlrsh that caused it to filter out non-ascii characters
	added informix connection module
	added shutdown loop detection in sqlr-listener
	fixed dbhostname/dbipaddress requests
	added bind variable format validation to php pdo driver
	added softttl parameter
	added db/language detection to configure.vbs
	added passwordfunction parameter to "sqlrelay" authentication module
	added -disable-crash-handler command line option to server processes
	postgresql connection module PQclear()'s the result of PQprepare() now,
		fixing a memory leak
	updated postgresql connection module to handle invalid bind variables
		properly, and without crash
	added various missing postgresql functions to the postgresql drop-in
		library, most notably PQprepare, PQexecPrepared, PQexecParams
	simplified sqlrpaths/sqlrcmdline classes a bit
	renamed sqlrconfigfile to sqlrconfig
	implemented a modular configuration framework
	config files can be loaded over protocols supported by libcurl now
		or http if rudiments compiled withougt libcurl support
	config files can now be "link files" which just refer to other local
		config files, local config directories, or remote config files
	updated sqlr-start and sqlr-scaler not to pass the default -config
		value if sqlr-start wasn't explicitly started with -config
	fixed a bug that could cause sqlrsh to act funny if the last character
		prior to the command delimiter was a single or double quote
	fixed a stacked result-set translation module bug
	applied George Carrette's patch to fix potential PDO null-dereferences

0.63.1 - backported shutdown loop detection

0.63 - suppressed ruby configure warning
	fixed glib detection if pkg-config isn't present
	fixed mono detection on freebsd
	fixed node.js yes/no misreport bug in configure script
	added freetds tcl test
	fixed slashes in tcl tests for windows
	updated docs to mention firebird buffer size parameters
	updated MAX_ITEM_BUFFER_SIZE to 32768 for firebird
	fixed ruby detection on fedora 22
	fixed missing export for setAuth/ResponseTimeout in ruby api
	added manual include of inttypes.h in php api to work around issue with
		define/undef games, revealed on openbsd 5.7
	tweaked ruby cflags script for debian 8
	refactored mysql detection
	tweaked unixodbc detection to also look in /usr/include/odbc
	renamed "oracle8" connection plugin to "oracle"
	renamed "sybase" connection plugin to "sap"
	updated identity tests in api's/cmdline clients to use
		charstring::contains() rather than !charstring::compare()
	implemented missing destructors for ADO.NET Data Provider

0.62 - added query filter plugin framework
	added regex, string and pattern filters
	added normalization translation
	added reformatdatetime result set translation
	fixed error in sqlrconfigfile class that could cause sqlr-start to
		crash if one instance defines addresses but the next doesn't
	added query status flag to sqlrservercursor
	tweaked odbc driver's SQLGetTypeInfo()
	field name is passed into runResultSetTranslations() now
	added support for maxitembuffersize, maxselectlistsize,
		and maxbindcount for firebird
	added native api for node.js
	added recognition of bigint, ubigint and uniqueidentifier fields in
		freetds/sybase
	added nullsasnulls command to sqlrsh
	added workaround for freetds empty (but non-null) text fields not
		getting properly converted to null-terminated empty strings
	fetchatonce, maxitembuffersize and maxselectlistsize are set to
		defaulting values if invalid values are given for them
	added lazyconnect option to PHP PDO and Perl DBI drivers (defaults to 1)
	direct Transact SQL which returns a result set is now supported with 
		Sybase/SAP/MSSQLServer/FreeTDS
	added docs for authentication, query translation, query filter and
		result set translation modules
	added -fPIC to sqlrserver-config --cflags, if supported
	the "default" auth module is now called "userlist"
	added database auth module that is analagous to authtier="database"
	replaced passwordencryption attribute with passwordencryptionid
	added --disable-postgresql8-api configure option
	tweaked -Werror detection in configure script
	refactored sqlr-bench build to work on windows
	documentation, examples and tests are now covered by a license
	reflecting modern interpretation of the GPL, The license for
		The SQLRelay Server (as designated in COPYING) license now
		carries an exception, explicitly allowing it to be linked with
		various non-GPL compatible libraries
	license is installed now

0.61 - skipped

0.60 - fixed true->false transposition in sqlrservercontroller::interceptQuery
		that could lead to a reLogIn loop
	disabled -Werror for gcc < 2.7
	applied George Carrette's patch to fix PDO connectstring options
	migrated directory/file paths info into sqlrpaths class
	removed undocumented and not-so-relevent-these-days
		MAX_CONNECTIONS/overridemaxconnections failsafe in sqlr-start
	fixed java header detection for javac located in /usr/bin
	updated java api to support non-null-tolerant implementations of
		environment::NewStringUTF()
	the perl api builds correctly on OSR5 again
	the postgresql sslmode is omitted entirely from the connect string now,
		if it's disabled, to prevent problems with older versions of
		postgresql that don't support the parameter at all
	mono 2.8 or greater is required now
	added a datedelimiters attribute to the instance tag in sqlrelay.conf
		to limit what date delimiters are used when translating dates
	re-added mssqlserver detection, which had been accidentally removed
	fixed statically-linked build
	fixed mysql lob field bug that could cause a crash
	added --disable-postgresql8-api configure option to disable
		PQprepare/PQexecPrepared and native bind support

0.59 - updated docs, removed some Cygwin-specific info
	added support for login warnings
	made bind variable buffers dynamic on the client side
	added maxbindvars parameter on the server side
	binding a NULL to an integer works with db2 now
	moved getting started with DB docs into the cloud
	added a semaphore to ensure that the listener doesn't hand off the
		client to the connection until the connection is ready,
		elimiating a race condition on the handoff socket that could
		occur if the connection timed out waiting for the listener
		just after the listener had decided to use that connection
	oracle temp tables that need to be truncated at the end of the session
		are truncated with "truncate table xxx" now rather than
		"delete from xxx"
	oracle temp tables that need to be dropped at the end of the session
		are truncated first, rather than the connection re-logging in
	an ora-14452 error (basically indicating that a temp table can only be
		dropped after being truncated, or if the current session ends)
		does not automatically trigger a re-login any more
	updated cachemanager to use directory::read() directly instead of
		directory::getChildName(index)
	added cache and opencache commands to sqlrsh
	made cache ttl a 64-bit number
	added enabled="yes"/"no" parameter to logger modules
	updated odbc connection code to use new/delete and rudiments methods
		rather than malloc/free and native calls
	retired Ruby DBI driver
	fixed command line client crash when using -id "instance" with an
		instance that uses authtier="database"
	fixed bugs that could make reexecuted db2 selects fail and cause a
		database re-login loop
	tweaked spec file to remove empty directories on uninstall
	fixed typo that could sometimes cause a listener crash
	postgresql and mdbtools return error code of 1 rather than 0 for all
		errors now
	tweaked odbc driver to work with Oracle Heterogenous Agent (dblinks)
	fixed bugs related to autocommit with db's that support transaction
		blocks
	implemented the ODBC driver-manager dialog for windows
	updated windows installer to install ODBC registry settings
	ODBC driver copies references now
	fixed various bugs in sqlrconfigfile that caused sqlr-start with no
		-id to crash or behave strangely sometimes
	refactored build process to use nmake and be compatible with many
		different versions of MS Visual Studio
	updated the slow query logger to show the date/time that the query
		was executed
	consolidated c, c++ and server source/includes down a few levels
	implemented column-remapping for get db/table/column commands to
		enable different formats for mysql, odbc, etc.
	odbc connection correctly returns database/table lists now
	added support for maxselectlistsize/maxitembuffersize to MySQL
		connection
	updated mysql connection to fetch blob columns in chunks and not be
		bound by maxitembuffersize
	fixed a misspelling in sqlrelay.dtd
	swapped order of init directory detection, looking for /etc/init.d
		ahead of /etc/rc.d/init.d to resolve conflict with dkms on
		SuSE Enterprise
	C# api and tests compile and work under Mono on unix/linux now
	sqlr-start spawns a new window on Windows now
	added global temp table tracking for firebird
	added droptemptables parameter for firebird
	added globaltemptables parameter for oracle and firebird
	updated mysql connection to allow mysql_init to allocate a mysql
		struct on platforms that support mysql_init, rather than
		using a static struct
	fixed subtle noon/midnight-related bugs in date/time translation
	updated mysql connection to get affected rows when not using the
		statement api
	updated mysql connection not to use the statement API on windows,
		for now
	disabled mysql_change_user, for now
	fixed blob-input binds on firebird

0.58 - updated spawn() calls to detach on windows
	added support for sqlrelay.conf.d
	removed support for undocumented ~/.sqlrelay.conf
	fixed detection of oracle jdk 7 and 8 on debian and ubuntu systems
	added ini files for PHP and PDO modules
	added resultsetbuffersize, dontgetcolumninfo and nullsasnulls connect
		string variables to the PHP PDO driver
	refactored sqlr-status and removed dependency on libsqlrserver
	cleaned up and refactored server-side classes quite a bit
	fixed a bug where sqlrsh was losing the timezone when binding dates
	server-devel headers are now installed
	removed backupschema script
	moved triggers, translations, resultsettranslations and parser into
		separate project
	blobs work when using fake input binds now
	replaced sqlr-stop script with a binary (for Windows)
	preliminary support for server components on Windows
	sessionhandler="thread" is now forced on Windows
	added various compile flags for clang's aggressive -Wall
	added support for sybase 16.0
	removed unnecessary -lsybdb/-lsybdb64 for sybase 15+
	fixed PQreset, PQresetStart, PQresetPoll in postgresql drop-in
		replacement lib
	added debug-to-file support to PHP PDO driver
	fixed subtle row-fetch bug in sybase/freetds drivers that could cause
		the total row count to be set to garbage
	fixed support for older versions of perl (5.00x)
	fixed a bug in the DB2 connoutpection that caused blob input binds to be
		truncated at the first null
	added support for binding streams to output bind blobs in the PHP PDO
		driver
	updated PHP PDO guide with notes about bind variable formats
	integrated Samat Yusupov's dbh driver methods for PHP PDO 
	added stmt driver methods for suspending/resuming result sets to the
		PHP PDO driver
	added row cache to mysql drop-in replacement library to fix issues on
		systems with 32-bit pointers
	fixed subtle db2 output bind bug where a value stored in the database
		using fewer than 64-bits might be copied out incorrectly
	fixed a bug that could cause key columns to be duplicated when
		describing an oracle table and looking up key data is enabled
	added sslmode parameter for postgreql connections
	perl DBI fetchall_arrayref work with maxrows parameters now
	added begin to perl API and implemented begin_work in perl DBI driver
	implemented perl DBI get_info
	implemented perl DBI RowCacheSize and RowsInCache
	Perl DBI driver buffers the entire result set by default now
	implemented an ext_SQLR_Debug database handle attribute for perl DBI
	added support for type, length, precision, scale bind variable
		attributes in perl DBI
	output bind clobs and blobs work in perl DBI now
	added support for perl DBI ParamValues, ParamTypes and ParamArrays
		attributes
	tweaked the odbc driver so it works with the jdbc-odbc bridge and
		jmeter
	added custom db/statement attributes to perl DBI for
		DontGetColumnInfo, GetNullsAsEmptyStrings and
		ResultSetBufferSize
	added note about JDBC-ODBC bridge removal in Oracle Java 8
	made threaded listener the default
	tweaks to sqlr-connection/sqlr-scaler processes to deal with lack of
		SIGCHLD/waitpid() on windows
	the signal on semaphore 2 is now undone manually when sqlr-connections
		shut down and doesn't rely on semaphore undo's for normal
		operation
	subtly tweaked freeing of Oracle column-info buffers to work around
		a crash that could occur after using a cursor bind
	fixed sessionhandler="process"/zombie bug by adding SIGCHLD handler
		back to sqlr-listener

0.57 - fixed an overloaded virtual function error in sqlr-status
	fixed parsing of "term as type" clauses in queries
	fixed 0 vs. None error in python getRowDictionary method
	tweaked php and php_pdo modules to build with php 5.6.0 on windows
	updated deployment projects for windows, adding perl, php, python
		and java, and adding x64 support
	describe/getColumnList supports synonyms with oracle now
	the mysql, firebird and oracle connections return sensible errors when
		the format of a numeric bind variable is wrong now
	fixed a bug that could cause the mysql connection to loop up if
		alphanumeric bind variable names were used instead of numbers
	fixed a bug that could cause the database specified in the mysql
		connection string to be ignored
	fixed a bind-variable translation bug that could cause variables not
		to be translated when multiple formats are used in the same
		query and one of them is the correct format
	describing oracle tables returns key (PRI,UNI,MUL) info now
	added disablekeylookup option to disable getting key information when
		describing oracle tables
	fixed broken --with-system-libtool configure option
	mysql-config --libs_r is used in preference to --libs now,
		solves build error with maria db on ubuntu 14.04.1
	fixed mysql drop-in lib errors with mysql_row_seek and mysql_row_tell

0.56 - removed VERSION from perl api bootstrap
	reorganized and simplified perl api code
	got perl api working on windows with ActivePerl
	perl api uninstall cleans up better now
	got python api working on windows with ActivePython
	consolidated php include tweaks
	got java api working on windows
	updated pdo driver to convert float fields to strings rather than ints
	updated pthread test to match rudiments pthread test
	moved everything done by children of sqlwriter interface into
		individual translations
	added plugin-based authentication framework
	reorganized code tree a bit
	reworked default values to enable more minimal configurations
	updated configuration docs and added configuration guide
	fixed cast issue with firebird 1.5
	added result set translation framework and re-implemented date
		translation using it
	fixed millisecond->nanosecond confusion in sqlr-scaler
	fixed subtle oracle instantclient version detection bug
	added null input bind support to sqlrsh
	fixed php pdo driver to return null rather than 0 for null integer
		fields and bind null rather than 0 for null integer input
		binds
	added attribute to return nulls as nulls or empty strings to php pdo
	added parameters for connecting to mysql via ssl
	added a few tweaks to support DB2 < 8.0
	fixed bad return value type in python getConnectionPort method
	fixed sessionhandler="thread" with listenertimeout!="0"

0.55 - fixed a sql translation bug related to exists clauses
	added deployment projects for windows
	tweaked make.batch install target to install 32-bit files under
		C:\Program Files (x86)
	added a timeout parameter to db2 and odbc connect strings
	fixed a bug that could cause a connection's ttl to fail because a
		semaphore was left signalled when another connection's ttl
		expired
	updated handoff="proxy" code to work with sessionhandler="thread"
	replaced waitpid call in sqlrscaler with rudiments equivalent
	got the server-side stuff to compile on windows
	added configurable fetch buffer sizes to sybase, freetds and db2
	connections re-distribute themselves periodically if the database is
		behind a load balancer now
	fixed a bug that caused sqlrsh to incorrectly interpret internal
		commands with leading whitespace when run from a script or on
		the command line
	fixed a bug that caused cursors not to be completely cleaned up after
		when dynamic scaling is used
	fixed a bug that caused the response timeout to be handled improperly
	added response timeout command to sqlrsh
	added support for clobs/blobs with firebird
	fixed a blob-related bug with sqlite
	added support for blob input binds with db2
	added support for clob/blob output binds with db2
	improved clob/blob fetching with db2
	inputBindClob/Blob methods work with all db's now
	added -Wno-unknown-pragmas flag (if it it supported) to java build for
		solaris 8
	updated default item buffer sizes to 32768 for sybase, freetds, db2
		and odbc
	applied Gerhard Lausser's patch to improve Oracle instantclient
		detection

0.54 - fixed bugs that caused problems when unopened result sets were closed
	added protocol identification phase to client/server protocol
	split client protocol handling out into its own class and abstracted it
	updated oracle code not to relogin when dropping tables unless a
		temp table with an "on commit preserve rows" was run
	updated server to run table-drop and session-end queries after the
		session-end commit/rollback, as some queries on some platforms (
		ncluding drop-table on oracle) cause an implicit commit and
		the rollback needs to be run first
	replaced gettimeofday calls with calls to datetime::getSystemDateAndTime
	fixed a bug in slow query logger that caused it to display the wrong
		query time
	a few mingw32 tweaks
	fixed a few PDO driver bugs related to affected row counts and
		last insert id
	implemented PDO exceptions
	implemented support for PDO::ATTR_EMULATE_PREPARES by using
		substitution variables
	added foundrows and ignorespace options to mysql connect string
	fixed a bug where affectedRows() would return -1 for MySQL selects
		instead of the same value as rowCount()
	updated sqlr-connection code not to get db host name and ip address
		at startup unless logging is enabled to work around issues
		where people fail to put the db host name in dns
	fixed a subtle bind format translation bug that caused errors when
		translating from oracle-style binds to mysql-style if the
		varaibles were out of order with the placeholders in the query
	fixed bugs in the mysql and postgresql connection code that assumed
		that the bind variables were bound in order, independent of
		their names
	resolved a paradox involved in detecting whether the current mysql
		query needs to have its bind variables faked or not
	added support for client-side debug-to-file
	added debug-to-file support to command line clients
	tweaked server processes to use process::spawn instead of system() and
		process::fork()/process::exec()
	added another error string to detect down mysql database
	added support for a multi-threaded listener
	fixed a bug that could cause a crash when logging connection-level
		errors
	added back x64-detection so sybase and db2 libraries will be detected
		properly
	added support for forward-only cursors to the PDO driver
	fixed a bug that could cause one (and only one) dynamically spawned
		connection daemon to ignore its ttl
	added support for get/set result set buffer size to the PDO driver
	updated configure test for xsubpp
	updated configure test for tcl to support multi-arch
	updated configure test for python to support multi-arch
	added custom PDO driver attributes to access db type, version, host
		name, ip address and bind format
	added custom PDO driver attribute to get/set current database
	added custom PDO driver attribute to set whether or not to get column
		info when fetching the result set
	updated db2 to re-login when it sees error -30081

0.53.1 - updated the configuration and tuning docs a bit
	fixed a Makefile bug that caused "make clean" to be interrupted
	extern "C"-wrapped sys/times.h for OSR500

0.53 - added support for sqlite statement api and native binds
	fixed some leaks related to using sys::getHostName()
	added multiarch detection
	added PHP PDO driver
	fixed a bind variable translation bug where output binds followed by
		:= would not be detected
	dropped zope support (for now)
	dropped PHP Pear DB support
	refactored init script - one script should work on all platforms now
	updated init script installation - should work on virtually all unixes
	added OS X launchd configuration
	updated the sqlr-listener to clean up files related to ipc, sockets
		and marking whether the db is up or down on exit
	sqlr-start no longer starts the cache manager
	added a second init script for the cache manager
	plugins are statically linked into libsqlrserver if the platform
		doesn't support shared libraries (or if --disable-shared is
		specified at configure time)
	the perl API should build with old versions of perl (5.00X) on older
		platforms (redhat 4.2, 5.2, 6.2, etc.) now
	updated postgresql bind docs
	added dateyyyyddmm parameter
	added yyyyddmm parameter to translatedates translation
	added SQLR_MYSQL_DATE_YYYYDDMM envrionment variable to mysql drop-in
		library
	added SQLR_ODBC_DATE_YYYYDDMM envrionment variable to odbc driver

0.52 - sqlrsh has long reported the wrong version, fixed that
	added csv support to sqlr-export and a -format xml|csv option
	replaced snprintf calls with charstring::printf calls
	added a test for sys/vnode.h to work around an issue with perl on
		SCO OSR6
	added workarounds for old versions of sqlite without sqlite3_malloc
		and sqlite3_free with char * argument
	fixed error with sqlserver where "describe <table>" would return
		columns in alphabetical order rather than the order they
		are in the table
	the code freetds uses to get column names from MS SQL Server works
		for temp tables now
	added informix->mssqlserver translation for select into queries
	added translation to convert ||'s to concat() calls or +'s
	added a long-missing "delete clientsock" to sqlrlistener that could
		cause a crash after enough time
	various documentation tweaks
	added handling for "select into" queries to
		temptableslocalize/sybaseize translations
	fixed various crashes that could occur when a query filter was used
	updated the query routing and filtering doc
	sqlrsh supports multiple commands on a single line or on the
		command-line now
	exit/quit in a sqlrsh script aborts the script now
	improved date/time parsing for translations and result-set conversions
	fixed lots of cases where const char *'s were being deleted
	added 64-bit build support for windows
	combined sqlrclient files for faster compiling
	converted \t to actual tab in regular expressions for
		posix-compatibility

0.51 - fixed minor perl DBI driver documentation issue
	added support for oracle 12c
	added support for db2 10.1 and 10.5
	updated docs for oracle 12c, db2 10.1 and 10.5 and sybase 15.7
	modernized database installation docs a little
	fixed db2/sybase detection to take the system architecture into
		account when searching for libs
	applied various build-related patches from Ville Silventoinen
	fixed rpm->rpmbuild in installation docs
	added ora-00020 to list of errors that will cause the oracle
		connection to attempt to re-login, per Ville Silventoinen
	fixed some MS SQL Server/dateddmm parameter issues and updated docs
		to explain the remaining issues

0.50 - fixed sqlrserver-config script to return data for libsqlrserver
		rather than libsqlrconnection
	added test for SQLROWSETSIZE for odbc that doesn't define it
	updated postgresql drop-in library enough to work with psycopg2-2.4
		with various caveats and tweaks
	fixed NULL dereference in custom_nw logger
	added support for dbversion, show tables/databases and describe for
		SQL Server via freetds
	fixed a subtle bug that could cause the wrong triggers to be run
	fixed a reference-after-free in
		sqltranslations::removeReplacementTable
	fixed an uninitialized variable (sqltr) in sqlrcontroller class
	updated the freetds connection to support multiple cursors correctly
	added config parameters for reformatting dates in the result set
	added various query translations for mssqlserver
	added an mssqlserver error map for the mysql drop-in library
	fixed a memory leak in the freetds version-checking code
	added new search paths and default prefix for syllable
	added support for null-terminated result bind lists to the mysql
		drop-in library so apps can optionally bind fewer columns than
		come back in the result set
	added configure tests for php-config-<version>

0.49 - fixed various issues that came up when cross-compiling
	fixed make uninstall to remove a few things that it missed
	fixed -pthread annoyance
	added -Werror to default build for most components
	fixed various issues revealed by -Werror
	added password encryption framework
	added rot,md5 and crypt password encryption plugins
	moved modules to libexec and removed the libsqlrelay_ prefix
	moved modules out of the connection directory and into their own
		directories under src
	reorganized code tree to compile faster
	updated clean targets in Makefiles to run faster
	fixed a bug that could cause problems when fetching from an output
		bind cursor under a very specific set of circumstances
	reorganized server code into libsqlrserver
	implemented the swisscomm log format as a plugin
	added dbHostName and dbIpAddress methods to the client API
	refactored authentication to remove a client-server round-trip
	replaced handoff="reconnect" with handoff="proxy" which uses
		listener-proxying to remove a client-server round-trip
	disabled nagle's algorithm for all sockets
	fixed a bug that could cause a hang if the db login failed
	updated reading of skip and fetch parameters not to rely on buffering
	refactored login error reporting
	fleshed out the ODBC driver significantly
	added docs for using SQL Relay from ODBC and JDBC
	refactored windows make.bat script

0.48 - integrated patches from Neowiz for:
		handling for oracle errors ora-01033, ora-02067 and ora-04068
		bind validation when using the statement cache
		optionally rejecting oracle queries with duplicate
			bind variables
		sqlrconnecton::setClientInfo/getClientInfo
		query logging
		separate authentication and response timeouts on the client-side
		environment variables for setting timeouts
		sqlrelay-level errors for exceeding various bounds
		improved statistics gathering
	refactored Oracle re-prepare logic
	created a query logging framework
	implemented the current slow query log as a plugin
	implemented the neowiz query log format as a plugin
	created a custom query framework
	implemented the neowiz statistics gathering commands as custom queries
	added a test program for triggers, translations and other extensions
		and obscure features
	fixed several bugs in the informixtooracledates translation
	added a droplocalizedtemptables trigger
	added support for "global temporary" to temptableslocalize translation
	removed oracletemptablespreserverowsbydefault translation -
		temptableslocalize is much more effective
	fixed a bug that caused a "no server-side cursors" error to occur if
		when a new session is started if cursors="0" in sqlrelay.conf
	the client no longer aborts a result set before sending a new command,
		it just sends the new command, eliminating a client/server
		round-trip
	replaced sqlr-connection-"dbase" with a single sqlr-connection program
		that loads plugins for each database

0.47 - 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
	updated all command line programs to use the same command line
		argument structure
	added a "fields" command to sqlrsh
	added a -command argument to sqlrsh so commands and queries can be
		run from the command line directly
	renamed query and fields to sqlr-query and sqlr-fields
	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
		support for using the oracle statement cache
		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

0.46 - refactored the translation framework to mimic the trigger framework
	added make.batch file for building on windows
	added C# API and ADO.NET adapter
	added begin method to API's
	added sqlrelay.xsd
	added date binds
	applied Georgiy Kirichenko's missing flushWriteBuffer() patch
	fixed some subtle bugs in the Ruby DBI module that modern versions of
		Ruby DBI reveal
	fixed sql parser errors involving "not null" and union clauses
	added a translation to replace double-quoted string literals with
		single-quoted string literals
	fixed a sql parser bug where "group" of a group by clause could be
		misinterpreted as a table alias
	updated the scaler to poll 10 times per second and also accept a
		trigger from the listener to mitigate race conditions that
		can become problematic when connections="0" is used
	added C# and ADO.NET docs and updated windows documentation
	updated the documentation
	added support for waitfordowndatabase config parameter
	applied some odbc fixes from Chae Young-ku
	added explicit support for outer join operators to the sql parser
	dynamic-ized triggers and translations
	added a "matches" to "like" translation
	added a "serial" to "autoincrement" translation
	fixed debug option to query command line client
	added javac compile test to configure script
	fixed an __attribute__ problem that could occur if perl was compiled
		with gcc>2.95 but used on a system with only gcc-2.95 available
	fixed an oustanding tcl bug that caused cursors not to be created
	fixed several bugs related to escaping quotes
	refactored OS detection in configure script
	added \n after reading from stdin on Haiku
	updated docs to reflect that mysql supports ?-based bind vars

0.45 - added trigger framework
	added support for getting the native database error number
	added support for mapping native error numbers to MySQL error numbers
		for the mysql drop-in replacement library
	renamed all .C files to .cpp for windows
	added msvc projects for sqlrclient, sqlrclientwrapper, sqlrutil and
		sqlrsh and got them all working natively on windows
	updated code so ttl="0" works as expected
	updated code so dynamic scaling of cursors works as expected
	documented dynamic scaling of cursors somewhat
	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
	added autocommit on/off to sqlrsh
	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 

0.44 - updated postgresql drop-in lib for postgresql 8/9 compatibility
	updated mysql drop-in lib for mysql 5.2+ compatibility
	applied Renat's patch to fix the client session count in the stats
	added getDatabase/Table/ColumnList method/functions to API's
	added string inputBind method/function with length
	added bind variable translation
	added transaction block emulation
	added option to drop temporary tables at session-end for oracle
	added option to preserve rows on commit by default with oracle temp
		tables
	added SQLRDEBUG=on/off environment variable to enable/disable
		client-side debug
	added bind variable support to sqlrsh
	added selectDatabase/getCurrentDatabase methods and support in sqlrsh
	added an option in sqlrelay.conf to ignore selectDatabase() calls
	added errorMessage method at connection level
	applied Renat's patch to decrement the session count in the listener
		if the handoff fails
	implemented a generic query translation framework
	implemented generic input bind faking
	fixed a bug that caused an access-after-free condition when debugging
		the connection
	added getLastInsertId() methods and support in sqlrsh and perl DBI
	added a feature to run a set of queries at the start and end of each
		session
	added a feature to "localize" oracle global temporary tables by
		appending a unique id to their names and rewriting all
		subsequent queries to use the new table name

0.43 - updated ruby code build to take sitearch into account during includes
	updated ruby code to map STR2CSTR to StringValuePtr for ruby 1.9
	updated to use rudiments' updated signalclasses
	replaced calls to fork() and exit() with process class calls
	updated ruby detection in configure script
	added a test for Python.h to the configure script
	updated tcl detection
	updated db2 detection
	added sed command to remove -arch args from perl build (for osx)
	added charset support for all db's who's client libraries support them
	updated detection of various languages and db's on various platforms
	added getting started with odbc doc
	updated faq with info about result sets from stored procedures

0.42 - fixed a bug causing cursor id's not to get set for some db's
	updated configure script to look for client64 in addition to client
		for oracle intantclient on x86_64
	added setTimeout to all API's
	applied some patches from Alexey Leontev
	bumped BINDVARLENGTH up to 64
	applied Renat Sabitov's scaler -debug patch and 11g configure patch
	applied Stephan van Egmond's sqlrsh history patch
	added configure test for gmake, use it to find ruby.h
	applied mingang@taobao.com's scaler patch for -debug
	added getting started notes for Oracle 11.2 on Fedora Core 12
	added test for mdb_sql_run_query and code to use it if it's there
	fixed a bug that caused ping to fail after reconnecting to sybase
	added configure test for xsubpp
	fixed perl dbi inout bind problem
	fixed code that was adding a NULL terminator to oracle clob values
	applied several patches from Renat Sabitov
	applied dynamic cursor patch from Cal Heldenbrand
	applied Claudio Freire's normalized matching and xmlparsing patches
	fixed sqlite connection to use sqlite3_malloc/free
	update freetds connection to get tds version with ct_config if
		TDS_VERSION_NO doesn't exist
	applied a fix for a bug that could cause a crash when a cursor is
		reused
	fixed a shutdown race condition in connection daemons
	moved common startup/shutdown code for connection daemons up into
		static methods/variables of the sqlrconnection_svr class
	fixed a crash in the oracle connection daemon where OCIHandleFree
		was getting called on define handles that weren't created by
		OCIHandleAlloc
	removed rebuild target from Makefiles
	updated tests
	refactored main() method for connections
	added searches for ruby1.8, ruby19 and ruby1.9 in configure script
	fixed a bug that caused addresses="" to cause the sqlr-listener not to
		start
	added entries to FAQ about oracle instantclient and ubunu /bin/dash
	updated postgresql tests to use bpchar rather than char(20) for
		fetching results of stored procedure
	renamed interbase.create.sh to firebird.create.sh
	fixed a bug that could overrun the postgresql bind array
	fixed bug that caused connection daemon sockets to be double-freed on
		shutdown after a suspended session
	precision/scale in output bind buffers is initialized now
	debugstring buffers are no longer build when debug is turned off
	fixed id vs. index bug when requesting a cursor and binding a cursor
	refactored JNI code a bit, fixed getIntField/getLongField problem that
		caused problems on 64-bit machines
	applied patch to make python api return decimals and integers, not
		just strings, refactored some of it
	fixed dump tran docs in getting started with sybase to use sa
	updated sybase connection to use length of cursor name rather than
		CS_NULLTERM to work around an odd, inconsistent bug that would
		cause the connection to hang sometimes
	connections not spawned by scaler don't signal on the semaphore used
		by the scaler to wait for a connection to start now
	updated bind var docs
	updated faq
	fixed a bug where binding an oracle cursor didn't reset some values
		and would cause subsequent cursor binds to fail
	added note to docs about configuring sybase to dump transactions at
		each checkpoint
	applied Renat Sabitov's patch to kill scaler-started connections which
		fail to signal on sem(8) because they either crashed or got
		hung up trying to start
	fixed a bug in the mysql drop-in lib that could cause the client to
		run out of cursors
	added a mapping between sqlite3_free and sqlite_freemem
	added a fix for a race condition in the scaler
	fixed a postgresql bind memory leak
	applied Renat's ruby DESTDIR patch and updated helper scripts to
		remove $(DESTDIR) from all the variables that it outputs
	applied Renat's patch to handle semaphore failures in forked listeners
		during shutdown
	applied Renat's patch to move connection counting for scaler-spawned
		connections entirely into scaler itself
	applied Renat's patch to reap children more regularly and refactored
		it a little
	fixed distclean to remove perl .pm files
	changed maxsessioncount default to 0, updated docs, examples

0.41 - added configure test for ruby.h
	added a couple of new functions to the mysql drop-in library
	updated mysql drop-in lib docs explaining how to use with PHP
	added documentation for timequeries params
	if SQLConnectW isn't supported, ODBC driver uses non-unicode calls
	added maxsessioncount parameter and connections use it to override
		ttl and bleed off
	applied Renat Sabitov's output bind patch
	added mysql last_insert_id() note to FAQ
	made it so oracle_home doesn't need to be set if oracle_sid is
		specified in tnsnames.ora format

0.40 - fixed readline detection in configure script
	fixed an uninitialized variable in sqlr-import
	changed clientSession() to call endSessionCommand()
		instead of endSession() so endSessionInternal() would be called
		every time
	fixed debug option in sqlr-import and sqlr-export
	fixed postgresql typemangling=no option
	set dbversion to unknown if sp_version wasn't found in freetds/sybase
	output bind variables' null indicator is reset now
	updated postgresql typemangling
	included Jesse Wagner's oracle 11g acsite patch
	added +1 to inbindvars[i].valuesize for CLOB's to make sure the NULL
		terminator is included
	postgresql connection uses PQparameterStatus if PQserverVersion doesn't
		exist and runs "select version()" if PQparameterStatus doesn't
		exist; to get the db version
	added mysql-5.1 drop-in replacement lib
	fixed a bug that caused result set data not to be cleaned up before
		a cursor is reused as a bind cursor
	changed string bind length to uint32_t from uint16_t
	added clearBinds() call after executeQuery() in perl dbi driver
	began work on an ODBC driver
	added serverVersion and clientVersion methods
	incorporated Alfred Fazio's python api patches
	fixed a bug where cursors might not get aborted when a client
		disconnects
	made shared memory segment group-readable
	applied Renaud Amar's HAVE_MYSQL_OPT_RECONNECT patch
	added ODBC driver to spec file
	added DESTDIR= to .pc files
	made freetds use single-quote for escape character, other db's use
		backslash
	made sqlr-export/import use &##; for non-printable characters,
		&, < and >
	fixed scaler; supports -localstatedir option properly now
	fixed many it's -> its typos in the documentation
	changed debug so that only one binary is built and it's selected at
		runtime
	integrated erlang api
	added -localstatedir to sqlr-stop
	fixed mysql (with statement api) relogin problems
	removed non-functional config app
	added Oracle 11g on fc9 document
	added ASE 15.0.2 installation doc
	made it possible to only bind to port, not socket
	added test for tdsver.h

0.39 - removed oracle7 support
	added OCI_OBJECT to oracle environment init
	added some more error codes to oracle's dead connection test
	connections don't decrement connection count when they fail to log in
		now :)
	added -silent option to connections that scaler uses so they don't
		spew login errors if the db is down
	fixed a bug that disabled scaling if maxlisteners
		was -1 (the default, which means no maximum)
	freetds, db2 connection don't detach before logging in any more
	added reloginatstart config parameter
	fixed sendLob for oracle<8i
	applied Johnny Luong's postgresql drop-in lib patch
	applied Jason McClellen's perl dbi raise-error patch
	sybase/freetds use CS_SEVERITY instead of msgp->severity now
	added 64 bit sybase tests
	postgresql only uses PQexecPrepared if PQprepare also exists
	set LANG=POSIX before running ruby/make so sed's would work on non-us
		locales
	documented how to use mysql stored procedure output parameters
	applied james@thoughtpatterns.com's perl null bind patch
	applied Tim Bunce's perl dbi driver patch
	suppress error message of cat $ORACLE_HOME/lib/sysliblist in configure
		script
	added support for stored procedures which return result sets to sybase
		connection
	added support for stored procedures which return result sets to freetds
		connection but it doesn't actually return anything
	documented how to use sybase stored procedure result sets
	fixed a bug that caused zope to get an exception when result sets are
		empty
	configure looks for instantclient if it can't find anything in
		ORACLE_HOME, added --with-oracle-instantclient-prefix option
	added sybase ASE 15 install doc
	fixed a bug that caused the router connection to return a max of 10 rows
	applied Chris Coyle's mysql auto-reconnect patch
	modified countBindVariables to exclude :'s and @'s
		if it finds $'s or ?'s
	applied some of Tim Bunce's DBI patches
	added pid cleanup to init script similar to patch supplied by
		Ragnar Rova
	added validBind() method which will return whether a bind
		variable is in the query or not
	fixed Yeb Havinga's db-tier authentication bug
	added timequeries option
	added support for Oracle OS-authentication
	added some new FAQ's
	mysql connection calls commit() before running the first query after
		each new client connection
	fixed a crash in the router involving "fake begin's"
	documented msql transaction weirdness and db2 relogin issues
	added /opt/csw to configure script search path
	improved filtering out of -x arguments in perl/ruby make commands
	added -lruby, -lperl, -lpython, etc for OS X

0.38 - implemented mysql_stmt function support in mysql connection
	fixed mysql_autocommit detection
	fixed missing self before __getRow and __getRowRange in python db driver
	implemented query filtering and routing
	interbase/firebird dead-db/relogin works now
	added test for 0 length result set to PySQLRDB's fetchmany method
	added mysql_config sanity test to configure script
	NULL's are escaped in fake input BLOB binds now
	query router works pretty well now
	applied Sharpinskiy Dmitry's odbc unicode patch
	integrated Devananda's statistics gathering code
	added support for mysql stored procedures
	integrated Devananda's mysql result set updates
	sqlrelay.conf.example installed as $datadir/examples/sqlrelay.conf now
	integrated Andreas Behr's listener crash patch
	removed erroneous reference to sqlrcon_errormessage in php pear db
	another multibyte clob fix
	added "delimiter" command to sqlrsh to change
		delimiter from ; to whatever
	removed msql support
	added db2 9.1 installation doc
	added firebird 2.0 installation docs
	router connection overrides authtier=database
	fixed a bug where clients would hang if they requested a cursor when
		none were available
	added some additional mdb 5 checks to configure script
	added iconv const char parameter check to configure script
	the main listener doesn't listen for clients until all of the
		connections have started now
	added notes about tcp_tw_recycle/tcp_tw_reuse in tuning doc
	ping causes the connection to relogin if it returns false now
	added iconv include/library find to configure script
	fixed sqlrlistener so forked listeners don't remove the pid file
	switched oracle 8 column size variable type from sb4 to ub2
	if maxqueuelength>maxlisteners then scaling isn't used

0.37 - integrated Charles Frank's SID code
	fixed bug in configure script where it would erroneously report that
		the MDB tools connection wouldn't be built
	uses (u)int[16|32]_t instead of short/long, etc.
	changed row count, affected rows to use a 64 bit value
	got rid of all plain "int" references in C/C++ api
	single-quotes and backslashes are escaped when using fake input binds
		now
	fixed "integer expression expected" error when running
		configure --disable-python
	changed "connections" to "instance id's" in /etc/sqlrelay
	sqlrsh's help displays help for ping/identify commands
	changed sybase installation instructions to use alien on debian
	de-supported python<2.1
	clob/lob's aren't deleted if their length is 0
	removed lago support
	fixed some bugs in tcl api
	added tcl tests
	implemented native binds for postgresql8, added "fakebinds"
		connectstring parameter to provide back-compatibility
	added configure test for -Wall
	switched lots of:
			char	a[charstring::length(b)];
		to:
			char	*a=new char[charstring::length(b)];
			...
			delete[] a;
		to improve compiler compatibility
	removed #ifdef __GNUC__ around static variable definitions, I'll add
		#ifndefs for compilers that don't allow them (like SCO's) if
		necessary
	fixed bugs where getRow(),getRowAssoc(),getOutputBind(),etc. in various
		api's wouldn't return binary data correctly
	updated mysql dropin api so unsupported functions return unknown-error
		and mysql_error/mysql_errorno work when they do
	updated php pear db code with david forums' patches
	removed references to prepare_tokens/types/etc. and overrode
		freePrepared()
	python api pays attention to retrytime/tries now
	fixed a hang when username/password are wrong
	fixed a crash when too many cursors were requested
	switched most sprintf's for snprintf's
	made maxquerysize, maxstring/lob/clobbindvaluelength configurable
	added configurable idle client timeout
	removed broken sybase/freetds encryption connect string option for now
	added --with-initscript-prefix configure option to make init script
		location configurable
	php module should compile against php 4.0 again, though without
		cleanup functions
	added -pthread when compiling as well as linking
	sqlr-start links against -lm now
	uses file::generateKey() rather than ftok now, uses project 1, not 0
	added loadbalanced as a connection parameter, with default of false,
		if the db is load balanced, then if one connection determines
		that it has gone down, only that connection will re-login
	added /usr/local/lib to list of base dirs to find zope in, for
		OpenBSD 3.7
	fixed a bug where bind cursors weren't getting cleaned up
	java api build creates a jar file
	oracle 8 connection's fetchatonce/maxselectlistsize/maxitembuffersize
		are configurable at run time now
	fixed a bug where the null indicator wasn't being set to 0 for lob's
	updated docs to indicate that getConnectionPort/Socket() are only
		valid after suspendSession() and getResultSetId() is only
		valid after suspendResultSet()
	updated php docs; fixed some typo's
	sorted out some lob length issues in mysql
	updated inputBind to take an int64_t
	fixed a bug where DB2 connections wouldn't reconnect if the db went down
	fixed a bug where DB2 update/delete with no affected rows was returning
		an error
	added nls_lang connection string option to oracle7/8 connections
	added getOutputBindBlob/Clob() methods
	for perl/php/python/ruby api's if a bind variable or substitution
		variable isn't a string,long or double (or if prec/scale aren't
		specified for a double) then the inputBind(s)/substitution(s)
		functions return false
	PHP Pear db's query() returns a result set for "SHOW TABLES" now
	Got perl dbi clob/blob binds working again, documented how to use them
	freetds connection funnels everything through a single cursor, although
		it appears to higher levels that there is more than 1 cursor,
		so nested queries won't work if a result set buffer size is
		used, but errors no longer occur
	fixed a bug where fetching a clob from oracle containing utf8 data
		could cause a buffer overrun and subsequent crash
	applied Gena01's php pear db patches, some other fixes
	made SID code work for all databases, use other instances of SQL Relay
		rather than a mysql database
	started on query router code
	implemented php pear DB sequence functions for oracle
	all programs create pid files now, sqlr-stop stops them by iterating
		over the pid files and killing the pid's in the files rather
		than using ps
	added some checks for tcl functions/types in configure script
	configure script filters out non-g++ CFLAGS from mysql_config if
		using g++
	lots of configure script updates for cygwin
	java api uses jlong instead of jint now for cursor/connection

0.36.4 - fixed mdbsql detection
	fixed const error in mdbtools connection
	added const to *connection::identify()/pingQuery() methods
	improved efficency of sending lob's
	added Py_INCREF(Py_None) before returning Py_None's or adding them
		to an array
	fixed php pear db bug that caused NULL values not to be inserted

0.36.3 - added allowShortReads option to non-readline sqlrsh build
	fixes to php pear db driver for autoExecute
	sqlrsh uses libreadline even on systems that don't have libhistory now
	changed test -n -r "${sysconfdir}/sqlrelay.conf" to 
		test ! -r "${sysconfdir}/sqlrelay.conf" in init scripts

0.36.2 - added -lnnz10 to instantclient configuration

0.36.1 - added support for oracle instantclient
	added python 2.4 to spec file

0.36 - configure script defaults db2 version to 8
	configure script detects various odbc function paramters, uses them to
		build odbc connection
	applied Matthias Klose's freetds patchlevel patch
	added Py_BEGIN_ALLOW_THREADS/Py_END_ALLOW_THREADS in various places
		in CSQLRelay.C
	fixed freetds version check even more
	INSTALL is moved to INSTALL.txt for OS X now
	applied Matthias Klose's Zope configure patch
	added mdbtools connection
	fixed double-free of debug file name
	sqlrsh exits after running a script now
	ctrl-D doesn't crash sqlrsh now
	connections=0 is valid now, will start no connections
		and dynamically scale from there
	upped MAXQUERYLENGTH to 65536
	removed MAXQUERYLENGTH from sqlrdefines.h
	fixed bug where query length > MAXQUERYLENGTH could cause segfault when
		copying references
	sqlr-listener and sqlr-scaler refuse to start now if
		runasuser/runasgroup can't read the config file
	sqlr-scaler shouldn't loop up if sqlr-listener is killed now
	fixed bug where scaler's group might not be set properly
	processes don't try to set their user/group unless they're different
		from the user/group that the process is currently running as,
		should prevent "cannot switch group to nobody" messages
	per Matthias Klose's bug reports:
		set manpage section to 8 for sqlr-ipclean, sqlr-start, sqlr-stop
		fixed MDBTOOLS detection to handle includes/libs installed in
			/usr/include, /usr/lib
		fixed another odbc SQLLEN/SQLINTEGER bug
	updated config.guess
	fixed PHP api to use resource lists - cleans up itself now with no need
		to use sqlrcon/cur_free
	fixed PHP Pear DB script bug which would cause an error code to be
		returned if -1 was returned for affected rows (ie. if a
		database doesn't support affected rows)
	added -framework Python to compile python stuff on Darwin/Mac OS X
	added connectstring descriptions to PHP Pear DB docs
	added code which toggles TCP_NODELAY to flush data written to either
		side of the connection here and there rather than wait on the
		Nagle delay, improved performance over a network substantially
	added .PHONY makefile flag, removed INSTALL -> INSTALL.txt hack
	added /usr/sfw to configure script's search paths
	uses rudiments error class
	added /sw to configure script's search paths
	added -Wno-long-double if system supports it
	several macosx-related configure script changes
	fixed denied/allowed ip's
	configure script looks for some stuff under /cygdrive/c/Progrm Files now
	for php 5, the pear db driver uses PEAR::loadExtension rather than
		DB::assertExtension

0.35 - added (slightly modified) pkgconfig stuff from Dolphpower's pkgconfig
		patch
	added PHP Pear DB driver
	added --with-db2-version configure option
	STRIPPROG is set before calling install-sh now
	added fixup socket to listener so forked clients can retrieve the
		handoff socket from a newly spawned database connection, this
		makes it possible to use scaling and handoff=pass
	switched many int arguments and return values to bool
	did some code cleanup to listener, scaler, sqlrconfigfile
	fixed reversed affected rows logic for freetds 0.61
	support mysql_change_user now in mysql connection
	added mysql client api drop-in replacement library
	configure script looks around for ssl library now
	configure script doesn't look for crypto library now, instead it just
		uses ssl library flags which should include crypto library if
		ssl needs it
	fixed a few things in the perl DBI driver:
		made bind variable index 1-based for execute()
		removed clearBinds() after execute()
		initialized a few hash values when execute() fails
		added support for output bind parameters
	odbc connection uses ODBC v 3.0 column attribute names now
	added setResultSetBufferSize(100) to perl dbi, php pear db, ruby dbi
		and python db drivers
	added support for temp tables for all databases that support them
	added tests for drop-in api's
	applied a db2 version-8 specific patch from Masanori Akaishi
	added search for libgthreads to configure for SCO
	configure uses -pthread on cygwin now
	the default implementation of commit/rollback allocate a new cursor now
	applied a reexecute bug patch from Tony Fleisher and Erik Hollensbe and
		fixed a bug that it revealed
	postgresql connection uses "select 1" for ping instead of calling
		PQstatus (which doesn't actually check the connection status)
	fixed changeUser() bug where login/initCursor was done in the wrong
		order and the cursor array was getting deleted
	Oracle8 connection checks the version of the database now and uses
		proxy credentials for authtier=database only when the database
		supports it, otherwise it uses sqlrconnection::changeUser()
	added oracle 10g support
	moved some code back into sqlrconnection class from helper classes
	renamed constructor/destructor.C *ctor/*dtor.C for connection and c++
		to remove object file name collisions, between the collisions
		and a bug in strip, the static C++ api library wouldn't work
	applied a patch so varchars in oracle8 can be up to 32768 bytes long
	fixed a bug where db2 connections would return the result set of
		the previous query if the current query returned no rows
	lots of fixes to sybase/freetds connections, sybase properly uses
		cursors now
	fixed db2 connection, had confused SQL_SUCCESS/SQL_ROW_SUCCESS and
		SQL_SUCCESS_WITH_INFO/SQL_ROW_SUCCESS_WITH_INFO
	added support for sybase rpc commands
	improved support for interbase stored procedures
	DESTDIR works as expected now
	applied perl dbi patch from Tony Fleisher and Erik Hollensbe
	fixed bug where SEEK_END was used instead of SEEK_SET to lock sockseq
	lots of minor cygwin-related build fixes
	applied Srinivas Devarakonda's fake binds patch
	applied Jason Hihn's patch for sqlite3
	added ifdefs to maintain sqlite<3 compatibility
	applied Leonard Rochael Almeida's python segfault patch
	added test for python version < 2.1 and deprecation notice
	configure uses full path name instead of -L, -l for tclstubs library,
		on some platforms, libtool fails to build a shared library
		if .a files are linked into it using -L, -l
	no stripping is done at build, link or install time now

0.34.3 - updated spec file for suse 9.0
	applied a patch to fix a typo in C API
	spec file searches for zope and python paths
	uses includedir instead of incdir now
	doc's are installed in ${datadir}/doc/sqlrelay now instead of
		${prefix}/doc/sqlrelay

0.34.2 - updates for fedora core 1 compatibility
	Mac OS 10.2 compatibility improvements
	A few documentation updates

0.34.1 - fixed rpm build by upgrading to libtool 1.5 and using -inst-prefix-dir
		for postgresql client api drop-in replacement library
		
0.34 - sqlrelay.conf parameters weren't getting defaulted properly
	scaler checks to see if a DB is marked as down before it tries to	
		log into it, if it is marked as down, then it tries a
		different DB
	connection sends it's connectionid to listener along with port/socket
	listener check to see if a DB is marked as down before trying to
		hand off a client to it.  if it is, then the listener forks
		and pings the db to get it to come back up.
	php API uses RETURN_STRINGL for getField and getOutputBind now
	python API uses Py_BuildValue("s#" ...) for getField and getOutputBind
		now
	java API has getFieldAsByteArray() and getOutputBindAsByteArray()
		methods now
	ruby api uses rb_str_new() instead of rb_str_new2() for getField and
		getOutputBind now
	incorporated Vladimir Kouznetsov's code for interbase stored procedures
	perl API is binary safe now
	perl API returns empty lists for get*Row*() methods now if the row is
		beyond the end of the result set
	perl API returns undef for getField() and getOutputBind() for NULL
		values now
	netbsd init script is fixed now
	applied lots of patches from Takeshi Taguchi for typo's and compiler
		warnings
	added postgresql drop-in api
	added support for column precision/scale to core classes and all DB's
		that support it
	all databases return the number of bytes required to store the column
		on the server for getColumnLength now
	added support for determining whether a column is nullable or a primary
		key for databases that support it
	fixed a bug where supplying a NULL path in sendFileQuery() would cause
		a crash
	fixed a bug where NULL binds weren't being faked at all
	added a hack for broken glibc-2.3's
	split up sqlrconnection.C and sqlrcursor.C in connection base classes
	added support for tcl < 8.2
	inputBindBlob in java api takes a byte array now instead of a String
	postgresql connection uses PQfmod if PQfsize returns -1
	updated libtool scripts
	cleaned up and sped up unsupported signal checks in configure script
	fixed bug where failure to specify metrics caused crashing
	sqlrconfigfile class doesn't cause crashes when id isn't found anymore
	config file arguments that are less than a certain value (in most cases
		less than 1) are set to the default value now 
	sqlrconfigfile class uses list class now to store user/connectstring
		lists
	updated config.guess, config.sub, ltmain.sh
	rpath is optional for everything now
	rearranged data in shared memory segment a bit, simplified code
	use a struct for data in shared memory segment now, should alleviate
		alignment problems on sparc/ppc
	all API's are linked against appropriate thread libs now
	revamped oracle installation docs
	oracle 8i/9i are linked only against -lclntsh and `cat sysliblist` now
	added freetds/sybase libcs/ctpublic.h clash warnings
	db2, oracle, freetds, sybase use -rpath by default now
	gcc uses -pipe option if available
	configure has --enable-small code option
	.o files are stripped of .note and .comment if possible
	added LD_ASSUME_KERNEL=2.4.1 note to db2 install docs
	fixed db2inst1 -> testdb typo in db2 install docs
	updated mysql/lago/postgresql/sybase/db2/interbase docs a bit
	added oracle8i/9i-specific tests
	better ps aux/-efal detection
	-fomit-frame-pointer -fno-exceptions are used now, debugging
		build just uses -fno-exceptions
	freetds connection disables affected rows for freetds-0.61
	freetds tests use sendQuery("commit tran") instead of commit(), for
		some reason that's necessary with freetds
	libmysqlclient.so is referred to directly instead of using
		-LPATH -llib because libtool likes to append .libs to paths
		that don't end in "lib" on some platforms (notably Solaris x86)
		and libmysqlclient.so is almost always installed in
		$(somepath)/lib/mysql instead of $(somepath)/lib
	don't link directly against -lstdc++ any more, instead, set up libtool
		to use g++ to link everything
	added more verbose logIn error reporting to oracle8 connection
	0's for bind var counts aren't sent when fetching from a bind cursor now
	fixed bind cursor fetch problems

0.33.1 - fixed double-install of /etc/init.d/sqlrelay on redhat
	added -lstdc++ to libs if using gcc3
	applied fixes to commandline clients

0.33 -	configure script figures out rpm build directory better
	added sane defaults for every configfile parameter
	updated dtd
	sqlr-config-gtk fills in default values now
	"listener and connection" attribute values in config file have been
		changed to "listener_and_connection" to satify xmllint, but
		"listener and connection" still works
	updated sqlrelay.conf.example
	added sqlrclient-config and sqlrclientwrapper-config scripts
	removing rpm's removes /usr/local/firstworks/java , include/sqlrelay,
		and var if they're empty
	programs return proper exit status's now
	connection class's listen() method takes a parameter indicating whether
		to detach before/after logging in.  Detach before allows DB2
		to work, detach after allows an exit status to be returned
		if logging in fails
	query.py isn't installed anymore, it's redundant
	getRow was using row instead of whichrow, fixed that
	added sendQuery that takes a length parameter to handle binary data
	added upper/lower/mixed column name methods
	java API's are in com.firstworks.sqlrelay package now
	added init scripts
	queries with substitutions correctly reset their length after the
		substitutions are applied now
	incorporated minx's LOB-fetching bugfixes into oracle8 connection
	oracle 8.1.7's OCILobRead doesn't return OCI_NEED_DATA, worked around
		that
	oracle8 connection handles NULL LOB's correctly now as well
	query and sqlrsh programs set their result set buffer sizes to 100 now
		so huge queries don't use up all your ram
	added getOutputBindLength method to API's
	added __del__ methods to PySQLRDB classes
	several connections didn't process the correct number of connect-string
		variables
	uses rudiments' updated client/server architecture
	uses rudiments' logger class now
	renamed libauthenticator, libconfigfile, libconnection to libsqlr*
		and added support for using them as shared libraries
	libsqlrconfigfile is based on rudiments xmlsax class now
	sqlr-config-gtk is based on rudiments xmldom class now
	dependency on libxml no longer exists
	LOB and string binds use memorypool class now
	fixed init script and ruby api uninstall problems
	applied Leo Almeida's python db patches which handle closing
		cursors/connections better
	moved a bunch of sqlrconnection class code into other classes, created
		a few new classes that are used by it alone
	postgresql connection closes stdout/stderr after logging in now
	added -localstatedir command line option to redirect
		/usr/local/firstworks/var to somewhere else
	moved allocate calls into logIn() methods of connections and deallocate
		methods into logOut() methods; makes reconnect work with
		oracle8
	added support for cursor output binds
	changed the way that the clients and servers negotiate which cursor
		that the client should use
	added REEXECUTE_QUERY and FETCH_FROM_BIND_CURSOR protocol directives
	changed SENDING_QUERY directive to NEW_QUERY
	removed all iostream references, should allow sqlrelay to be
		compiled against uclibc (for all connections that can also
		be compiled against uclibc)
	added error message if ftok fails in listener
	added Paolo Dotta's liveconnection=PQstatus fix to the postgres
		connection
	added signal option to sqlr-stop
	it's possible to do negative input bind long's now
	when relogging in to a db that went down, cursors are just reset, not
		deleted/created, this allows the query to be re-executed
	fixed a memory leak in Oracle8 connection where OCIHandleFree was being
		used instead of OCIDescriptorFree
	Postgresql connection supports typemangling=lookup option now where
		the connection will query the pg_type table at startup and
		return type name values from it
	Fixed lurking memory bug in api where column buffers weren't getting
		created if dontGetColumnInfo() was called, but the longdatatype
		member was getting referenced anyway.
	def and def_lob's are properly initialized now in oracle8 connection
	api uses rudiments' file class for cache files now
	libtool is used where possible
	uses (a modified version of) Matthias Saou's spec file to build RPM's
		now
	builds tgz's for Slackware now
	supports freetds-0.61
	connection daemon drops temporary tables when a client session is ended
		for postgresql and mysql
	libtool is used to make php, python modules now
	applied Vladimir Kouznetsov's PHP api patches to fix null behaviour
	perl, php api builds are quieter now
	remove unnecessary -pedantic from CXXFLAGS
	modularized configure script
	incorporated Takeshi Taguchi's TCL API

0.32 -	affectedRows and totalRows were returning 0 instead of -1 for databases
		that don't know that value, now they return -1
	python api's suspendSession() returns 1 or 0 now
	suspendResultSet was screwing up the results of firstRowIndex() and
		rowCount() but they are fixed now
	python/ruby API's would crash if getColumnNames was called after calling
		dontGetColumnInfo
	invalid DDL caused sqlr-connection-oracle8 to crash, that's fixed now
	fixed several cached-result-set related bugs
	client automatically retries reads that were interrupted by signals now,
		this should fix lots of spurious "network error" bug reports
	client suppresses low level error messages unless debug is set on now
	complies with gcc3 now
	make rpm ignores perl/ruby if you don't have them now
	postgres database returns affected row count now
	bug fix - ruby api returns column length now instead of type when 
		getColumnLength is called
	ruby api handles nil socket now
	added ruby dbd api contributed by Michael Neuman
	updated clientapi documentation with regard to commit/rollback and
		server-side authentication
	fixed oraclentier documentation bugs
	spec files take config directories into account now
	sendRowCounts in libconnection took unsigned longs, but was being passed
		-1's if the database couldn't supply the parameter, dumb
	configure looks for libssl and links it into the python lib now
	perl getRow and getColumnNames don't segfault now when there is no row
		or columns
	fixed abortResultSet/cacheData/finishCaching-related segfault
	handoff between listener and database connection can be done by passing
		file descriptors or by instructing the client to reconnect
	congfigure looks in /opt/sfw for software now - 
		per the solaris companion CD
	configure looks for python.o and ccpython.o now
	configure looks for sybase stuff in /usr/local/sybase
	configure looks for serversocketpool.h instead of server.h to 
		find rudiments now
	connections listen on inet/unix ports only if listener is 
		configured to now
	configure script correctly determines the existence of oci.h now
	updated dtd - port not required any more, authentication -> authtier
		authentication or authtier work for compatibility now
	allowed/denied ips configuration option
	profiling libraries libsqlrclient_p.a and libsqlrclientwrapper_p.a
		are now generated
	getColumnType(char *col) wasn't returning the correct column type for
		nonstandard types
	sqlrcursor recycles column data and result set buffers now and creates
		the columnnames array on demand instead of every time
	the postgresql connection has an autocommit-yes/no option now which
		defaults to autocommit
	when in non-autocommit mode, the postgresql connection does a 
		commit/begin before ddl statements now
	added autocommit options to db2, oracle and odbc databases
	added autoCommitOn/Off() api calls
	ruby API builds against local c++ library instead of the one installed
		to the system now
	listener creates semaphore/shared memory segment now, other programs
		just attach to it
	listener checks/sets a pid file
	listener throws errors, refuses to start if the pid file is already
		out there or if it can't create a semaphore set or shared 
		memory segment
	connections, scaler refuse to start unless the listener is running
	configure detects sybase on freebsd but there seems to be a problem
		with sybase on freebsd - core dump in configure program
	configure script detects, configures for Oracle 9i now, at least on
		Linux
	configure script shouldn't put -L/usr/lib or -Wl,--rpath /usr/lib into
		compile strings any more
	include files moved to sqlrelay subdir of incdir
	perl api suspendSession returns int now
	ruby and php api inputBinds and substitutions work now
	postgresql connection correctly returns REAL datatype in typemangling 
		mode
	postgresql connection correctly returns NULL's now
	mysql connection correctly returns affected rows now
	fake binds like :var1 and :var11 are no longer screwed up
	decimal and int64 datatypes are recognized as numbers now
	msql connection correctly returns datatypes now
	lago connection correctly returns column lengths now
	lago connection correctly returns whether a column is null or not
	sybase/freetds connections correctly interpret the "db" connectstring
		parameter now
	sybase/freetds smalldatetime and smallmoney types are properly
		represented now
	bind-by-position works in sybase now
	sybase/freetds reports correct field length now
	sybase/freetds/interbase now support 256 input and 256 output bind
		vars correctly
	affected rows is enabled for freetds version > 0.52
	queries returning MONEY/SMALLMONEY columns are disabled for freetds
		version < 0.53
	freetds connection correctly supports fake bind variables now
	freetds connection doesn't spew unknown marker errors when cleaning
		up after result sets that weren't ct_describe'd
	configure script finds libxml in /opt/gnome now
	-version or --version returns version for cmdline programs now
	replaced VERSION with SQLR_VERSION throughout code to avoid conflicts
	incorporated a patch to enable php-4.1.1 compatibility
	sqlite connection rewritten to be more conventional, also supports
		transactions in sqlite 2
	sqlr-stop correctly cleans up the tempfile dir and properly figures
		out what directory that is instead of always using 
		/usr/local/firstworks/var/sqlrelay/tmp
	interbase returns correct datatypes now
	non-faked NULL binds work correctly now
	added server-side debugging
	sqlr-start can run with -strace option now to generate strace files
		for sqlr-connections
	configure script now looks for gnome-xml first and only looks for 
		libxml if it doesn't find gnome-xml
	closeCursors works correctly now
	changed server connect string parameter to db for db2
	changed database connect string parameter to db for interbase
	libconnection detaches from the controlling tty before logging into
		the database now.  This is necessary for db2 connections to 
		work.
	db2 date/time/timestamp types are reported instead of unknown now
	port connection string parameter not used in freetds/sybase anymore
	implemented ping for db2, interbase, msql
	undef as value for an input bind/substitution works in perl api now
	java/php api's handle NULL strings correctly now, especially in
		substitutions/inputBinds
	sockseq permissions get set correctly now
	interbase connection uses 1 transaction for ddl and another for non-ddl
		now, ddl is committed immediately
	transactions work in interbase now
	fields, query and sqlrsh don't crash (or act strangely) now if the -id
		command line option is used with an invalid id
	added -lcrypt to interbse compile requirements to support Firebird
	configure looks for libxml2/parser.h as well as libxml/parser.h now
	support for ruby 1.6.7
	changed python module name from CSQLRelay to SQLRelay.CSQLRelay in
		Py_InitModule call
	ruby build script replaces "CC = cc" with "CC = $(CXX)" and "CC = gcc"
		with "CC = $(CXX)" now instead of just replacing gcc with g++
	reworked the rpm-building stuff
	added -lcrypto to python api build script
	bench doesn't compile by default now
	configure checks /opt for db2 now
	incorporated Dieter Maurer's patch which aligns the port number in
		shared memory correctly for Solaris and others
	rpm build should work on non-redhat systems now
	fixed many memory leaks in C++ api
	replaced lots of strstreams with char arrays
	oracle connections print more error messages when they fail to log in
	oracle8 connection cleans up when repreparing for binds now
	connections close cursors after pings now
	for connections which check whether a result set is NULL before
		cleaning it up, the result set is set to NULL after cleaning
		it up, and also in the cursor constructor, this prevents
		calls to abort() (which in turn call cleanUpData()) from
		cleaning up a pointer that has already been cleaned up
	connections that have to set environment vars do so in a manner that
		will work with old versions of libc, putenv and setenv now
	fixed improper AC_TRY_LINK calls in configure, changed AC_TRY_RUN's to
		AC_TRY_LINK's
	everything should be compatible with autoconf 2.53 now
	added -lm to Oracle libs

0.31 -	skipped

0.30 -	replaced lingerOnClose() calls with a read that will fall through
		when the client closes it's end of the connection
	implemented the close() method for PySQLRDB's cursor class
	if a library's include files are in /usr/include, -I/usr/include is
		no longer put into the compile string, it was causing problems
		for gcc3
	use umask to set file permissions instead of doing it using fstream
		directly, works with gcc3's fstream now
	added commit/rollback methods to the API to help get around some
		ODBC databases not implementing those methods
	added support for ODBC>=3.0 when using iodbc
	renamed ruby API files to fall in line with ruby DBI naming conventions
	bug fix: had failed to NULL terminate user/password in listener
	implemented Oracle n-tier authentication for Oracle8i
	new authentication scheme - 
		listener/connection/listener and connection/database options
	support for SQLite-2.0 which doesn't need GDBM
	bug fie: Zope adapter's _finish and _abort didn't call close()
	better detection/auto-install of Zope API
	added test for gtk12-config and gtk10-config in configure
	reworked build system to configure faster
	fixed bug where an invalid query would end the session
	fixed ps -efa/ps aux bug for BSD systems

0.29 -	bind variable debug doesn't screw up <pre></pre> anymore
	added Zope detection/auto-install
	configure script finds java install from various rpms now
	explicit check for Oracle's libwtc.a/libwtc.so
	check for ld -G vs ld -shared
	looks for postgresql libs/includes in many new places
	configure checks to see if odbc or lago need threads now
	sqlr-config-gtk doesn't make libcfparse.a now, just links against
		configfile.o
	much more robust library detection in configure script now
	sqlr-stop works with systems that don't have SYSV ps command
	sqlr-config-gtk should compile against gtk-1.0 now
	ruby api should "make clean" even when ruby isn't in your PATH now
	mysql connection should compile against mysql's that dont have the
		mysql_real_connect method now
	in connection class, wherever I was setting busy=0, I call abort() now,
		this ensures that busy=0, suspendresultset=0 and cleanUpData()
		get's called
	make clean cleans up all bench dirs now
	make makes all bench dirs now
	fixed ICONVPATH/LIBICONVPATH problem in configure
	if libxml wasn't found, the query,fields and sqlrsh commands will
		compile now, just without the -id and -config options
	zope install copies python api into zope dir now instead of symlinking
		to it
	

0.28 -	sqlrsh compiles against readline version 2 now
	fixed a bug where a connection daemon would dump core if dynamic scaling
		is turned on and it fails to log into the database or create
		cursors
	support for .sqlrelay.conf
	cleaned up signed/unsigned short/long's everywhere
	c api's sqlrcur_getOutputBind didn't work, but it does now
	took care of a bunch of compiler warnings
	if you leave out the -connectionid parameter when running
		sqlr-connection-xxx it will use the first connectionid
		if one exists
	added cursors parameter to the config file and sqlr-config-gtk
	connection daemons shouldn't core dump now if they fail to log in
	implemented executemany and rowcount in pythondb api
	documented pythondb api similarly to other api's
	libconnection runs returnResultSetData immediately after handleQuery
		and resumeResultSet now.  This obviates the need for the
		client to send a FETCH_RESULT_SET command/cursor and fixes a
		bug where the client could fetch the wrong result set by
		sending the wrong cursor.
	fixed a bug that would cause previous queries to be re-executed instead
		of the current query when prepareFileQuery is used
	by default, postgresql connection returns numeric types now
	added mangletypes connect string option to postgresql connection
	made ping/identify more efficient, made them connection-based rather
		than cursor based
	configure --includedir should work now
	documented perl DBD api similarly to other api's
	client debug messages detect whether the app is a web app or not by
		checking for the DOCUMENT_ROOT environment variable and
		put <pre></pre> tags around debug messages if it's found
	sqlr-listener doesn't fork bomb any more when trying to run 2 on the
		same port, now it exits gracefully
	fixed a bug where the connection daemons weren't calling 
		disconnectClient()
	C API doesn't convert back and forth between a class pointer and a long
		anymore, now it uses a typedef struct pointer for the same
		thing, simplfies the code
	listener sockets linger on close now, for 10 seconds
	changed sqlr-stop to use awk instead of cut

0.27 -	added java API
	all API shared object libraries are linked against $(LIBSTDCPP) now
	in the C++ API, if copyrefs is turned on, cachefile name is copied now
		this is an "oops" fix
	defined getRowLengths (and friends) functions in the python api,
		this is another "oops" fix
	fixed the ruby Makefile, sometimes it wouldn't make properly
	resumeSession() wasn't copying the unix socket into the buffer when
		copyReferences() was set, but it does now

0.26 -  implemented rebinding/reexecution
	pythondb API's execute method uses its "parameters" as input binds
	pythondb API's callproc method calls execute
	pythondb api is threadsafe at level 1, not 0
	changed sqlrelay.conf.example and all docs to use port 9000 since that's
		the default port in defaults.h
	configure script now deals with sysconfdir, localstatedir, libdir, 
		etc. directives now
	sqlrsh uses gnu readline if it's available
	added ruby API

0.25 -	made relative pathnames work in --with-xxx-prefix configure arguments
	prepareFileQuery returns 1 or 0 now, depending on whether the file
		could be opened or not.  It also sets the error messsage in
		that case and no longer prints it out unless debug is set on.
	forgot to set liveconnection to 1 in a lot of cases
	modified client/server protocol so it doesn't send negative numbers
		across networks, should fix a lot of problems
	removed implicit directory for caching files in API
	added -scaninterval and -cachedirs command line parameters to 
		cachemanager
	fixed api so it won't try to substitute or execute a NULL query if 
		prepareFileQuery fails
	api returns better errors now
	added getFieldLength()'s methods/functions
	code cleanup, especially s/Header/ColumnInfo/g
	it's now possible for the API's to tell the server not to get or send
		column info
	fixed double-type bind/substitution problem in php api
	Oracle8 connection uses array fetch now
	fixed a bug that would have caused dml to possibly not be committed 
		and duplicated instead
	fixed a configure bug that wouldn't find libgds.so for interbase
	connections create/connect to semaphores, detach after logging in 
		now, should elimiate problem of semaphores/shared memory 
		segments hanging around after failed logins
	made sure to close/unlink sockets during shutdown
	made sure to lock the sockseq file, I can't believe I missed that...
	added XNETLIB to src/cmdline/Makefile.in
	added an -enable-static option to the configure script
	modified everything to allow multiple statements to be executed through
		a single connection
	fixed a bug that could cause getField() commands to return the wrong
		data (or segfault) when resuming a suspended session with a
		suspended result set
	fixed a bug that could cause cache file's to lose data when not 
		buffering the entire result set at once
	fixed a bug that would cause cached result sets to get truncated when
		ending a session
	python getRow methods don't crash on an empty result set now
	connections use the same inet/unix port for the duration of their
		existence now instead of getting a new one for each client
		session
	PHP and Python API's used to both call setResultSetBufferSize() instead
		of setCacheTtl() when their setCacheTtl method was called
	Removed all offset-related API functions, replaced them with a row
		indexing system
	caught a bug that would cause python getRowRange to potentially
		run off the end of the result set
	PySQLRDB.py uses CSQLRelay.so directly now instead of going through
		PySQLRClient yielding a reasonable performance improvement
	Moved some code from PySQLRClient.py to CSQLRelay.C
	Added bind-by-position support to oracle connections, validateBinds()
		no longer tries to validate bind-by-position variables
	Added fakeInputBinds method, call it in all connections where the
		db doesn't support binds directly
	configure script will find libxml2.a/.so now
	removed -O2 flag, was causing floor/pow functions to work improperly
		with iostreams
	postgresql connection returns UNKNOWN_DATATYPE now for all of it's
		non-standard datatypes
	postgresql connection returns 0 instead of -1 for lengths of varchar and
		char types now
	modified perl-dbd api to use input bind methods instead of substitutions
	added lots of comments to the perl-dbd api
	the user/password connect string options work for interbase now
	the python/pythondb api connection constructors take the same parameters
		as the other api's now
	added check for gethostbyname in libnsl, added it to lago compiles
	added libsocket to pthreads check
	perl API tries 3 different ways to compile instead of just trying to 
		figure out how ahead of time
	php API tries 2 different ways to compile instead of just trying to 
		figure out how ahead of time
	oops, not-connected to oracle error is 3114 not 3144, fixed that
	added a call logOut() to reLogIn() in libconnection


0.24 -  listener cleans up unix socket file on exit
	connections clean up unix socket files after use
	some cygwin compatibility tweaks
	fixed bugs in the sqlrelay.conf DTD
	changed oracle7 connection to ofen 10 rows at a time
	changed oracle8 connection to prefetch 10 rows at a time
	changed db2 connection to use fixed size, recycled buffers
	changed db2 and odbc connections to SQLFetchScroll 10 rows at a time
	changed freetds connection to use fixed size, recycled buffers
	added port argument to freetds connectstring
	configure script looks for python 1.6, 2.0 and 2.1 now
	configure script looks for libiconv and uses it with libxml if
		necessary
	added -lwtc8 to ORACLELIBS, some versions appear to need it
	improved/simplified freetds connection code and set it up to work with
		array fetches, should that ever work in freetds
	added sybase connection
	modified bind variable methods in libconnection... established 0 as
		non-null and -1 as null
	added bindVariablePrefix() method to libconnection... established : as
		the default prefix
	removed nonNullBindValue() and nullBindValue() methods from oracle
		and interbase connections since the base class methods now
		work for those datbases
	added bindVariableIsNull() methods to db2 and odbc connections which
		were missing that method
	fixed interbase bind problem
	changed sybase connection to ct_fetch 10 rows at a time
	updated the docs.
	updated the dblist.h file for the gtk config program with the current
		list of database connection types
	fixed a bug in the interbase connection that would cause it to crash
		unless a dialect was selected
	modified bench programs to use multi-row fetch like the connections do
	added @DLLIB@ to ORACLE_LIBS in config.mk.in  Solaris 2.6 appears to
		need it
	added a test for libaio.so and added it to the list of ORACLE_LIBS,
		Solaris 2.6 appears to need it
	make clean now removes the .pics directories that Konqueror makes
	changed cacheOn() to cacheToFile(), making it thread safe
	all programs use rudiments permissions class now
	Python and PHP API's use the C++ API directly now instead of going
		through the C wrapper
	Perl API should compile on any system now
	added --with-gdbm-prefix and --with-iconv-prefix to configure script
	changed order that configure searches for Perl, php-config
	removed attempt to statically link oracle connection
	better odbc detection in configure script
	restored iodbc compatibility
	added compatibility with older versions of mysql
	

0.23 -  added an interbase connection
	added a comma after LONGVARCHAR in the datatypestring array in 
		datatypes.h -- fixed misidentified column types in db2 and
		interbase
	fixed transposed configure/make in installing.html document
	changed "unixport" to "socket" in sqlrelay.conf and in sqlr-config-gtk
		in sqlrelay.conf, unixport still works for back-compatibility
	odbc connection does binds now
	found and fixed a memory leak that was causing memory associated with
		executing a statement not to be freed
	added libxml's libz dependancy back, some libxml's can read compressed
		files
	moved commitOrRollback() to after processQuery()
	fixed the python docs, the constructor syntax was really wrong
	changed parseQuery() method to prepareQuery() in libconnection

0.22 -  added #!/bin/sh to top of sqlr-stop and backupschema
	removed a bunch of strlen()'s that weren't necessary
	passed variable sizes into functions that needed them instead of 
		letting the function calculate it or using a strlen()
	initVariables only happens in copyreferences mode now
	used fixed size, recycled buffers instead of dynamic 
		allocation/destruction in lots of places
	in the api, several buffers aren't allocated now until the first time
		they're needed, then they're recycled afterwards
	client/listener authentication protocol is different
	connection catches attempts to send really large queries, bind 
		variables or bind values and shuts down the connection
	api endeavors to catch those closed connections and react with an 
		descriptive error or fail with a broken pipe error
	added db2 connection
	added precision/scale parameters to double binds
	added runasuser/runasgroup parameters
	added db2 and odbc benchmark programs
	added db2 test script
	None's in python inputBinds and substitutions work as NULL's now
	fixed bug that caused openCachedResultSet() to miscalculate the
		total number of rows in the result set and crash trying to
		access the 0'th row
	made sqlr-stop keep from trying to kill itself
	updated documentation

0.21 -  failure to read the query size, skip, or fetch sizes could cause the 
		connection daemon to crash, fixed that
	connection daemon and api use static, recycled bindvar array instead 
		of dynamic allocation
	modularized the bind/substitution var code in the api
	got rid of fakeBinds(), you just can't fake binds
	API call to validate binds rather than automatically doing it in the
		connection daemon
	insert/update with a NULL input bind inserts/updates a NULL now 
		instead of a ""
	added getNullsAsNulls() and getNullsAsEmptyStrings() methods so NULLs
		can be returned as either NULLs or empty strings

0.20 -  fixed sendQuery after openCachedResultSet API bug
	added ODBC connection
	fixed Oracle-related build bug
	tweaks for gcc-2.96
	added sqlr-config-gtk
	modified the NEWS file
	added support for input and output scalar bind variables
	eliminated Final queries
	eliminated Cache queries
	implemented new methods for caching
	implemented 4 stage (prepare, substitute, bind, execute) querying
	fixed unititalized variable problem in returnResultSet() 
		of libconnection
	made getRow() and getColumnNames() perl methods return arrays like 
		you'd expect them to
	fixed failure to delete semaphores/sharedmemory segments when
		killing listener bug
	zend-ized the php API more than it was.
	added api method allowing the programmer to override the function
		used to print debug messages
	php API can now print debug messages
	added copyReferences() method and functionality to C++ API to fix
		problems related to lost references and garbage-collecting
		in perl/python/php
	added substitution/bind support for long and double types
	added -version command line arg to all programs
	changed the NEWS file
	removed namespace from sqlrelay.conf, it wasn't done correctly anyway,
		maybe I'll add it back later...
	removed sendEndOfSession from Python API
	Perl, Python and PHP API's have type-independant functions/methods for
		getting fields, setting substitution and bind variables, etc.
	added substitutions and inputBinds functions to Perl, Python, PHP API's
	added getRowHash, getRowDict to Perl, Python API's
	renamed getarray to getrowassoc in PHP API
	reformatted the PHP API code
	updated docs
	Makefile tweakage
	input/output bind code in libconnection makes sure the variables exist
		in the query before trying to bind them now
	sqlr-stop removes temp files now
	handled NULLs better in substitutions and inputBinds
	removed sendField for int/floats from libconnection
	the listener can pass sockets to connection daemons now instead of
		requiring the client to reconnect

0.19 -	made sure to delete alarmhandler in main.C for all db connections
	made sure to delete each authstring before deleting the array itself
		in the listener
	major protocol changes, should be much faster and use much less
		memory
	made a lot of changes so the result set can be buffered in chunks 
		instead of all at once
	added functionality for getting the number of rows affected by an
		insert/update/delete if the back end database supports it
	if a connection receives a query, but the database is down, when it
		re-connects, it retries the query now
	fixed oracle float value problem
	added functions to python and php api's
	fixed perl bug with cached queries
	fixed bug where (query length)%511==0 and (query length)!=511
	added API test scripts
	added oracle8 connection (uses OCI8)
	renamed oracle connection to oracle7
	added support for LONG's in oracle7 connection
	added support for LOB's in oracle8 connection
	added ping and identify methods
	made isTransactional() return 1 by default, adjusted connection daemons
		in response
	made oracle connection daemons use OCI commit and rollback functions
	documented client-server protocol and connection daemon library
	fixed mysql,msql connections to work with suspended result sets
	ping was broken in most of the connections, fixed it
	defaulted sessiontimeout to 60 seconds
	fixed bug where next query after an error would fail
	sending auth/query strings work like sending the rest of the strings 
		now
	bug fix - connection calls cleanUpData() for non-select queries now
	bug fix - connection calls cleanUpData() when the result set is done 
		now
	made openCachedResultSet() leave the session open

0.18 -	handled PL_na/na conversion better in perl API
	removed redundant -fpic and unnecessary -DPIC
	fixed problem with Perl API that caused rudiments library not to be
		linked in at run-time
	fixed a bug in query.py that kept it from connecting
	bunch of --with-xxx-prefix build fixes
	fixed Solaris linker issues
	changed killsqlr to sqlr-stop and improved it
	allowed c++ to be used instead of forcing g++
	fixed mysql bench bug
	fixed a few memory leaks
	preliminary CYGWIN support
	added -s to executable compilation string and removed calls to strip
	changed build to detect a shared object version of libstdc++ and use 
		"ld -G -o" with it if there is one.  If there is only the
		static version of libstdc++.a then the build uses "c++ -Wl,-G"
		This is to provide generic support for systems with or without
		GNU ld, systems with or without a shared object version of
		libstdc++, systems with multiple versions of libstdc++ and
		perl Makefiles.
	removed libz dependancy from libxml
	fixed scaler to accurately scale connections without overrunning
		maxconnections
	added socket paramter to sqlrc_alloc in PHP API.
	output from sqlr-connections started by sqlr-scaler doesn't go to 
		/dev/null anymore
	made python API thread-happy
	changed configure script to look for libg++.so and use it if it
		finds it.  This is mainly for FreeBSD compatibility.
	postgresql/msql connections redirect their stdout/stderr to /dev/null
		now because both spew data now and then

0.17 -	commit/rollback only gets issued at end of session if any non-select
		queries were issued during the session since the last
		commit/rollback was issued
	fixed bug in API - sendEndOfSession followed by a query would fail
	added unix domain socket support
	got rid of extern "C" { #undef __cplusplus ... #define __cplusplus }
		it caused more problems than it solved
	spelled persistent correctly in the NEWS file
	added --with-xxx-prefix command line options to configure script
	fixed NULL number problem with oracle connections
	can now leave a session open and pass the port/socket to another
		client which can resume the session
	added dynamic connection scaling
	changed sendEndOfSession() to endSession() and sendLeaveSessionOpen()
		to suspendSession()
	blocked all signals but SIGINT and SIGTERM in listener
	blocked all signals but SIGINT, SIGTERM and SIGALRM in connection
	updated Python and PHP API's; converted sendEndOfSession to endSession

0.16 -	added debug command to sqlrsh
	bug fixes for queries longer than 511 characters
	updated query.py
	updated PHP module - fixed error handling, added documentation
	added perl DBD module
	fixed documentation errors
	updated the NEWS file
	added endofsession attribute to the sqlrelay:instance tag in the
		config file.  connection can now issue either a commit or
		a rollback when the client dies or ends it's session.
	fixed bug in mysql connection which caused random errors, I have no
		idea how it ever worked, but it almost always did.
	changed license on perl API to Artistic
	made connections advertise to listener via shared memory rather than
		a fifo
	added some minimal sqlrsh documentation
	fixed a long standing synchronization problem - actually the change
		was in the rudiments library, but the effect is most
		noticable here
	made the freetds connection sendNullField() when the ct_convert command
		returns a NULL instead of a string for the field value

0.15 -  config file parser fixes
	freetds connection, bench and testsuite
	added return values to returnData and returnHeader in libconnection
	bench directory compiles by default now
	listener hands off client to connection which sends data directly
		back to client instead of going through the listener first
	transmissions between client and daemons are done in blocks rather
		than character at a time now
	client/daemon protocol optimizations
	added getLongest() methods to C,C++,Perl API
	python/zope API reports errors correctly now
	python/zope API will reconnect if connection is dropped somehow
	added sqlrsh command line program
	added Python API docs
	added PHP API
	blocked SIGPIPE, handled broken pipes another way

0.14 -	documenation improvements and fixes
	added -fpic -fPIC -DPIC to CXXFLAGS
	added extern "C" and #undef/#define __cplusplus in various places
	added modes to install scripts
	Python API
	Zope Adapter
	bench directory with benchmark programs
	testsuite directory with test scripts
	updated connection code to handle double quotes, backslashes and
		semicolons correctly in every case
	updated API's to handle double quotes, backslashes and semicolons
		correctly too

0.13 -	build fix: calls to "test" are now more compatible with non-bash
		shells

0.12 -	if connection receives an end of session, it sends a commit to
		the database, or more precisely calls the commit() method
		of the connection class which, for transactional databases,
		sends a commit and for non-transactional databases, does
		nothing.
	build now succeeds with gnome-xml
	added support for SQLite and Lago databases
	build now detects a suitable cpp command and uses it when building
		the perl API instead of just calling cpp directly
	VERY preliminary work on FreeTDS (Sybase/MS SQL Server) connection

0.11 -	perldoc documentation for the perl API
	added warnings to indicate when default parameters are fallen back on
	cleaner build
	added extern "C"'s around c includes - fixed dynamic loading bugs
	added varargs functions to perl API

0.10 -	put LDFLAGS into Makefiles
	configure now adds -static to LDFLAGS to generate static binaries if
		possible (not possible when linking sqlr-connection-oracle on 
		linux) Ran into problems when dynamically linking a binary on 
		one OS release then trying to run it against the slightly 
		different libraries of another release.  Stripped, static 
		binaries run faster and use less memory than dynamically linked
		ones anyway.  The only price you pay is space on the 
		filesystem.  If you'd like dynamic linking though and think 
		that it will work for you, just remove -static from the 
		config.mk.in file before running configure or the config.mk 
		file after running configure.
	general Makefile maintenance
	reorganized code into libconnections and classes which inherit from it
		for each connection.  No more #IFDEF BUILD_XXX's.
		Connection classes for new databases should be easier to code
		now.
	moved commandline processing into listener and connection classes and
		out of the main.C files
	little optimizations here and there
	can send multiple Final queries per connection now
	can open connections to a cluster of databases or a set of replicated
		databases within a single id now
	multiple users/passwords per id
	if a connection detects that the database went down, the other 
		connections to that database don't advertise themselves
	C API
	Preliminary Perl API
	Connect string doesn't have to have a trailing semicolon now.
	Fixed mysql connection bug which caused it to never return a result 
		set.
	Oracle 8.1.5 compatibility (perhaps 8.1.x ?)

0.9 -	oops fix.  it's now possible to store " and \ in the database
	moved config file parsing routines from main into listener/connection 
		classes to help support a future plugin architecture
	reengineered Makefiles to be friendlier to non-gnu make

0.8 -	XML config file (requires libxml-1.8.7 or newer)
	fixed a bug where connections could fail to advertise

0.7 -	added PostgreSQL support
	added mSQL support

0.6 -	documentation installs now
	added MySQL support
	fixed some documentation typo's

0.5 -	more robust build/install/uninstall

0.4 -	configure based install. 
	Reorganization of includes.
	make install/uninstall directives.
	Got rid of RCS.

0.3 -	Stability fixes.
	Synchronization fixes.

0.2 -	First Release. Totally different from 0.1.
	
0.1 -	Not Released.
