Commit graph

2 commits

Author SHA1 Message Date
ryoon
36613f5fa9 Update to 0.59
* Fix build with Ruby 2.2.

Changelog:
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 Yusup'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 bfers 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
	addd 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
2015-05-20 13:26:45 +00:00
fhajny
d36a22efb2 Update sqlrelay to 0.55.
A full refactor and split-up into separate packages for the various APIs and backends.

Changelog since 0.43 follows.

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
2014-05-22 12:50:47 +00:00