[pkg-java] r14476 - in trunk/mysql-connector-java: . debian

Torsten Werner twerner at alioth.debian.org
Thu Aug 25 06:58:32 UTC 2011


Author: twerner
Date: 2011-08-25 06:58:31 +0000 (Thu, 25 Aug 2011)
New Revision: 14476

Removed:
   trunk/mysql-connector-java/CHANGES
   trunk/mysql-connector-java/COPYING
   trunk/mysql-connector-java/EXCEPTIONS-CONNECTOR-J
   trunk/mysql-connector-java/README
   trunk/mysql-connector-java/README.txt
   trunk/mysql-connector-java/build.xml
   trunk/mysql-connector-java/debug/
   trunk/mysql-connector-java/docs/
   trunk/mysql-connector-java/src/
Modified:
   trunk/mysql-connector-java/debian/
   trunk/mysql-connector-java/debian/rules
Log:
switch to mergeWithUpstream mode


Deleted: trunk/mysql-connector-java/CHANGES
===================================================================
--- trunk/mysql-connector-java/CHANGES	2011-08-25 05:27:05 UTC (rev 14475)
+++ trunk/mysql-connector-java/CHANGES	2011-08-25 06:58:31 UTC (rev 14476)
@@ -1,3753 +0,0 @@
-# Changelog
-# $Id: CHANGES 6622 2007-10-05 19:05:36Z mmatthews $
-10-09-07 - Version 5.1.5
-
-    - Released instead of 5.1.4 to pickup patch for BUG#31053
-      from 5.0.8.
-      
-10-09-07 - Version 5.1.4 
-
-    - Added "autoSlowLog" configuration property, overrides 
-      "slowQueryThreshold*" properties, driver determines slow
-      queries by those that are slower than 5 * stddev of the mean
-      query time (outside the 96% percentile).
-      
-    - Fixed BUG#28256 - When connection is in read-only mode, 
-      queries that are wrapped in parentheses incorrectly identified 
-      as DML.
-       
-09-07-07 - Version 5.1.3 RC
-
-	- Setting "useBlobToStoreUTF8OutsideBMP" to "true" tells the
-	  driver to treat [MEDIUM/LONG/TINY]BLOB columns as [LONG]VARCHAR
-	  columns holding text encoded in UTF-8 that has characters
-	  outside the BMP (4-byte encodings), which MySQL server
-	  can't handle natively.
-
-	  Set "utf8OutsideBmpExcludedColumnNamePattern" to a regex so that
-	  column names matching the given regex will still be treated
-	  as BLOBs The regex must follow the patterns used for the
-	  java.util.regex package. The default is to exclude no columns,
-	  and include all columns.
-
-	  Set "utf8OutsideBmpIncludedColumnNamePattern" to specify exclusion
-	  rules to "utf8OutsideBmpExcludedColumnNamePattern". The regex must
-	  follow the patterns used for the java.util.regex package.
-
-	- New methods on com.mysql.jdbc.Statement: setLocalInfileInputStream()
-	  and getLocalInfileInputStream().
-
-	  setLocalInfileInputStream() sets an InputStream instance that will be used to send data
-      to the MySQL server for a "LOAD DATA LOCAL INFILE" statement
-      rather than a FileInputStream or URLInputStream that represents
-      the path given as an argument to the statement.
-
-      This stream will be read to completion upon execution of a
-      "LOAD DATA LOCAL INFILE" statement, and will automatically
-      be closed by the driver, so it needs to be reset
-      before each call to execute*() that would cause the MySQL
-      server to request data to fulfill the request for
-      "LOAD DATA LOCAL INFILE".
-
-      If this value is set to NULL, the driver will revert to using
-      a FileInputStream or URLInputStream as required.
-
-      getLocalInfileInputStream() returns the InputStream instance that will be used to send
-      data in response to a "LOAD DATA LOCAL INFILE" statement.
-
-      This method returns NULL if no such stream has been set
-      via setLocalInfileInputStream().
-
-    - The driver now connects with an initial character set
-      of "utf-8" solely for the purposes of authentication to
-      allow usernames and database names in any character set to
-      be used in the JDBC URL.
-
-    - Errors encountered during Statement/PreparedStatement/CallableStatement.executeBatch()
-      when "rewriteBatchStatements" has been set to "true" now return
-      BatchUpdateExceptions according to the setting of "continueBatchOnError".
-      
-      If "continueBatchOnError" is set to "true", the update counts for the
-      "chunk" that were sent as one unit will all be set to EXECUTE_FAILED, but
-      the driver will attempt to process the remainder of the batch. You can determine which
-      "chunk" failed by looking at the update counts returned in the BatchUpdateException.
-      
-      If "continueBatchOnError" is set to "false", the update counts returned
-      will contain the failed "chunk", and stop with the failed chunk, with all 
-      counts for the failed "chunk" set to EXECUTE_FAILED.
-      
-      Since MySQL doesn't return multiple error codes for multiple-statements, or
-      for multi-value INSERT/REPLACE, it is the application's responsibility to handle 
-      determining which item(s) in the "chunk" actually failed.
-      
-    - Statement.setQueryTimeout()s now affect the entire batch for batched 
-      statements, rather than the individual statements that make up the batch.
-      
-06-29-07 - Version 5.1.2 Beta
-
-    - Setting the configuration property "rewriteBatchedStatements"
-      to "true" will now cause the driver to rewrite batched prepared
-      statements with more than 3 parameter sets in a batch into
-      multi-statements (separated by ";") if they are not plain
-      (i.e. without SELECT or ON DUPLICATE KEY UPDATE clauses) INSERT
-      or REPLACE statements.
-
-06-22-07 - Version 5.1.1 Alpha
-
-    - Pulled vendor-extension methods of Connection implementation out
-      into an interface to support java.sql.Wrapper functionality from
-      ConnectionPoolDataSource. The vendor extensions are javadoc'd in
-      the com.mysql.jdbc.Connection interface.
-
-      For those looking further into the driver implementation, it is not
-      an API that is used for plugability of implementations inside our driver
-      (which is why there are still references to ConnectionImpl throughout the
-      code).
-
-      Incompatible change: Connection.serverPrepare(String) has been re-named
-      to Connection.serverPrepareStatement() for consistency with
-      Connection.clientPrepareStatement().
-
-      We've also added server and client prepareStatement() methods that cover
-      all of the variants in the JDBC API.
-
-    - Similar to Connection, we pulled out vendor extensions to Statement
-      into an interface named "com.mysql.Statement", and moved the Statement
-      class into com.mysql.StatementImpl. The two methods (javadoc'd in
-      "com.mysql.Statement" are enableStreamingResults(), which already existed,
-      and disableStreamingResults() which sets the statement instance back to
-      the fetch size and result set type it had before enableStreamingResults()
-      was called.
-
-    - Added experimental support for statement "interceptors" via the
-      com.mysql.jdbc.StatementInterceptor interface, examples are
-      in com/mysql/jdbc/interceptors.
-
-      Implement this interface to be placed "in between" query execution, so that
-      you can influence it. (currently experimental).
-
-      StatementInterceptors are "chainable" when configured by the user, the
-      results returned by the "current" interceptor will be passed on to the next
-      on in the chain, from left-to-right order, as specified by the user in the
-      JDBC configuration property "statementInterceptors".
-
-      See the sources (fully javadoc'd) for com.mysql.jdbc.StatementInterceptor
-      for more details until we iron out the API and get it documented in the
-      manual.
-
-    - Externalized the descriptions of connection properties.
-
-    - The data (and how it's stored) for ResultSet rows are now behind an
-      interface which allows us (in some cases) to allocate less memory
-      per row, in that for "streaming" result sets, we re-use the packet
-      used to read rows, since only one row at a time is ever active.
-
-    - Made it possible to retrieve prepared statement parameter bindings
-      (to be used in StatementInterceptors, primarily).
-
-    - Row navigation now causes any streams/readers open on the result set
-      to be closed, as in some cases we're reading directly from a shared network
-      packet and it will be overwritten by the "next" row.
-
-    - Setting "rewriteBatchedStatements" to "true" now causes CallableStatements
-      with batched arguments to be re-written in the form "CALL (...); CALL (...); ..."
-      to send the batch in as few client-server round trips as possible.
-
-    - Driver now picks appropriate internal row representation (whole row in one
-      buffer, or individual byte[]s for each column value) depending on heuristics,
-      including whether or not the row has BLOB or TEXT types and the overall
-      row-size. The threshold for row size that will cause the driver to
-      use a buffer rather than individual byte[]s is configured by the
-      configuration property "largeRowSizeThreshold", which has a default
-      value of 2KB.
-
-04-11-07 - Version 5.1.0 Alpha
-
-	- Bumped JDBC Specification version number in jar-file manifest.
-
-	- Re-worked Ant buildfile to build JDBC-4.0 classes separately, as well
-	  as support building under Eclipse (since Eclipse can't mix/match JDKs).
-
-	  To build, you must set JAVA_HOME to J2SDK-1.4.2 or Java-5, and set
-	  the following properties on your Ant commandline:
-
-	  com.mysql.jdbc.java6.javac - full path to your Java-6 javac executable
-	  com.mysql.jdbc.java6.rtjar - full path to your Java-6 rt.jar file
-
-	- New feature - driver will automatically adjust session variable
-	  "net_write_timeout" when it determines its been asked for a "streaming"
-	  result, and resets it to the previous value when the result set
-	  has been consumed. (configuration property is named
-	  "netTimeoutForStreamingResults", value has unit of seconds,
-	  the value '0' means the driver will not try and adjust this value).
-
-    - Added support for JDBC-4.0 categorized SQLExceptions.
-
-	- Refactored CommunicationsException into a JDBC3 version, and a JDBC4
-	  version (which extends SQLRecoverableException, now that it exists).
-
-	  This change means that if you were catching
-	  com.mysql.jdbc.CommunicationsException in your applications instead
-	  of looking at the SQLState class of "08", and are moving to Java 6
-	  (or newer), you need to change your imports to that exception
-	  to be com.mysql.jdbc.exceptions.jdbc4.CommunicationsException, as
-	  the old class will not be instantiated for communications link-related
-	  errors under Java 6.
-
-	- Added support for JDBC-4.0's client information. The backend storage
-	  of information provided via Connection.setClientInfo() and retrieved
-	  by Connection.getClientInfo() is pluggable by any class that implements
-	  the com.mysql.jdbc.JDBC4ClientInfoProvider interface and has a no-args
-	  constructor.
-
-	  The implementation used by the driver is configured using the
-	  "clientInfoProvider" configuration property (with a default of value
-	  of "com.mysql.jdbc.JDBC4CommentClientInfoProvider", an implementation
-	  which lists the client info as a comment prepended to every query
-	  sent to the server).
-
-	  This functionality is only available when using Java-6 or newer.
-
-	- Added support for JDBC-4.0's SQLXML interfaces.
-
-	- Added support for JDBC-4.0's Wrapper interface.
-
-	- Added support for JDBC-4.0's NCLOB, and NCHAR/NVARCHAR types.
-
-10-09-07 - Version 5.0.8
-
-    - Fixed BUG#30550, executeBatch() would fail with an ArithmeticException
-      and/or NullPointerException when the batch had zero members and
-      "rewriteBatchedStatements" was set to "true" for the connection.
-    
-    - Added two configuration parameters (both default to "false")
-    
-            * blobsAreStrings  - Should the driver always treat BLOBs as Strings 
-                                 specifically to work around dubious metadata returned 
-                                 by the server for GROUP BY clauses?
-            
-            * functionsNeverReturnBlobs - Should the driver always treat data from 
-                                          functions returning BLOBs as Strings - 
-                                          specifically to work around dubious metadata 
-                                          returned by the server for GROUP BY clauses?
-
-    - Fixed BUG#29106 - Connection checker for JBoss didn't use same method parameters
-      via reflection, causing connections to always seem "bad".
-      
-    - Fixed BUG#30664 - Note that this fix only works for MySQL server 
-      versions 5.0.25 and newer, since earlier versions didn't consistently 
-      return correct metadata for functions, and thus results from 
-      subqueries and functions were indistinguishable from each other, 
-      leading to type-related bugs.
-
-    - Fixed BUG#28972 - DatabaseMetaData.getTypeInfo() for the types DECIMAL
-      and NUMERIC will return a precision of 254 for server versions older than
-      5.0.3, 64 for versions 5.0.3-5.0.5 and 65 for versions newer than 5.0.5.
-    
-    - Fixed BUG#29852 - Closing a load-balanced connection would cause a
-      ClassCastException.
-    
-    - Fixed BUG#27867 - Schema objects with identifiers other than
-      the connection character aren't retrieved correctly in 
-      ResultSetMetadata.
-      
-    - Fixed BUG#28689 - CallableStatement.executeBatch() doesn't work when 
-      connection property "noAccessToProcedureBodies" has been set to "true".
-     
-      The fix involves changing the behavior of "noAccessToProcedureBodies",in 
-      that the driver will now report all paramters as "IN" paramters
-      but allow callers to call registerOutParameter() on them without throwing
-      an exception.
-      
-    - Fixed BUG#27182 - Connection.getServerCharacterEncoding() doesn't work
-      for servers with version >= 4.1.
-
-    - Fixed BUG#27915 - DatabaseMetaData.getColumns() doesn't
-      contain SCOPE_* or IS_AUTOINCREMENT columns.
-
-    - Fixed BUG#30851, NPE with null column values when
-      "padCharsWithSpace" is set to "true".
-    
-    - Specifying a "validation query" in your connection pool 
-      that starts with "/* ping */" _exactly_ will cause the driver to 
-      instead send a ping to the server and return a fake result set (much 
-      lighter weight), and when using a ReplicationConnection or a LoadBalancedConnection, 
-      will send the ping across all active connections.
-      
-    - Fixed Bug#30892 setObject(int, Object, int, int) delegate in
-      PreparedStatmentWrapper delegates to wrong method.
-      
-    - XAConnections now start in auto-commit mode (as per JDBC-4.0 specification
-      clarification).
-     
-    - Fixed Bug#27412 - cached metadata with PreparedStatement.execute()
-      throws NullPointerException.
-      
-    - Driver will now fall back to sane defaults for max_allowed_packet and
-      net_buffer_length if the server reports them incorrectly (and will log
-      this situation at WARN level, since it's actually an error condition).
-    
-    - Fixed BUG#27916 - UNSIGNED types not reported via DBMD.getTypeInfo(), and 
-      capitalization of type names is not consistent between DBMD.getColumns(), 
-      RSMD.getColumnTypeName() and DBMD.getTypeInfo().
-
-      This fix also ensures that the precision of UNSIGNED MEDIUMINT
-      and UNSIGNED BIGINT is reported correctly via DBMD.getColumns().
-
-    - Fixed BUG#31053 - Connections established using URLs of the form
-      "jdbc:mysql:loadbalance://" weren't doing failover if they tried to 
-      connect to a MySQL server that was down. The driver now attempts
-      connections to the next "best" (depending on the load balance strategy
-      in use) server, and continues to attempt connecting to the next "best"
-      server every 250 milliseconds until one is found that is up and running 
-      or 5 minutes has passed.
-      
-      If the driver gives up, it will throw the last-received SQLException.
-      
-07-19-07 - Version 5.0.7
-
-    - Setting the configuration parameter "useCursorFetch" to "true" for
-      MySQL-5.0+ enables the use of cursors that allow Connector/J to save
-      memory by fetching result set rows in chunks (where the chunk size
-      is set by calling setFetchSize() on a Statement or ResultSet) by
-      using fully-materialized cursors on the server.
-
-      The driver will will now automatically set "useServerPrepStmts" to
-      "true" when "useCursorFetch" has been set to "true", since the feature
-      requires server-side prepared statements in order to function.
-
-	- Fixed BUG#28469 - PreparedStatement.getMetaData() for statements
-	  containing leading one-line comments is not returned correctly.
-
-	  As part of this fix, we also overhauled detection of DML for
-	  executeQuery() and SELECTs for executeUpdate() in plain and
-	  prepared statements to be aware of the same  types of comments.
-
-    - Added configuration property "useNanosForElapsedTime" - for
-      profiling/debugging functionality that measures elapsed time,
-      should the driver try to use nanoseconds resolution if available
-      (requires JDK >= 1.5)?
-
-    - Added configuration property "slowQueryThresholdNanos" - if
-      "useNanosForElapsedTime" is set to "true", and this property
-      is set to a non-zero value the driver will use this threshold
-      (in nanosecond units) to determine if a query was slow, instead
-      of using millisecond units.
-
-      Note, that if "useNanosForElapsedTime" is set to "true", and this
-      property is set to "0" (or left default), then elapsed times will
-      still be measured in nanoseconds (if possible), but the slow query
-      threshold will be converted from milliseconds to nanoseconds, and thus
-      have an upper bound of approximately 2000 millesconds (as that threshold
-      is represented as an integer, not a long).
-
-	- Added configuration properties to allow tuning of TCP/IP socket
-	  parameters:
-
-	  	"tcpNoDelay" - Should the driver set SO_TCP_NODELAY (disabling the
-	  	               Nagle Algorithm, default "true")?
-
-		"tcpKeepAlive" - Should the driver set SO_KEEPALIVE (default "true")?
-
-		"tcpRcvBuf" - Should the driver set SO_RCV_BUF to the given value?
-		              The default value of '0', means use the platform default
-		              value for this property.
-
-		"tcpSndBuf" - Should the driver set SO_SND_BUF to the given value?
-		              The default value of '0', means use the platform default
-		              value for this property.
-
-		"tcpTrafficClass" - Should the driver set traffic class or
-		                    type-of-service fields? See the documentation
-		                    for java.net.Socket.setTrafficClass() for more
-		                    information.
-
-	- Give more information in EOFExceptions thrown out of MysqlIO (how many
-	  bytes the driver expected to read, how many it actually read, say that
-	  communications with the server were unexpectedly lost).
-
-	- Setting "useDynamicCharsetInfo" to "false" now causes driver to use
-	  static lookups for collations as well (makes
-	  ResultSetMetadata.isCaseSensitive() much more efficient, which leads
-	  to performance increase for ColdFusion, which calls this method for
-	  every column on every table it sees, it appears).
-
-	- Driver detects when it is running in a ColdFusion MX server (tested
-	  with version 7), and uses the configuration bundle "coldFusion",
-	  which sets useDynamicCharsetInfo to "false" (see previous entry), and
-	  sets useLocalSessionState and autoReconnect to "true".
-
-	- Fixed BUG#28851 - parser in client-side prepared statements
-	  eats character following '/' if it's not a multi-line comment.
-
-	- Fixed BUG#28956 - parser in client-side prepared statements
-	  runs to end of statement, rather than end-of-line for '#' comments.
-
-	  Also added support for '--' single-line comments.
-
-	- Don't send any file data in response to LOAD DATA LOCAL INFILE
-	  if the feature is disabled at the client side. This is to prevent
-	  a malicious server or man-in-the-middle from asking the client for
-	  data that the client is not expecting. Thanks to Jan Kneschke for
-	  discovering the exploit and Andrey "Poohie" Hristov, Konstantin Osipov
-	  and Sergei Golubchik for discussions about implications and possible
-	  fixes. This fixes BUG 29605 for JDBC.
-
-	- Added new debugging functionality - Setting configuration property
-	  "includeInnodbStatusInDeadlockExceptions" to "true" will cause the driver
-	  to append the output of "SHOW ENGINE INNODB STATUS" to deadlock-related
-	  exceptions, which will enumerate the current locks held inside InnoDB.
-
-05-15-07 - Version 5.0.6
-
-	- Fixed BUG#25545 - Client options not sent correctly when using SSL,
-	  leading to stored procedures not being able to return results. Thanks
-	  to Don Cohen for the bug report, testcase and patch.
-
-	- Fixed BUG#26592 - PreparedStatement is not closed in
-	  BlobFromLocator.getBytes().
-
-	- Fixed BUG#25624 - Whitespace surrounding storage/size specifiers in
-	  stored procedure parameters declaration causes NumberFormatException to
-	  be thrown when calling stored procedure on JDK-1.5 or newer, as the Number
-	  classes in JDK-1.5+ are whitespace intolerant.
-
-	- Fixed BUG#26173 - When useCursorFetch=true, sometimes server would return
-	  new, more exact metadata during the execution of the server-side prepared
-	  statement that enables this functionality, which the driver ignored (using
-	  the original metadata returned during prepare()), causing corrupt reading
-	  of data due to type mismatch when the actual rows were returned.
-
-	- Fixed BUG#26959 - comments in DDL of stored procedures/functions confuse
-	  procedure parser, and thus metadata about them can not be created, leading to
-	  inability to retrieve said metadata, or execute procedures that have certain
-	  comments in them.
-
-	- Give better error message when "streaming" result sets, and the connection
-	  gets clobbered because of exceeding net_write_timeout on the server. (which is
-	  basically what the error message says too).
-
-	- Fixed BUG#26789 - fast date/time parsing doesn't take into
-	  account 00:00:00 as a legal value.
-
-	- Fixed BUG#27317 - ResultSet.get*() with a column index < 1 returns
-	  misleading error message.
-
-	- Fixed BUG#25517 - Statement.setMaxRows() is not effective on result
-	  sets materialized from cursors.
-
-	- New configuration property, "enableQueryTimeouts" (default "true").
-	  When enabled, query timeouts set via Statement.setQueryTimeout() use a
-	  shared java.util.Timer instance for scheduling. Even if the timeout
-	  doesn't expire before the query is processed, there will be
-	  memory used by the TimerTask for the given timeout which won't be
-	  reclaimed until the time the timeout would have expired if it
-	  hadn't been cancelled by the driver. High-load environments
-	  might want to consider disabling this functionality. (this configuration
-	  property is part of the "maxPerformance" configuration bundle).
-
-	- Fixed BUG#27400 - CALL /* ... */ some_proc() doesn't work. As a side effect
-	  of this fix, you can now use /* */ and # comments when preparing statements using
-	  client-side prepared statement emulation.
-
-	  If the comments happen to contain parameter markers '?', they will be treated
-	  as belonging to the comment (i.e. not recognized) rather than being a parameter
-	  of the statement.
-
-	  Note that the statement when sent to the server will contain the comments
-	  as-is, they're not stripped during the process of preparing the PreparedStatement
-	  or CallableStatement.
-
-	- Fixed BUG#25328 - BIT(> 1) is returned as java.lang.String from ResultSet.getObject()
-	  rather than byte[].
-
-	- Fixed BUG#25715 - CallableStatements with OUT/INOUT parameters that
-	  are "binary" (blobs, bits, (var)binary, java_object) have extra 7 bytes
-	  (which happens to be the _binary introducer!)
-
-	- Added configuration property "padCharsWithSpace" (defaults to "false"). If set
-	  to "true", and a result set column has the CHAR type and the value does not
-	  fill the amount of characters specified in the DDL for the column, the driver
-	  will pad the remaining characters with space (for ANSI compliance).
-
-	- Fixed BUG#27655 - Connection.getTransactionIsolation() uses
-	  "SHOW VARIABLES LIKE" which is very inefficient on MySQL-5.0+
-
-	- Added configuration property "useDynamicCharsetInfo". If set to "false"
-	  (the default), the driver will use a per-connection cache of character set
-	  information queried from the server when necessary, or when set to "true",
-	  use a built-in static mapping that is more efficient, but isn't aware of
-	  custom character sets or character sets implemented after the release of
-	  the JDBC driver.
-
-	  Note: this only affects the "padCharsWithSpace" configuration property and the
-            ResultSetMetaData.getColumnDisplayWidth() method.
-
-	- More intelligent initial packet sizes for the "shared" packets are used
-	  (512 bytes, rather than 16K), and initial packets used during handshake are
-	  now sized appropriately as to not require reallocation.
-
-	- Fixed issue where calling getGeneratedKeys() on a prepared statement after
-	  calling execute() didn't always return the generated keys (executeUpdate()
-	  worked fine however).
-
-	- Fixed issue where a failed-over connection would let an application call
-	  setReadOnly(false), when that call should be ignored until the connection
-	  is reconnected to a writable master unless "failoverReadOnly" had been set
-	  to "false".
-
-	- Fixed BUG#28085 - Generate more useful error messages for diagnostics
-	  when the driver thinks a result set isn't updatable. (Thanks to Ashley Martens
-	  for the patch).
-
-	- Driver will now use INSERT INTO ... VALUES (DEFAULT) form of statement
-	  for updatable result sets for ResultSet.insertRow(), rather than
-	  pre-populating the insert row with values from DatabaseMetaData.getColumns()
-	  (which results in a "SHOW FULL COLUMNS" on the server for every result
-	  set). If an application requires access to the default values before
-	  insertRow() has been called, the JDBC URL should be configured with
-	  "populateInsertRowWithDefaultValues" set to "true".
-
-	  This fix specifically targets performance issues with ColdFusion and the
-	  fact that it seems to ask for updatable result sets no matter what the
-	  application does with them.
-
-	- com.mysql.jdbc.[NonRegistering]Driver now understands URLs of the format
-	  "jdbc:mysql:replication://" and "jdbc:mysql:loadbalance://" which will
-	  create a ReplicationConnection (exactly like when
-	  using [NonRegistering]ReplicationDriver) and an experimenal load-balanced
-	  connection designed for use with SQL nodes in a MySQL Cluster/NDB environment,
-	  respectively.
-
-	  In an effort to simplify things, we're working on deprecating multiple
-	  drivers, and instead specifying different core behavior based upon JDBC URL
-	  prefixes, so watch for [NonRegistering]ReplicationDriver to eventually
-	  disappear, to be replaced with com.mysql.jdbc[NonRegistering]Driver with
-	  the new URL prefix.
-
-	- Added an experimental load-balanced connection designed for use with SQL nodes
-      in a MySQL Cluster/NDB environment (This is not for master-slave replication.
-      For that, we suggest you look at ReplicationConnection or "lbpool").
-
-	  If the JDBC URL starts with "jdbc:mysql:loadbalance://host-1,host-2,...host-n",
-	  the driver will create an implementation of java.sql.Connection that load
-	  balances requests across a series of MySQL JDBC connections to the given hosts,
-	  where the balancing takes place after transaction commit.
-
-      Therefore, for this to work (at all), you must use transactions, even if only
-      reading data.
-
-      Physical connections to the given hosts will not be created until needed.
-
-      The driver will invalidate connections that it detects have had
-      communication errors when processing a request. A new connection to the
-      problematic host will be attempted the next time it is selected by the load
-      balancing algorithm.
-
-      There are two choices for load balancing algorithms, which may be specified
-      by the "loadBalanceStrategy" JDBC URL configuration property:
-
-      * "random" - the driver will pick a random host for each request. This tends
-        to work better than round-robin, as the randomness will somewhat account for
-        spreading loads where requests vary in response time, while round-robin
-        can sometimes lead to overloaded nodes if there are variations in response times
-        across the workload.
-
-      * "bestResponseTime" - the driver will route the request to the host that had
-        the best response time for the previous transaction.
-
-    - When "useLocalSessionState" is set to "true" and connected to a MySQL-5.0 or
-      later server, the JDBC driver will now determine whether an actual "commit" or
-      "rollback" statement needs to be sent to the database when Connection.commit()
-      or Connection.rollback() is called.
-
-      This is especially helpful for high-load situations with connection pools that
-      always call Connection.rollback() on connection check-in/check-out because it
-      avoids a round-trip to the server.
-
-03-01-07 - Version 5.0.5
-
-    - Fixed BUG#23645 - Some collations/character sets reported as "unknown"
-	  (specifically cias variants of existing character sets), and inability to override
-	  the detected server character set.
-
-	- Performance enhancement of initial character set configuration, driver
-      will only send commands required to configure connection character set
-      session variables if the current values on the server do not match
-      what is required.
-
-    - Fixed BUG#24360 .setFetchSize() breaks prepared SHOW and other commands.
-
-    - Fixed BUG#24344 - useJDBCCompliantTimezoneShift with server-side prepared
-	  statements gives different behavior than when using client-side prepared
-	  statements. (this is now fixed if moving from server-side prepared statements
-	  to client-side prepared statements by setting "useSSPSCompatibleTimezoneShift" to
-	  true", as the driver can't tell if this is a new deployment that never used
-	  server-side prepared statements, or if it is an existing deployment that is
-	  switching to client-side prepared statements from server-side prepared statements.
-
-    - Fixed BUG#23304 - DBMD using "show" and DBMD using information_schema do
-      not return results consistent with each other. (note this fix only
-      addresses the inconsistencies, not the issue that the driver is
-      treating schemas differently than some users expect. We will revisit
-      this behavior when there is full support for schemas in MySQL).
-
-    - Fixed BUG#25073 - rewriting batched statements leaks internal statement
-	  instances, and causes a memory leak.
-
-	- Fixed issue where field-level for metadata from DatabaseMetaData when using
-	  INFORMATION_SCHEMA didn't have references to current connections,
-	  sometimes leading to NullPointerExceptions when intropsecting them via
-	  ResultSetMetaData.
-
-	- Fixed BUG#25025 - Client-side prepared statement parser gets confused by
-	  in-line (/* ... */) comments and therefore can't rewrite batched statements
-	  or reliably detect type of statements when they're used.
-
-	- Fixed BUG#24065 - Better error message when server doesn't return enough
-	  information to determine stored procedure/function parameter types.
-
-	- Fixed BUG#21438 - Driver sending nanoseconds to server for timestamps when
-	  using server-side prepared statements, when server expects microseconds.
-
-	- Fixed BUG#25514 - Timer instance used for Statement.setQueryTimeout()
-	  created per-connection, rather than per-VM, causing memory leak
-
-	- Fixed BUG#25009 - Results from updates not handled correctly in
-	  multi-statement queries, leading to erroneous "Result is from UPDATE"
-	  exceptions.
-
-	- Fixed BUG#25047 - StringUtils.indexOfIgnoreCaseRespectQuotes() isn't
-	  case-insensitive on the first character of the target. This bug broke
-	  rewriteBatchedStatements functionality when prepared statements don't
-	  use upper-case for the VALUES clause in their statements.
-
-	- Fixed BUG#21480 - Some exceptions thrown out of StandardSocketFactory
-	  were needlessly wrapped, obscurring their true cause, especially when
-	  using socket timeouts.
-
-	- Fixed BUG#23303 - DatabaseMetaData.getSchemas() doesn't return a
-	  TABLE_CATALOG column.
-
-    - Fixed BUG#25399 - EscapeProcessor gets confused by multiple
-      backslashes. We now push the responsibility of syntax errors back
-      on to the server for most escape sequences.
-
-	- Fixed BUG#25379 - INOUT parameters in CallableStatements get
-	  doubly-escaped.
-
-	- Removed non-short-circuited logical ORs from "if" statements.
-
-	- Re-worked stored procedure parameter parser to be more robust. Driver no
-	  longer requires "BEGIN" in stored procedure definition, but does have
-	  requirement that if a stored function begins with a label directly after the
-	  "returns" clause, that the label is not a quoted identifier.
-    - Reverted back to internal character conversion routines for single-byte
-      character sets, as the ones internal to the JVM are using much more CPU
-      time than our internal implementation.
-
-	- Changed cached result set metadata (when using
-	  "cacheResultSetMetadata=true") to be cached per-connection rather
-	  than per-statement as previously implemented.
-
-	- Use a java.util.TreeMap to map column names to ordinal indexes for
-	  ResultSet.findColumn() instead of a HashMap. This allows us to have
-	  case-insensitive lookups (required by the JDBC specification) without
-	  resorting to the many transient object instances needed to support this
-	  requirement with a normal HashMap with either case-adjusted keys, or
-	  case-insensitive keys. (In the worst case scenario for lookups of a 1000
-	  column result set, TreeMaps are about half as fast wall-clock time as
-	  a HashMap, however in normal applications their use gives many orders
-	  of magnitude reduction in transient object instance creation which pays
-	  off later for CPU usage in garbage collection).
-
-	- Avoid static synchronized code in JVM class libraries for dealing with
-	  default timezones.
-
-	- Fixed cases where ServerPreparedStatements weren't using cached metadata
-	  when "cacheResultSetMetadata=true" was configured.
-
-	- Use faster datetime parsing for ResultSets that come from plain or
-	  non-server-side prepared statements. (Enable old implementation with
-	  "useFastDateParsing=false" as a configuration parameter).
-
-	- Fixed BUG#24794 - DatabaseMetaData.getSQLKeywords() doesn't return
-	  all reserved words for current MySQL version. The current fix/implementation
-	  returns keywords for MySQL-5.1, and doesn't distinguish between different
-	  versions of the server.
-
-	- When using cached metadata, skip field-level metadata packets coming from
-	  the server, rather than reading them and discarding them without creating
-	  com.mysql.jdbc.Field instances.
-
-	- Fixed BUG#25836 - Statement execution which timed out doesn't always
-	  throw MySQLTimeoutException.
-
-	- Throw exceptions encountered during timeout to thread
-	  calling Statement.execute*(), rather than RuntimeException.
-
-	- Added configuration property "localSocketAddress",which is the hostname or
-	  IP address given to explicitly configure the interface that the driver will
-	  bind the client side of the TCP/IP connection to when connecting.
-
-	- Take "localSocketAddress" property into account when creating instances
-	  of CommunicationsException when the underyling exception is a
-	  java.net.BindException, so that a friendlier error message is given with
-	  a little internal diagnostics.
-
-	- Fixed some NPEs when cached metadata was used with UpdatableResultSets.
-
-	- The "rewriteBatchedStatements" feature can now be used with server-side
-	  prepared statements.
-
-	- Fixed BUG#26326 - Connection property "socketFactory" wasn't exposed via
-	  correctly named mutator/accessor, causing data source implementations that
-	  use JavaBean naming conventions to set properties to fail to set the property
-	  (and in the case of SJAS, fail silently when trying to set this parameter).
-
-	- Fixed BUG#25787 - java.util.Date should be serialized for
-	  PreparedStatement.setObject().
-
-	  We've added a new configuration option "treatUtilDateAsTimestamp", which is
-	  false by default, as (1) We already had specific behavior to treat
-	  java.util.Date as a java.sql.Timestamp because it's useful to many folks,
-	  and (2) that behavior will very likely be required for drivers JDBC-post-4.0.
-
-    - Fixed BUG#22628 - Driver.getPropertyInfo() throws NullPointerException for
-      URL that only specifies host and/or port.
-
-	- Fixed BUG#21267, ParameterMetaData throws NullPointerException when
-	  prepared SQL actually has a syntax error. Added
-	  "generateSimpleParameterMetadata" configuration property, which when set
-	  to "true" will generate metadata reflecting VARCHAR for every parameter
-	  (the default is "false", which will cause an exception to be thrown if no
-	  parameter metadata for the statement is actually available).
-
-	- When extracting foreign key information from "SHOW CREATE TABLE " in
-	  DatabaseMetaData, ignore exceptions relating to tables being missing
-	  (which could happen for cross-reference or imported-key requests, as
-	  the list of tables is generated first, then iterated).
-
-	- Fixed logging of XA commands sent to server, it's now configurable
-	  via "logXaCommands" property (defaults to "false").
-
-	- Fixed issue where XADataSources couldn't be bound into JNDI,
-	  as the DataSourceFactory didn't know how to create instances
-	  of them.
-
-	- Fixed issue where XADataSources couldn't be bound into JNDI,
-	  as the DataSourceFactory didn't know how to create instances
-	  of them.
-
-	- Usage advisor will now issue warnings for result sets with large numbers
-	  of rows (size configured by "resultSetSizeThreshold" property, default
-	  value is 100).
-
-10-20-06 - Version 5.0.4
-
-    - Fixed BUG#21379 - column names don't match metadata in cases
-      where server doesn't return original column names (column functions)
-	  thus breaking compatibility with applications that expect 1-1 mappings
-	  between findColumn() and rsmd.getColumnName(), usually manifests itself
-	  as "Can't find column ('')" exceptions.
-
-    - Fixed BUG#21544 - When using information_schema for metadata,
-	  COLUMN_SIZE for getColumns() is not clamped to range of
-	  java.lang.Integer as is the case when not using
-	  information_schema, thus leading to a truncation exception that
-	  isn't present when not using information_schema.
-
-    - Fixed configuration property "jdbcCompliantTruncation" was not
-      being used for reads of result set values.
-
-    - Fixed BUG#22024 - Newlines causing whitespace to span confuse
-	  procedure parser when getting parameter metadata for stored
-	  procedures.
-
-	- Driver now supports {call sp} (without "()" if procedure has no
-	  arguments).
-
-	- Fixed BUG#22359 - Driver was using milliseconds for
-	  Statement.setQueryTimeout() when specification says argument is
-	  to be in seconds.
-
-	- Workaround for server crash when calling stored procedures
-	  via a server-side prepared statement (driver now detects
-	  prepare(stored procedure) and substitutes client-side prepared
-	  statement), addresses BUG#22297.
-
-	- Added new _ci collations to CharsetMapping, fixing
-	  Bug#22456 - utf8_unicode_ci not working.
-
-	- Fixed BUG#22290 - Driver issues truncation on write exception when
-	  it shouldn't (due to sending big decimal incorrectly to server with
-	  server-side prepared statement).
-
-	- Fixed BUG#22613 - DBMD.getColumns() does not return expected
-	  COLUMN_SIZE for the SET type, now returns length of largest possible
-	  set disregarding whitespace or the "," delimitters to be consistent
-	  with the ODBC driver.
-
-	- Driver now sends numeric 1 or 0 for client-prepared statement
-	  setBoolean() calls instead of '1' or '0'.
-
-	- DatabaseMetaData correctly reports true for supportsCatalog*()
-	  methods.
-
-07-26-06 - Version 5.0.3
-
-    - Fixed BUG#20650 - Statement.cancel() causes NullPointerException
-      if underlying connection has been closed due to server failure.
-
-    - Added configuration option "noAccessToProcedureBodies" which will
-      cause the driver to create basic parameter metadata for
-      CallableStatements when the user does not have access to procedure
-      bodies via "SHOW CREATE PROCEDURE" or selecting from mysql.proc
-      instead of throwing an exception. The default value for this option
-      is "false".
-
-07-11-06 - Version 5.0.2-beta (5.0.1 not released due to packaging error)
-
-    - Fixed BUG#17401 - Can't use XAConnection for local transactions when
-      no global transaction is in progress.
-
-    - Fixed BUG#18086 - Driver fails on non-ASCII platforms. The driver
-      was assuming that the platform character set would be a superset
-      of MySQL's "latin1" when doing the handshake for authentication,
-      and when reading error messages. We now use Cp1252 for all strings
-      sent to the server during the handshake phase, and a hard-coded mapping
-      of the "language" server variable to the character set that
-      is used for error messages.
-
-    - Fixed BUG#19169 - ConnectionProperties (and thus some
-	  subclasses) are not serializable, even though some J2EE containers
-	  expect them to be.
-
-	- Fixed BUG#20242 - MysqlValidConnectionChecker for JBoss doesn't
-	  work with MySQLXADataSources.
-
-	- Better caching of character set converters (per-connection)
-	  to remove a bottleneck for multibyte character sets.
-
-	- Added connection/datasource property  "pinGlobalTxToPhysicalConnection"
-	  (defaults to "false"). When set to "true", when using XAConnections, the
-	  driver ensures that operations on a given XID are always routed to the
-	  same physical connection. This allows the XAConnection to support
-	  "XA START ... JOIN" after "XA END" has been called, and is also a
-	  workaround for transaction managers that don't maintain thread affinity
-	  for a global transaction (most either always maintain thread affinity,
-	  or have it as a configuration option).
-
-	- MysqlXaConnection.recover(int flags) now allows combinations of
-	  XAResource.TMSTARTRSCAN and TMENDRSCAN. To simulate the "scanning"
-	  nature of the interface, we return all prepared XIDs for TMSTARTRSCAN,
-	  and no new XIDs for calls with TMNOFLAGS, or TMENDRSCAN when not in
-	  combination with TMSTARTRSCAN. This change was made for API compliance,
-	  as well as integration with IBM WebSphere's transaction manager.
-
-12-23-05 - Version 5.0.0-beta
-
-    - XADataSource implemented (ported from 3.2 branch which won't be
-      released as a product). Use
-      "com.mysql.jdbc.jdbc2.optional.MysqlXADataSource" as your datasource
-      class name in your application server to utilize XA transactions
-      in MySQL-5.0.10 and newer.
-
-    - PreparedStatement.setString() didn't work correctly when
-      sql_mode on server contained NO_BACKSLASH_ESCAPES, and no characters
-      that needed escaping were present in the string.
-
-    - Attempt detection of the MySQL type "BINARY" (it's an alias, so this isn't
-      always reliable), and use the java.sql.Types.BINARY type mapping for it.
-
-    - Moved -bin-g.jar file into separate "debug" subdirectory to avoid confusion.
-
-    - Don't allow .setAutoCommit(true), or .commit() or .rollback() on an XA-managed
-      connection as-per the JDBC specification.
-
-    - If the connection "useTimezone" is set to "true", then also respect timezone
-      conversions in escape-processed string literals (e.g. "{ts ...}" and
-      "{t ...}").
-
-    - Return original column name for RSMD.getColumnName() if the column was aliased,
-      alias name for .getColumnLabel() (if aliased), and original table name
-      for .getTableName(). Note this only works for MySQL-4.1 and newer, as
-      older servers don't make this information available to clients.
-
-    - Setting "useJDBCCompliantTimezoneShift=true" (it's not the default)
-      causes the driver to use GMT for _all_ TIMESTAMP/DATETIME timezones,
-      and the current VM timezone for any other type that refers to timezones.
-      This feature can not be used when "useTimezone=true" to convert between
-      server and client timezones.
-
-    - Add one level of indirection of internal representation of CallableStatement
-      parameter metadata to avoid class not found issues on JDK-1.3 for
-      ParameterMetadata interface (which doesn't exist prior to JDBC-3.0).
-
-    - Added unit tests for XADatasource, as well as friendlier exceptions
-      for XA failures compared to the "stock" XAException (which has no
-      messages).
-
-    - Fixed BUG#14279 - Idle timeouts cause XAConnections to whine about rolling
-      themselves back
-
-    - Added support for Connector/MXJ integration via url subprotocol
-      "jdbc:mysql:mxj://....".
-
-    - Moved all SQLException constructor usage to a factory in SQLError
-      (ground-work for JDBC-4.0 SQLState-based exception classes).
-
-    - Removed Java5-specific calls to BigDecimal constructor (when
-      result set value is '', (int)0 was being used as an argument
-      in-directly via method return value. This signature doesn't exist
-      prior to Java5.)
-
-    - Moved all SQLException creation to a factory method in SQLError,
-      groundwork for JDBC-4.0 SQLState class-based exceptions.
-
-    - Added service-provider entry to META-INF/services/java.sql.Driver
-      for JDBC-4.0 support.
-
-    - Return "[VAR]BINARY" for RSMD.getColumnTypeName() when that is actually
-      the type, and it can be distinguished (MySQL-4.1 and newer).
-
-    - When fix for BUG#14562 was merged from 3.1.12, added functionality
-      for CallableStatement's parameter metadata to return correct
-      information for .getParameterClassName().
-
-    - Fuller synchronization of Connection to avoid deadlocks when
-      using multithreaded frameworks that multithread a single connection
-      (usually not recommended, but the JDBC spec allows it anyways),
-      part of fix to BUG#14972).
-
-    - Implementation of Statement.cancel() and Statement.setQueryTimeout().
-      Both require MySQL-5.0.0 or newer server, require a separate connection
-      to issue the "KILL QUERY" command, and in the case of setQueryTimeout()
-      creates an additional thread to handle the timeout functionality.
-
-      Note: Failures to cancel the statement for setQueryTimeout() may manifest
-      themselves as RuntimeExceptions rather than failing silently, as there
-      is currently no way to unblock the thread that is executing the query being
-      cancelled due to timeout expiration and have it throw the exception
-      instead.
-
-    - Removed dead code in com.mysql.jdbc.Connection.
-
-    - Made construction of com.mysql.jdbc.Field (result set metadata)
-      instances more efficient for non-string types by not doing
-      character set initialization, or detection of type changes due to
-      temporary tables.
-
-    - Removed redundant code in com.mysql.jdbc.MysqlIO.
-
-    - Removed work done for BUG#14652, and instead loosened synchronization
-      to solve a number of deadlock issues in BUG#18719, BUG#18367, BUG#17709
-      and BUG#15067. New strategy basically makes Connection instances threadsafe
-      and thus shareable across threads, and anything else threadsafe, but not
-      necessarily shareable across threads due to JDBC API interactions that
-      can cause non-obvious behavior and/or deadlock scenarios to occur since
-      the API is not designed to be used from multiple threads at once.
-
-      Therefore, unless external synchronization is provided, clients should
-      not allow multiple threads to share a given statement or result set. Examples
-      of issues with the API itself not being multi-thread suitable include,
-      but are not limited to race conditions between modifiers and execution and
-      retrieval methods on statements and result sets that are not synchronizable
-      such as ResultSet.get*() and traversal methods, or Statement.execute*() closing
-      result sets without effectively making the driver itself serializable across the
-      board.
-
-      These changes should not have any effect on "normal" J(2)EE use cases
-      where only one thread ever uses a connection instance and the objects created by
-      it.
-
-    - Use a java.util.Timer to schedule cancellation of queries via
-      Statement.setQueryTimeout() rather than one thread per potential cancellation.
-
-      A new thread will be used to actually cancel a running query, as there's potential
-      for a cancel request to block other cancel requests if all run from the
-      same thread.
-
-nn-nn-07 - Version 3.1.15
-
-	- Fixed BUG#23281 - Downed slave caused round-robin load balance to
-	  not cycle back to first host in list.
-
-	- Disabled use of server-side prepared statements by default.
-
-	- Handle YYYY-MM-DD hh:mm:ss format of timestamp in
-	  ResultSet.getTimeFromString().
-
-	- Fixed BUG#24840 - character encoding of "US-ASCII" doesn't map correctly
-	  for 4.1 or newer
-
-	- Added Implementation-Vendor-Id attribute to jar manifest per request
-	  in BUG#15641.
-
-	- C3P0 >= version 0.9.1 passes non-proxied connections to
-	  MysqlConnectionTester,  thus it began throwing ClassCastExceptions.
-	  MysqlConnectionTester now checks if it has a plain Connection and uses
-	  that if possible. Thanks to Brian Skrab for the fix.
-
-10-19-06 - Version 3.1.14
-
-    - Fixed BUG#20479 - Updatable result set throws ClassCastException
-	  when there is row data and moveToInsertRow() is called.
-
-	- Fixed BUG#20485 - Updatable result set that contains
-	  a BIT column fails when server-side prepared statements are used.
-
-	- Fixed BUG#16987 - Memory leak with profileSQL=true.
-
-	- Fixed BUG#19726 - Connection fails to localhost when using
-	  timeout and IPv6 is configured.
-
-	- Fixed BUG#16791 - NullPointerException in MysqlDataSourceFactory
-	  due to Reference containing RefAddrs with null content.
-
-	- Fixed BUG#20306 - ResultSet.getShort() for UNSIGNED TINYINT
-	  returns incorrect values when using server-side prepared statements.
-
-	- Fixed BUG#20687 - Can't pool server-side prepared statements, exception
-	  raised when re-using them.
-
-	- Fixed BUG#21062 - ResultSet.getSomeInteger() doesn't work for BIT(>1).
-
-	- Fixed BUG#18880 - ResultSet.getFloatFromString() can't retrieve
-	  values near Float.MIN/MAX_VALUE.
-
-	- Fixed BUG#20888 - escape of quotes in client-side prepared
-	  statements parsing not respected. Patch covers more than bug report,
-	  including NO_BACKSLASH_ESCAPES being set, and stacked quote characters
-	  forms of escaping (i.e. '' or "").
-
-	- Fixed BUG#19993 - ReplicationDriver does not always round-robin load
-	  balance depending on URL used for slaves list.
-
-	- Fixed calling toString() on ResultSetMetaData for driver-generated
-	  (i.e. from DatabaseMetaData method calls, or from getGeneratedKeys())
-	  result sets would raise a NullPointerException.
-
-	- Fixed Bug#21207 - Driver throws NPE when tracing prepared statements that
-	  have been closed (in asSQL()).
-
-	- Removed logger autodectection altogether, must now specify logger
-	  explitly if you want to use a logger other than one that logs
-	  to STDERR.
-
-	- Fixed BUG#22290 - Driver issues truncation on write exception when
-	  it shouldn't (due to sending big decimal incorrectly to server with
-	  server-side prepared statement).
-
-	- Driver now sends numeric 1 or 0 for client-prepared statement
-	  setBoolean() calls instead of '1' or '0'.
-
-	- Fixed bug where driver would not advance to next host if
-	  roundRobinLoadBalance=true and the last host in the list is down.
-
-	- Fixed BUG#18258 - DatabaseMetaData.getTables(), columns() with bad
-	  catalog parameter threw exception rather than return empty result
-	  set (as required by spec).
-
-	- Check and store value for continueBatchOnError property in constructor
-      of Statements, rather than when executing batches, so that Connections
-      closed out from underneath statements don't cause NullPointerExceptions
-      when it's required to check this property.
-
-    - Fixed bug when calling stored functions, where parameters weren't
-      numbered correctly (first parameter is now the return value, subsequent
-      parameters if specified start at index "2").
-
-	- Fixed BUG#21814 - time values outside valid range silently wrap.
-
-05-26-06 - Version 3.1.13
-
-    - Fixed BUG#15464 - INOUT parameter does not store IN value.
-
-    - Fixed BUG#14609 - Exception thrown for new decimal type when
-      using updatable result sets.
-
-    - Fixed BUG#15544, no "dos" character set in MySQL > 4.1.0
-
-    - Fixed BUG#15383 - PreparedStatement.setObject() serializes
-      BigInteger as object, rather than sending as numeric value
-      (and is thus not complementary to .getObject() on an UNSIGNED
-      LONG type).
-
-    - Fixed BUG#11874 - ResultSet.getShort() for UNSIGNED TINYINT
-      returned wrong values.
-
-    - Fixed BUG#15676 - lib-nodist directory missing from
-      package breaks out-of-box build
-
-    - Fixed BUG#15854 - DBMD.getColumns() returns wrong type for BIT.
-
-    - Fixed BUG#16169 - ResultSet.getNativeShort() causes stack overflow error
-      via recurisve calls.
-
-    - Fixed BUG#14938 - Unable to initialize character set mapping tables.
-      Removed reliance on .properties files to hold this information, as it
-      turns out to be too problematic to code around class loader hierarchies
-      that change depending on how an application is deployed. Moved information
-      back into the CharsetMapping class.
-
-    - Fixed BUG#16841 - updatable result set doesn't return AUTO_INCREMENT
-      values for insertRow() when multiple column primary keys are used. (the
-      driver was checking for the existence of single-column primary keys and
-      an autoincrement value > 0 instead of a straightforward isAutoIncrement()
-      check).
-
-    - Fixed BUG#17099 - Statement.getGeneratedKeys() throws NullPointerException
-      when no query has been processed.
-
-    - Fixed BUG#13469 - Driver tries to call methods that don't exist on older and
-      newer versions of Log4j. The fix is not trying to auto-detect presense of log4j,
-      too many different incompatible versions out there in the wild to do this reliably.
-
-      If you relied on autodetection before, you will need to add
-      "logger=com.mysql.jdbc.log.Log4JLogger" to your JDBC URL to enable Log4J usage,
-      or alternatively use the new "CommonsLogger" class to take care of this.
-
-    - Added support for Apache Commons logging, use "com.mysql.jdbc.log.CommonsLogger"
-      as the value for the "logger" configuration property.
-
-    - LogFactory now prepends "com.mysql.jdbc.log" to log class name if it can't be
-      found as-specified. This allows you to use "short names" for the built-in log
-      factories, for example "logger=CommonsLogger" instead of
-      "logger=com.mysql.jdbc.log.CommonsLogger".
-
-    - Fixed BUG#15570 - ReplicationConnection incorrectly copies state,
-	  doesn't transfer connection context correctly when transitioning between
-	  the same read-only states.
-
-	- Fixed BUG#18041 - Server-side prepared statements don't cause
-	  truncation exceptions to be thrown when truncation happens.
-
-	- Added performance feature, re-writing of batched executes for
-	  Statement.executeBatch() (for all DML statements) and
-	  PreparedStatement.executeBatch() (for INSERTs with VALUE clauses
-	  only). Enable by using "rewriteBatchedStatements=true" in your JDBC URL.
-
-	- Fixed BUG#17898 - registerOutParameter not working when some
-	  parameters pre-populated. Still waiting for feedback from JDBC experts
-	  group to determine what correct parameter count from getMetaData()
-	  should be, however.
-
-	- Fixed BUG#17587 - clearParameters() on a closed prepared statement
-	  causes NPE.
-
-	- Map "latin1" on MySQL server to CP1252 for MySQL > 4.1.0.
-
-	- Added additional accessor and mutator methods on ConnectionProperties
-	  so that DataSource users can use same naming as regular URL properties.
-
-	- Fixed BUG#18740 - Data truncation and getWarnings() only returns last
-	  warning in set.
-
-	- Improved performance of retrieving BigDecimal, Time, Timestamp and Date
-	  values from server-side prepared statements by creating fewer short-lived
-	  instances of Strings when the native type is not an exact match for
-	  the requested type. Fixes BUG#18496 for BigDecimals.
-
-	- Fixed BUG#18554 - Aliased column names where length of name > 251
-	  are corrupted.
-
-	- Fixed BUG#17450 - ResultSet.wasNull() not always reset
-	  correctly for booleans when done via conversion for server-side
-	  prepared statements.
-
-	- Fixed BUG#16277 - Invalid classname returned for
-	  RSMD.getColumnClassName() for BIGINT type.
-
-	- Fixed case where driver wasn't reading server status correctly when
-	  fetching server-side prepared statement rows, which in some cases
-	  could cause warning counts to be off, or multiple result sets to not
-	  be read off the wire.
-
-	- Driver now aware of fix for BIT type metadata that went into
-	  MySQL-5.0.21 for server not reporting length consistently (bug
-	  number 13601).
-
-	- Fixed BUG#19282 - ResultSet.wasNull() returns incorrect value
-	  when extracting native string from server-side prepared statement
-	  generated result set.
-
-11-30-05 - Version 3.1.12
-
-    - Fixed client-side prepared statement bug with embedded ? inside
-      quoted identifiers (it was recognized as a placeholder, when it
-      was not).
-
-    - Don't allow executeBatch() for CallableStatements with registered
-      OUT/INOUT parameters (JDBC compliance).
-
-    - Fall back to platform-encoding for URLDecoder.decode() when
-      parsing driver URL properties if the platform doesn't have a
-      two-argument version of this method.
-
-    - Fixed BUG#14562 - Java type conversion may be incorrect for
-      mediumint.
-
-    - Added configuration property "useGmtMillisForDatetimes" which
-      when set to true causes ResultSet.getDate(), .getTimestamp() to
-      return correct millis-since GMT when .getTime() is called on
-      the return value (currently default is "false" for legacy
-      behavior).
-
-    - Fixed DatabaseMetaData.stores*Identifiers():
-
-        * if lower_case_table_names=0 (on server):
-
-            storesLowerCaseIdentifiers() returns false
-            storesLowerCaseQuotedIdentifiers() returns false
-            storesMixedCaseIdentifiers() returns true
-            storesMixedCaseQuotedIdentifiers() returns true
-            storesUpperCaseIdentifiers() returns false
-            storesUpperCaseQuotedIdentifiers() returns true
-
-        * if lower_case_table_names=1 (on server):
-
-            storesLowerCaseIdentifiers() returns true
-            storesLowerCaseQuotedIdentifiers() returns true
-            storesMixedCaseIdentifiers() returns false
-            storesMixedCaseQuotedIdentifiers() returns false
-            storesUpperCaseIdentifiers() returns false
-            storesUpperCaseQuotedIdentifiers() returns true
-
-    - Fixed BUG#14815 - DatabaseMetaData.getColumns() doesn't
-      return TABLE_NAME correctly.
-
-    - Fixed BUG#14909 - escape processor replaces quote character
-      in quoted string with string delimiter.
-
-    - Fixed BUG#12975 - OpenOffice expects
-      DBMD.supportsIntegrityEnhancementFacility() to return "true"
-      if foreign keys are supported by the datasource, even though
-      this method also covers support for check constraints,
-	  which MySQL _doesn't_ have. Setting the configuration property
-	  "overrideSupportsIntegrityEnhancementFacility" to "true" causes
-	  the driver to return "true" for this method.
-
-    - Added "com.mysql.jdbc.testsuite.url.default" system property to
-	  set default JDBC url for testsuite (to speed up bug resolution
-	  when I'm working in Eclipse).
-
-	- Fixed BUG#14938 - Unable to initialize character set mapping
-	  tables (due to J2EE classloader differences).
-
-	- Fixed BUG#14972 - Deadlock while closing server-side prepared
-	  statements from multiple threads sharing one connection.
-
-	- Fixed BUG#12230 -	logSlowQueries should give better info.
-
-	- Fixed BUG#13775 - Extraneous sleep on autoReconnect.
-
-	- Fixed BUG#15024 - Driver incorrectly closes streams passed as
-	  arguments to PreparedStatements. Reverts to legacy behavior by
-	  setting the JDBC configuration property "autoClosePStmtStreams"
-	  to "true" (also included in the 3-0-Compat configuration "bundle").
-
-	- Fixed BUG#13048 - maxQuerySizeToLog is not respected. Added logging of
-	  bound values for execute() phase of server-side prepared statements
-	  when profileSQL=true as well.
-
-	- Fixed BUG#15065 - Usage advisor complains about unreferenced
-	  columns, even though they've been referenced.
-
-	- Don't increase timeout for failover/reconnect (BUG#6577)
-
-	- Process escape tokens in Connection.prepareStatement(...), fix
-	  for BUG#15141. You can disable this behavior by setting
-	  the JDBC URL configuration property "processEscapeCodesForPrepStmts"
-	  to "false".
-
-	- Fixed BUG#13255 - Reconnect during middle of executeBatch()
-	  should not occur if autoReconnect is enabled.
-
-10-07-05 - Version 3.1.11
-
-    - Fixed BUG#11629 - Spurious "!" on console when character
-      encoding is "utf8".
-
-    - Fixed statements generated for testcases missing ";" for
-      "plain" statements.
-
-    - Fixed BUG#11663 - Incorrect generation of testcase scripts
-      for server-side prepared statements.
-
-    - Fixed regression caused by fix for BUG#11552 that caused driver
-      to return incorrect values for unsigned integers when those
-      integers where within the range of the positive signed type.
-
-    - Moved source code to svn repo.
-
-    - Fixed BUG#11797 - Escape tokenizer doesn't respect stacked single quotes
-	  for escapes.
-
-	- GEOMETRY type not recognized when using server-side prepared statements.
-
-    - Fixed BUG#11879 -- ReplicationConnection won't switch to slave, throws
-      "Catalog can't be null" exception.
-
-    - Fixed BUG#12218, properties shared between master and slave with
-      replication connection.
-
-    - Fixed BUG#10630, Statement.getWarnings() fails with NPE if statement
-      has been closed.
-
-    - Only get char[] from SQL in PreparedStatement.ParseInfo() when needed.
-
-    - Fixed BUG#12104 - Geometry types not handled with server-side prepared
-      statements.
-
-    - Fixed BUG#11614 - StringUtils.getBytes() doesn't work when using
-      multibyte character encodings and a length in  _characters_ is
-      specified.
-
-    - Fixed BUG#11798 - Pstmt.setObject(...., Types.BOOLEAN) throws exception.
-
-    - Fixed BUG#11976 - maxPerformance.properties mis-spells
-	  "elideSetAutoCommits".
-
-	- Fixed BUG#11575 -- DBMD.storesLower/Mixed/UpperIdentifiers()
-	  reports incorrect values for servers deployed on Windows.
-
-	- Fixed BUG#11190 - ResultSet.moveToCurrentRow() fails to work when
-	  preceeded by a call to ResultSet.moveToInsertRow().
-
-	- Fixed BUG#11115, VARBINARY data corrupted when using server-side
-	  prepared statements and .setBytes().
-
-	- Fixed BUG#12229 - explainSlowQueries hangs with server-side
-	  prepared statements.
-
-	- Fixed BUG#11498 - Escape processor didn't honor strings demarcated
-	  with double quotes.
-
-	- Lifted restriction of changing streaming parameters with server-side
-	  prepared statements. As long as _all_ streaming parameters were set
-	  before execution, .clearParameters() does not have to be called.
-	  (due to limitation of client/server protocol, prepared statements
-	   can not reset _individual_ stream data on the server side).
-
-	- Reworked Field class, *Buffer, and MysqlIO to be aware of field
-	  lengths > Integer.MAX_VALUE.
-
-	- Updated DBMD.supportsCorrelatedQueries() to return true for versions >
-	  4.1, supportsGroupByUnrelated() to return true and
-	  getResultSetHoldability() to return HOLD_CURSORS_OVER_COMMIT.
-
-	- Fixed BUG#12541 - Handling of catalog argument in
-	  DatabaseMetaData.getIndexInfo(), which also means changes to the following
-	  methods in DatabaseMetaData:
-
-	    - getBestRowIdentifier()
-	    - getColumns()
-	    - getCrossReference()
-	    - getExportedKeys()
-	    - getImportedKeys()
-	    - getIndexInfo()
-	    - getPrimaryKeys()
-	    - getProcedures() (and thus indirectly getProcedureColumns())
-	    - getTables()
-
-	  The "catalog" argument in all of these methods now behaves in the following
-	  way:
-
-	    - Specifying NULL means that catalog will not be used to filter the
-	      results (thus all databases will be searched), unless you've
-	      set "nullCatalogMeansCurrent=true" in your JDBC URL properties.
-
-	    - Specifying "" means "current" catalog, even though this isn't quite
-	      JDBC spec compliant, it's there for legacy users.
-
-	    - Specifying a catalog works as stated in the API docs.
-
-	- Made Connection.clientPrepare() available from "wrapped" connections
-	  in the jdbc2.optional package (connections built by
-	  ConnectionPoolDataSource instances).
-
-    - Added Connection.isMasterConnection() for clients to be able to determine
-      if a multi-host master/slave connection is connected to the first host
-      in the list.
-
-    - Fixed BUG#12753 - Tokenizer for "=" in URL properties was causing
-      sessionVariables=.... to be parameterized incorrectly.
-
-    - Fixed BUG#11781, foreign key information that is quoted is
-      parsed incorrectly when DatabaseMetaData methods use that
-      information.
-
-    - The "sendBlobChunkSize" property is now clamped to "max_allowed_packet"
-      with consideration of stream buffer size and packet headers to avoid
-      PacketTooBigExceptions when "max_allowed_packet" is similar in size
-      to the default "sendBlobChunkSize" which is 1M.
-
-    - CallableStatement.clearParameters() now clears resources associated
-      with INOUT/OUTPUT parameters as well as INPUT parameters.
-
-    - Fixed BUG#12417 - Connection.prepareCall() is database name
-      case-sensitive (on Windows systems).
-
-    - Fixed BUG#12752 - Cp1251 incorrectly mapped to win1251 for
-      servers newer than 4.0.x.
-
-    - Fixed BUG#12970 - java.sql.Types.OTHER returned for
-	  BINARY and VARBINARY columns when using
-	  DatabaseMetaData.getColumns().
-
-	- ServerPreparedStatement.getBinding() now checks if the statement
-	  is closed before attempting to reference the list of parameter
-	  bindings, to avoid throwing a NullPointerException.
-
-    - Fixed BUG#13277 - ResultSetMetaData from
-      Statement.getGeneratedKeys() caused NullPointerExceptions to be
-      thrown whenever a method that required a connection reference
-      was called.
-
-    - Removed support for java.nio I/O. Too many implementations
-      turned out to be buggy, and there was no performance difference
-      since MySQL is a blocking protocol anyway.
-
-06-23-05 - Version 3.1.10-stable
-
-	- Fixed connecting without a database specified raised an exception
-	  in MysqlIO.changeDatabaseTo().
-
-	- Initial implemention of ParameterMetadata for
-	  PreparedStatement.getParameterMetadata(). Only works fully
-	  for CallableStatements, as current server-side prepared statements
-	  return every parameter as a VARCHAR type.
-
-	- Fixed BUG#11552 - Server-side prepared statements return incorrect
-	  values for unsigned TINYINT, SMALLINT, INT and Long.
-
-	- Fixed BUG#11540 - Incorrect year conversion in setDate(..) for
-	  system that use B.E. year in default locale.
-
-06-22-05 - Version 3.1.9-stable
-
-	- Overhaul of character set configuration, everything now
-	  lives in a properties file.
-
-	- Driver now correctly uses CP932 if available on the server
-	  for Windows-31J, CP932 and MS932 java encoding names,
-	  otherwise it resorts to SJIS, which is only a close
-	  approximation. Currently only MySQL-5.0.3 and newer (and
-	  MySQL-4.1.12 or .13, depending on when the character set
-	  gets backported) can reliably support any variant of CP932.
-
-	- Fixed BUG#9064 - com.mysql.jdbc.PreparedStatement.ParseInfo
-	  does unnecessary call to toCharArray().
-
-	- Fixed Bug#10144 - Memory leak in ServerPreparedStatement if
-	  serverPrepare() fails.
-
-	- Actually write manifest file to correct place so it ends up
-	  in the binary jar file.
-
-	- Added "createDatabaseIfNotExist" property (default is "false"),
-	  which will cause the driver to ask the server to create the
-	  database specified in the URL if it doesn't exist. You must have
-	  the appropriate privileges for database creation for this to
-	  work.
-
-	- Fixed BUG#10156 - Unsigned SMALLINT treated as signed for ResultSet.getInt(),
-	  fixed all cases for UNSIGNED integer values and server-side prepared statements,
-	  as well as ResultSet.getObject() for UNSIGNED TINYINT.
-
-	- Fixed BUG#10155, double quotes not recognized when parsing
-	  client-side prepared statements.
-
-	- Made enableStreamingResults() visible on
-	  com.mysql.jdbc.jdbc2.optional.StatementWrapper.
-
-	- Made ServerPreparedStatement.asSql() work correctly so auto-explain
-	  functionality would work with server-side prepared statements.
-
-	- Made JDBC2-compliant wrappers public in order to allow access to
-	  vendor extensions.
-
-	- Cleaned up logging of profiler events, moved code to dump a profiler
-	  event as a string to com.mysql.jdbc.log.LogUtils so that third
-	  parties can use it.
-
-	- DatabaseMetaData.supportsMultipleOpenResults() now returns true. The
-	  driver has supported this for some time, DBMD just missed that fact.
-
-	- Fixed BUG#10310 - Driver doesn't support {?=CALL(...)} for calling
-	  stored functions. This involved adding support for function retrieval
-	  to DatabaseMetaData.getProcedures() and getProcedureColumns() as well.
-
-	- Fixed BUG#10485, SQLException thrown when retrieving YEAR(2)
-	  with ResultSet.getString(). The driver will now always treat YEAR types
-	  as java.sql.Dates and return the correct values for getString().
-	  Alternatively, the "yearIsDateType" connection property can be set to
-	  "false" and the values will be treated as SHORTs.
-
-	- The datatype returned for TINYINT(1) columns when "tinyInt1isBit=true"
-	  (the default) can be switched between Types.BOOLEAN and Types.BIT
-	  using the new configuration property "transformedBitIsBoolean", which
-	  defaults to "false". If set to "false" (the default),
-	  DatabaseMetaData.getColumns() and ResultSetMetaData.getColumnType()
-	  will return Types.BOOLEAN for TINYINT(1) columns. If "true",
-	  Types.BOOLEAN will be returned instead. Irregardless of this configuration
-	  property, if "tinyInt1isBit" is enabled, columns with the type TINYINT(1)
-	  will be returned as java.lang.Boolean instances from
-	  ResultSet.getObject(..), and ResultSetMetaData.getColumnClassName()
-	  will return "java.lang.Boolean".
-
-	- Fixed BUG#10496 - SQLException is thrown when using property
-	  "characterSetResults" with cp932 or eucjpms.
-
-	- Reorganized directory layout, sources now in "src" folder,
-	  don't pollute parent directory when building, now output goes
-	  to "./build", distribution goes to "./dist".
-
-	- Added support/bug hunting feature that generates .sql test
-	  scripts to STDERR when "autoGenerateTestcaseScript" is set
-	  to "true".
-
-	- Fixed BUG#10850 - 0-length streams not sent to server when
-	  using server-side prepared statements.
-
-	- Setting "cachePrepStmts=true" now causes the Connection to also
-	  cache the check the driver performs to determine if a prepared
-	  statement can be server-side or not, as well as caches server-side
-	  prepared statements for the lifetime of a connection. As before,
-	  the "prepStmtCacheSize" parameter controls the size of these
-	  caches.
-
-	- Try to handle OutOfMemoryErrors more gracefully. Although not
-	  much can be done, they will in most cases close the connection
-	  they happened on so that further operations don't run into
-	  a connection in some unknown state. When an OOM has happened,
-	  any further operations on the connection will fail with a
-	  "Connection closed" exception that will also list the OOM exception
-	  as the reason for the implicit connection close event.
-
-	- Don't send COM_RESET_STMT for each execution of a server-side
-	  prepared statement if it isn't required.
-
-	- Driver detects if you're running MySQL-5.0.7 or later, and does
-	  not scan for "LIMIT ?[,?]" in statements being prepared, as the
-	  server supports those types of queries now.
-
-	- Fixed BUG#11115, Varbinary data corrupted when using server-side
-	  prepared statements and ResultSet.getBytes().
-
-	- Connection.setCatalog() is now aware of the "useLocalSessionState"
-	  configuration property, which when set to true will prevent
-	  the driver from sending "USE ..." to the server if the requested
-	  catalog is the same as the current catalog.
-
-	- Added the following configuration bundles, use one or many via
-	  the "useConfigs" configuration property:
-
-	    * maxPerformance -- maximum performance without being reckless
-	    * solarisMaxPerformance -- maximum performance for Solaris,
-	                               avoids syscalls where it can
-	    * 3-0-Compat -- Compatibility with Connector/J 3.0.x functionality
-
-	- Added "maintainTimeStats" configuration property (defaults to "true"),
-	  which tells the driver whether or not to keep track of the last query time
-	  and the last successful packet sent to the server's time. If set to
-	  false, removes two syscalls per query.
-
-	- Fixed BUG#11259, autoReconnect ping causes exception on connection
-	  startup.
-
-	- Fixed BUG#11360 Connector/J dumping query into SQLException twice
-
-	- Fixed PreparedStatement.setClob() not accepting null as a parameter.
-
-	- Fixed BUG#11411 - Production package doesn't include JBoss integration
-	  classes.
-
-	- Removed nonsensical "costly type conversion" warnings when using
-	  usage advisor.
-
-04-14-05 - Version 3.1.8-stable
-
-	- Fixed DatabaseMetaData.getTables() returning views when they were
-	  not asked for as one of the requested table types.
-
-	- Added support for new precision-math DECIMAL type in MySQL >= 5.0.3.
-
-	- Fixed ResultSet.getTime() on a NULL value for server-side prepared
-	  statements throws NPE.
-
-	- Made Connection.ping() a public method.
-
-	- Fixed Bug#8868, DATE_FORMAT() queries returned as BLOBs from getObject().
-
-	- ServerPreparedStatements now correctly 'stream' BLOB/CLOB data to the
-	  server. You can configure the threshold chunk size using the
-	  JDBC URL property 'blobSendChunkSize' (the default is one megabyte).
-
-    - BlobFromLocator now uses correct identifier quoting when generating
-      prepared statements.
-
-    - Server-side session variables can be preset at connection time by
-      passing them as a comma-delimited list for the connection property
-      'sessionVariables'.
-
-	- Fixed regression in ping() for users using autoReconnect=true.
-
-	- Fixed BUG#9040 - PreparedStatement.addBatch() doesn't work with server-side
-	  prepared statements and streaming BINARY data.
-
-	- Fixed BUG#8800 - DBMD.supportsMixedCase*Identifiers() returns wrong
-	  value on servers running on case-sensitive filesystems.
-
-	- Fixed BUG#9206, can not use 'UTF-8' for characterSetResults
-      configuration property.
-
-    - Fixed BUG#9236, a continuation of BUG#8868, where functions used in queries
-      that should return non-string types when resolved by temporary tables suddenly
-      become opaque binary strings (work-around for server limitation). Also fixed
-      fields with type of CHAR(n) CHARACTER SET BINARY to return correct/matching
-      classes for RSMD.getColumnClassName() and ResultSet.getObject().
-
-    - Fixed BUG#8792 - DBMD.supportsResultSetConcurrency() not returning
-	  true for forward-only/read-only result sets (we obviously support this).
-
-	- Fixed BUG#8803, 'DATA_TYPE' column from DBMD.getBestRowIdentifier()
-	  causes ArrayIndexOutOfBoundsException when accessed (and in fact, didn't
-	  return any value).
-
-	- Check for empty strings ('') when converting char/varchar column data to numbers,
-	  throw exception if 'emptyStringsConvertToZero' configuration property is set
-	  to 'false' (for backwards-compatibility with 3.0, it is now set to 'true'
-	  by default, but will most likely default to 'false' in 3.2).
-
-	- Fixed BUG#9320 - PreparedStatement.getMetaData() inserts blank row in database
-	  under certain conditions when not using server-side prepared statements.
-
-	- Connection.canHandleAsPreparedStatement() now makes 'best effort' to distinguish
-	  LIMIT clauses with placeholders in them from ones without in order to have fewer
-	  false positives when generating work-arounds for statements the server cannot
-	  currently handle as server-side prepared statements.
-
-	- Fixed build.xml to not compile log4j logging if log4j not available.
-
-	- Added support for the c3p0 connection pool's (http://c3p0.sf.net/)
-	  validation/connection checker interface which uses the lightweight
-	  'COM_PING' call to the server if available. To use it, configure your
-	  c3p0 connection pool's 'connectionTesterClassName' property to use
-	  'com.mysql.jdbc.integration.c3p0.MysqlConnectionTester'.
-
-	- Better detection of LIMIT inside/outside of quoted strings so that
-	  the driver can more correctly determine whether a prepared statement
-	  can be prepared on the server or not.
-
-	- Fixed BUG#9319 - Stored procedures with same name in
-	  different databases confuse the driver when it tries to determine
-	  parameter counts/types.
-
-    - Added finalizers to ResultSet and Statement implementations to be JDBC
-      spec-compliant, which requires that if not explicitly closed, these
-      resources should be closed upon garbage collection.
-
-    - Fixed BUG#9682 - Stored procedures with DECIMAL parameters with
-	  storage specifications that contained "," in them would fail.
-
-	- PreparedStatement.setObject(int, Object, int type, int scale) now
-	  uses scale value for BigDecimal instances.
-
-	- Fixed BUG#9704 - Statement.getMoreResults() could throw NPE when
-	  existing result set was .close()d.
-
-	- The performance metrics feature now gathers information about
-	  number of tables referenced in a SELECT.
-
-	- The logging system is now automatically configured. If the value has
-	  been set by the user, via the URL property "logger" or the system
-	  property "com.mysql.jdbc.logger", then use that, otherwise, autodetect
-	  it using the following steps:
-
-    	 Log4j, if it's available,
-    	 Then JDK1.4 logging,
-    	 Then fallback to our STDERR logging.
-
-   	- Fixed BUG#9778, DBMD.getTables() shouldn't return tables if views
-	  are asked for, even if the database version doesn't support views.
-
-	- Fixed driver not returning 'true' for '-1' when ResultSet.getBoolean()
-	  was called on result sets returned from server-side prepared statements.
-
-	- Added a Manifest.MF file with implementation information to the .jar
-	  file.
-
-	- More tests in Field.isOpaqueBinary() to distinguish opaque binary (i.e.
-	  fields with type CHAR(n) and CHARACTER SET BINARY) from output of
-	  various scalar and aggregate functions that return strings.
-
-	- Fixed BUG#9917 - Should accept null for catalog (meaning use current)
-	  in DBMD methods, even though it's not JDBC-compliant for legacy's sake.
-	  Disable by setting connection property "nullCatalogMeansCurrent" to "false"
-	  (which will be the default value in C/J 3.2.x).
-
-	- Fixed BUG#9769 - Should accept null for name patterns in DBMD (meaning "%"),
-	  even though it isn't JDBC compliant, for legacy's sake. Disable by setting
-	  connection property "nullNamePatternMatchesAll" to "false" (which will be
-	  the default value in C/J 3.2.x).
-
-02-18-05 - Version 3.1.7-stable
-
-
-    - Fixed BUG#7686, Timestamp key column data needed "_binary'"
-      stripped for UpdatableResultSet.refreshRow().
-
-    - Fixed BUG#7715 - Timestamps converted incorrectly to strings
-      with Server-side prepared statements and updatable result sets.
-
-    - Detect new sql_mode variable in string form (it used to be
-      integer) and adjust quoting method for strings appropriately.
-
-    - Added 'holdResultsOpenOverStatementClose' property (default is
-      false), that keeps result sets open over statement.close() or new
-      execution on same statement (suggested by Kevin Burton).
-
-    - Fixed BUG#7952 -- Infinite recursion when 'falling back' to master
-      in failover configuration.
-
-    - Disable multi-statements (if enabled) for MySQL-4.1 versions prior
-      to version 4.1.10 if the query cache is enabled, as the server
-      returns wrong results in this configuration.
-
-    - Fixed duplicated code in configureClientCharset() that prevented
-      useOldUTF8Behavior=true from working properly.
-
-    - Removed 'dontUnpackBinaryResults' functionality, the driver now
-      always stores results from server-side prepared statements as-is
-      from the server and unpacks them on demand.
-
-    - Fixed BUG#8096 where emulated locators corrupt binary data
-      when using server-side prepared statements.
-
-    - Fixed synchronization issue with
-      ServerPreparedStatement.serverPrepare() that could cause
-      deadlocks/crashes if connection was shared between threads.
-
-    - By default, the driver now scans SQL you are preparing via all
-      variants of Connection.prepareStatement() to determine if it is a
-      supported type of statement to prepare on the server side, and if
-      it is not supported by the server, it instead prepares it as a
-      client-side emulated prepared statement (BUG#4718). You can
-      disable this by passing 'emulateUnsupportedPstmts=false' in your
-      JDBC URL.
-
-    - Remove _binary introducer from parameters used as in/out
-      parameters in CallableStatement.
-
-    - Always return byte[]s for output parameters registered as *BINARY.
-
-    - Send correct value for 'boolean' "true" to server for
-      PreparedStatement.setObject(n, "true", Types.BIT).
-
-    - Fixed bug with Connection not caching statements from
-      prepareStatement() when the statement wasn't a server-side
-      prepared statement.
-
-    - Choose correct 'direction' to apply time adjustments when both
-      client and server are in GMT timezone when using
-      ResultSet.get(..., cal) and PreparedStatement.set(...., cal).
-
-    - Added 'dontTrackOpenResources' option (default is false, to be
-      JDBC compliant), which helps with memory use for non-well-behaved
-      apps (i.e applications which don't close Statements when they
-      should).
-
-    - Fixed BUG#8428 - ResultSet.getString() doesn't maintain format
-      stored on server, bug fix only enabled when 'noDatetimeStringSync'
-      property is set to 'true' (the default is 'false').
-
-    - Fixed NPE in ResultSet.realClose() when using usage advisor and
-      result set was already closed.
-
-    - Fixed BUG#8487 - PreparedStatements not creating streaming result
-      sets.
-
-    - Don't pass NULL to String.valueOf() in
-      ResultSet.getNativeConvertToString(), as it stringifies it (i.e.
-      returns "null"), which is not correct for the method in question.
-
-    - Fixed BUG#8484 - ResultSet.getBigDecimal() throws exception
-      when rounding would need to occur to set scale. The driver now
-      chooses a rounding mode of 'half up' if non-rounding
-      BigDecimal.setScale() fails.
-
-    - Added 'useLocalSessionState' configuration property, when set to
-      'true' the JDBC driver trusts that the application is well-behaved
-      and only sets autocommit and transaction isolation levels using
-      the methods provided on java.sql.Connection, and therefore can
-      manipulate these values in many cases without incurring
-      round-trips to the database server.
-
-    - Added enableStreamingResults() to Statement for connection pool
-      implementations that check Statement.setFetchSize() for
-      specification-compliant values. Call Statement.setFetchSize(>=0)
-      to disable the streaming results for that statement.
-
-    - Added support for BIT type in MySQL-5.0.3. The driver will treat
-      BIT(1-8) as the JDBC standard BIT type (which maps to
-      java.lang.Boolean), as the server does not currently send enough
-      information to determine the size of a bitfield when < 9 bits are
-      declared. BIT(>9) will be treated as VARBINARY, and will return
-      byte[] when getObject() is called.
-
-12-23-04 - Version 3.1.6-stable
-
-    - Fixed hang on SocketInputStream.read() with Statement.setMaxRows() and
-      multiple result sets when driver has to truncate result set directly,
-      rather than tacking a 'LIMIT n' on the end of it.
-
-    - Fixed BUG#7026 - DBMD.getProcedures() doesn't respect catalog parameter.
-
-    - Respect bytes-per-character for RSMD.getPrecision().
-
-12-02-04 - Version 3.1.5-gamma
-
-	- Fix comparisons made between string constants and dynamic strings that
-	  are either toUpperCase()d or toLowerCase()d to use Locale.ENGLISH, as
-	  some locales 'override' case rules for English. Also use
-	  StringUtils.indexOfIgnoreCase() instead of .toUpperCase().indexOf(),
-	  avoids creating a very short-lived transient String instance.
-
-	- Fixed BUG#5235 - Server-side prepared statements did not honor
-      'zeroDateTimeBehavior' property, and would cause class-cast
-      exceptions when using ResultSet.getObject(), as the all-zero string
-      was always returned.
-
-    - Fixed batched updates with server prepared statements weren't looking if
-      the types had changed for a given batched set of parameters compared
-      to the previous set, causing the server to return the error
-      'Wrong arguments to mysql_stmt_execute()'.
-
-    - Handle case when string representation of timestamp contains trailing '.'
-      with no numbers following it.
-
-    - Fixed BUG#5706 - Inefficient detection of pre-existing string instances
-      in ResultSet.getNativeString().
-
-    - Don't throw exceptions for Connection.releaseSavepoint().
-
-    - Use a per-session Calendar instance by default when decoding dates
-      from ServerPreparedStatements (set to old, less performant behavior by
-      setting property 'dynamicCalendars=true').
-
-    - Added experimental configuration property 'dontUnpackBinaryResults',
-      which delays unpacking binary result set values until they're asked for,
-      and only creates object instances for non-numerical values (it is set
-      to 'false' by default). For some usecase/jvm combinations, this is
-      friendlier on the garbage collector.
-
-    - Fixed BUG#5729 - UNSIGNED BIGINT unpacked incorrectly from
-      server-side prepared statement result sets.
-
-    - Fixed BUG#6225 - ServerSidePreparedStatement allocating short-lived
-      objects un-necessarily.
-
-    - Removed un-wanted new Throwable() in ResultSet constructor due to bad
-      merge (caused a new object instance that was never used for every result
-      set created) - Found while profiling for BUG#6359.
-
-    - Fixed too-early creation of StringBuffer in EscapeProcessor.escapeSQL(),
-      also return String when escaping not needed (to avoid unnecssary object
-      allocations). Found while profiling for BUG#6359.
-
-    - Use null-safe-equals for key comparisons in updatable result sets.
-
-    - Fixed BUG#6537, SUM() on Decimal with server-side prepared statement ignores
-      scale if zero-padding is needed (this ends up being due to conversion to DOUBLE
-      by server, which when converted to a string to parse into BigDecimal, loses all
-      'padding' zeros).
-
-    - Use DatabaseMetaData.getIdentifierQuoteString() when building DBMD
-      queries.
-
-    - Use 1MB packet for sending file for LOAD DATA LOCAL INFILE if that
-      is < 'max_allowed_packet' on server.
-
-    - Fixed BUG#6399, ResultSetMetaData.getColumnDisplaySize() returns incorrect
-      values for multibyte charsets.
-
-    - Make auto-deserialization of java.lang.Objects stored in BLOBs
-      configurable via 'autoDeserialize' property (defaults to 'false').
-
-    - Re-work Field.isOpaqueBinary() to detect 'CHAR(n) CHARACTER SET BINARY'
-      to support fixed-length binary fields for ResultSet.getObject().
-
-    - Use our own implementation of buffered input streams to get around
-      blocking behavior of java.io.BufferedInputStream. Disable this with
-      'useReadAheadInput=false'.
-
-    - Fixed BUG#6348, failing to connect to the server when one of the
-      addresses for the given host name is IPV6 (which the server does
-      not yet bind on). The driver now loops through _all_ IP addresses
-      for a given host, and stops on the first one that accepts() a
-      socket.connect().
-
-09-04-04 - Version 3.1.4-beta
-
-    - Fixed BUG#4510 - connector/j 3.1.3 beta does not handle integers
-      correctly (caused by changes to support unsigned reads in
-      Buffer.readInt() -> Buffer.readShort()).
-
-    - Added support in DatabaseMetaData.getTables() and getTableTypes()
-      for VIEWs which are now available in MySQL server version 5.0.x.
-
-    - Fixed BUG#4642 -- ServerPreparedStatement.execute*() sometimes
-      threw ArrayIndexOutOfBoundsException when unpacking field metadata.
-
-    - Optimized integer number parsing, enable 'old' slower integer parsing
-      using JDK classes via 'useFastIntParsing=false' property.
-
-    - Added 'useOnlyServerErrorMessages' property, which causes message text
-      in exceptions generated by the server to only contain the text sent by
-      the server (as opposed to the SQLState's 'standard' description, followed
-      by the server's error message). This property is set to 'true' by default.
-
-    - Fixed BUG#4689 - ResultSet.wasNull() does not work for primatives if a
-      previous null was returned.
-
-    - Track packet sequence numbers if enablePacketDebug=true, and throw an
-      exception if packets received out-of-order.
-
-    - Fixed BUG#4482, ResultSet.getObject() returns wrong type for strings
-      when using prepared statements.
-
-    - Calling MysqlPooledConnection.close() twice (even though an application
-      error), caused NPE. Fixed.
-
-    - Fixed BUG#5012 -- ServerPreparedStatements dealing with return of
-	  DECIMAL type don't work.
-
-	- Fixed BUG#5032 -- ResultSet.getObject() doesn't return
-      type Boolean for pseudo-bit types from prepared statements on 4.1.x
-      (shortcut for avoiding extra type conversion when using binary-encoded
-      result sets obscurred test in getObject() for 'pseudo' bit type)
-
-    - You can now use URLs in 'LOAD DATA LOCAL INFILE' statements, and the
-      driver will use Java's built-in handlers for retreiving the data and
-      sending it to the server. This feature is not enabled by default,
-      you must set the 'allowUrlInLocalInfile' connection property to 'true'.
-
-    - The driver is more strict about truncation of numerics on
-      ResultSet.get*(), and will throw a SQLException when truncation is
-      detected. You can disable this by setting 'jdbcCompliantTruncation' to
-      false (it is enabled by default, as this functionality is required
-      for JDBC compliance).
-
-    - Added three ways to deal with all-zero datetimes when reading them from
-      a ResultSet, 'exception' (the default), which throws a SQLException
-      with a SQLState of 'S1009', 'convertToNull', which returns NULL instead of
-      the date, and 'round', which rounds the date to the nearest closest value
-      which is '0001-01-01'.
-
-    - Fixed ServerPreparedStatement to read prepared statement metadata off
-      the wire, even though it's currently a placeholder instead of using
-      MysqlIO.clearInputStream() which didn't work at various times because
-      data wasn't available to read from the server yet. This fixes sporadic
-      errors users were having with ServerPreparedStatements throwing
-      ArrayIndexOutOfBoundExceptions.
-
-    - Use com.mysql.jdbc.Message's classloader when loading resource bundle,
-      should fix sporadic issues when the caller's classloader can't locate
-      the resource bundle.
-
-07-07-04 - Version 3.1.3-beta
-
-	- Mangle output parameter names for CallableStatements so they
-	  will not clash with user variable names.
-
-	- Added support for INOUT parameters in CallableStatements.
-
-	- Fix for BUG#4119, null bitmask sent for server-side prepared
-	  statements was incorrect.
-
-	- Use SQL Standard SQL states by default, unless 'useSqlStateCodes'
-	  property is set to 'false'.
-
-	- Added packet debuging code (see the 'enablePacketDebug' property
-	  documentation).
-
-	- Added constants for MySQL error numbers (publicly-accessible,
-	  see com.mysql.jdbc.MysqlErrorNumbers), and the ability to
-	  generate the mappings of vendor error codes to SQLStates
-	  that the driver uses (for documentation purposes).
-
-	- Externalized more messages (on-going effort).
-
-	- Fix for BUG#4311 - Error in retrieval of mediumint column with
-	  prepared statements and binary protocol.
-
-	- Support new timezone variables in MySQL-4.1.3 when
-	  'useTimezone=true'
-
-	- Support for unsigned numerics as return types from prepared statements.
-	  This also causes a change in ResultSet.getObject() for the 'bigint unsigned'
-	  type, which used to return BigDecimal instances, it now returns instances
-	  of java.lang.BigInteger.
-
-06-09-04 - Version 3.1.2-alpha
-
-	- Fixed stored procedure parameter parsing info when size was
-	  specified for a parameter (i.e. char(), varchar()).
-
-	- Enabled callable statement caching via 'cacheCallableStmts'
-	  property.
-
-	- Fixed case when no output parameters specified for a
-	  stored procedure caused a bogus query to be issued
-	  to retrieve out parameters, leading to a syntax error
-	  from the server.
-
-	- Fixed case when no parameters could cause a NullPointerException
-	  in CallableStatement.setOutputParameters().
-
-	- Removed wrapping of exceptions in MysqlIO.changeUser().
-
-	- Fixed sending of split packets for large queries, enabled nio
-	  ability to send large packets as well.
-
-	- Added .toString() functionality to ServerPreparedStatement,
-	  which should help if you're trying to debug a query that is
-	  a prepared statement (it shows SQL as the server would process).
-
-	- Added 'gatherPerformanceMetrics' property, along with properties
-	  to control when/where this info gets logged (see docs for more
-	  info).
-
-	- ServerPreparedStatements weren't actually de-allocating
-	  server-side resources when .close() was called.
-
-	- Added 'logSlowQueries' property, along with property
-	  'slowQueriesThresholdMillis' to control when a query should
-	  be considered 'slow'.
-
-	- Correctly map output parameters to position given in
-	  prepareCall() vs. order implied during registerOutParameter() -
-	  fixes BUG#3146.
-
-	- Correctly detect initial character set for servers >= 4.1.0
-
-	- Cleaned up detection of server properties.
-
-	- Support placeholder for parameter metadata for server >= 4.1.2
-
-	- Fix for BUG#3539 getProcedures() does not return any procedures in
-	  result set
-
-	- Fix for BUG#3540 getProcedureColumns() doesn't work with wildcards
-	  for procedure name
-
-	- Fixed BUG#3520 -- DBMD.getSQLStateType() returns incorrect value.
-
-	- Added 'connectionCollation' property to cause driver to issue
-	  'set collation_connection=...' query on connection init if default
-	  collation for given charset is not appropriate.
-
-	- Fixed DatabaseMetaData.getProcedures() when run on MySQL-5.0.0 (output of
-	'show procedure status' changed between 5.0.1 and 5.0.0.
-
-	- Fixed BUG#3804 -- getWarnings() returns SQLWarning instead of DataTruncation
-
-	- Don't enable server-side prepared statements for server version 5.0.0 or 5.0.1,
-	as they aren't compatible with the '4.1.2+' style that the driver uses (the driver
-	expects information to come back that isn't there, so it hangs).
-
-
-02-14-04 - Version 3.1.1-alpha
-
-    - Fixed bug with UpdatableResultSets not using client-side
-	  prepared statements.
-
-	- Fixed character encoding issues when converting bytes to
-	  ASCII when MySQL doesn't provide the character set, and
-	  the JVM is set to a multibyte encoding (usually affecting
-	  retrieval of numeric values).
-
-	- Unpack 'unknown' data types from server prepared statements
-	  as Strings.
-
-	- Implemented long data (Blobs, Clobs, InputStreams, Readers)
-	  for server prepared statements.
-
-	- Implemented Statement.getWarnings() for MySQL-4.1 and newer
-	  (using 'SHOW WARNINGS').
-
-	- Default result set type changed to TYPE_FORWARD_ONLY
-	  (JDBC compliance).
-
-	- Centralized setting of result set type and concurrency.
-
-	- Re-factored how connection properties are set and exposed
-	  as DriverPropertyInfo as well as Connection and DataSource
-	  properties.
-
-	- Support for NIO. Use 'useNIO=true' on platforms that support
-	  NIO.
-
-	- Support for SAVEPOINTs (MySQL >= 4.0.14 or 4.1.1).
-
-	- Support for mysql_change_user()...See the changeUser() method
-	  in com.mysql.jdbc.Connection.
-
-	- Reduced number of methods called in average query to be more
-	  efficient.
-
-	- Prepared Statements will be re-prepared on auto-reconnect. Any errors
-	  encountered are postponed until first attempt to re-execute the
-	  re-prepared statement.
-
-	- Ensure that warnings are cleared before executing queries
-	  on prepared statements, as-per JDBC spec (now that we support
-	  warnings).
-
-	- Support 'old' profileSql capitalization in ConnectionProperties.
-	  This property is deprecated, you should use 'profileSQL' if possible.
-
-	- Optimized Buffer.readLenByteArray() to return shared empty byte array
-	  when length is 0.
-
-	- Allow contents of PreparedStatement.setBlob() to be retained
-	  between calls to .execute*().
-
-	- Deal with 0-length tokens in EscapeProcessor (caused by callable
-	  statement escape syntax).
-
-	- Check for closed connection on delete/update/insert row operations in
-	  UpdatableResultSet.
-
-	- Fix support for table aliases when checking for all primary keys in
-	  UpdatableResultSet.
-
-	- Removed useFastDates connection property.
-
-	- Correctly initialize datasource properties from JNDI Refs, including
-	  explicitly specified URLs.
-
-	- DatabaseMetaData now reports supportsStoredProcedures() for
-	  MySQL versions >= 5.0.0
-
-	- Fixed stack overflow in Connection.prepareCall() (bad merge).
-
-	- Fixed IllegalAccessError to Calendar.getTimeInMillis() in DateTimeValue
-	  (for JDK < 1.4).
-
-	- Fix for BUG#1673, where DatabaseMetaData.getColumns() is not
-      returning correct column ordinal info for non '%' column name patterns.
-
-    - Merged fix of datatype mapping from MySQL type 'FLOAT' to
-      java.sql.Types.REAL from 3.0 branch.
-
-    - Detect collation of column for RSMD.isCaseSensitive().
-
-    - Fixed sending of queries > 16M.
-
-    - Added named and indexed input/output parameter support to CallableStatement.
-      MySQL-5.0.x or newer.
-
-    - Fixed NullPointerException in ServerPreparedStatement.setTimestamp(),
-      as well as year and month descrepencies in
-      ServerPreparedStatement.setTimestamp(), setDate().
-
-    - Added ability to have multiple database/JVM targets for compliance
-      and regression/unit tests in build.xml.
-
-    - Fixed NPE and year/month bad conversions when accessing some
-      datetime functionality in ServerPreparedStatements and their
-      resultant result sets.
-
-    - Display where/why a connection was implicitly closed (to
-      aid debugging).
-
-    - CommunicationsException implemented, that tries to determine
-      why communications was lost with a server, and displays
-      possible reasons when .getMessage() is called.
-
-    - Fixed BUG#2359, NULL values for numeric types in binary
-      encoded result sets causing NullPointerExceptions.
-
-    - Implemented Connection.prepareCall(), and DatabaseMetaData.
-      getProcedures() and getProcedureColumns().
-
-    - Reset 'long binary' parameters in ServerPreparedStatement when
-      clearParameters() is called, by sending COM_RESET_STMT to the
-      server.
-
-    - Merged prepared statement caching, and .getMetaData() support
-      from 3.0 branch.
-
-    - Fixed off-by-1900 error in some cases for
-      years in TimeUtil.fastDate/TimeCreate() when unpacking results
-      from server-side prepared statements.
-
-    - Fixed BUG#2502 -- charset conversion issue in getTables().
-
-    - Implemented multiple result sets returned from a statement
-      or stored procedure.
-
-    - Fixed BUG#2606 -- Server side prepared statements not returning
-      datatype 'YEAR' correctly.
-
-    - Enabled streaming of result sets from server-side prepared
-      statements.
-
-    - Fixed BUG#2623 -- Class-cast exception when using
-      scrolling result sets and server-side prepared statements.
-
-	- Merged unbuffered input code from 3.0.
-
-	- Fixed ConnectionProperties that weren't properly exposed
-	  via accessors, cleaned up ConnectionProperties code.
-
-	- Fixed BUG#2671, NULL fields not being encoded correctly in
-	  all cases in server side prepared statements.
-
-	- Fixed rare buffer underflow when writing numbers into buffers
-	  for sending prepared statement execution requests.
-
-	- Use DocBook version of docs for shipped versions of drivers.
-
-
-02-18-03 - Version 3.1.0-alpha
-
-    - Added 'requireSSL' property.
-
-    - Added 'useServerPrepStmts' property (default 'false'). The
-      driver will use server-side prepared statements when the
-      server version supports them (4.1 and newer) when this
-      property is set to 'true'. It is currently set to 'false'
-      by default until all bind/fetch functionality has been
-      implemented. Currently only DML prepared statements are
-      implemented for 4.1 server-side prepared statements.
-
-    - Track open Statements, close all when Connection.close()
-      is called (JDBC compliance).
-
-06-22-05 - Version 3.0.17-ga
-
-    - Fixed BUG#5874, Timestamp/Time conversion goes in the wrong 'direction'
-      when useTimeZone='true' and server timezone differs from client timezone.
-
-	- Fixed BUG#7081, DatabaseMetaData.getIndexInfo() ignoring 'unique'
-	  parameter.
-
-	- Support new protocol type 'MYSQL_TYPE_VARCHAR'.
-
-	- Added 'useOldUTF8Behavoior' configuration property, which causes
-	  JDBC driver to act like it did with MySQL-4.0.x and earlier when
-	  the character encoding is 'utf-8' when connected to MySQL-4.1 or
-	  newer.
-
-	- Fixed BUG#7316 - Statements created from a pooled connection were
-	  returning physical connection instead of logical connection when
-	  getConnection() was called.
-
-	- Fixed BUG#7033 - PreparedStatements don't encode Big5 (and other
-	  multibyte) character sets correctly in static SQL strings.
-
-	- Fixed BUG#6966, connections starting up failed-over (due to down master)
-      never retry master.
-
-    - Fixed BUG#7061, PreparedStatement.fixDecimalExponent() adding extra
-      '+', making number unparseable by MySQL server.
-
-    - Fixed BUG#7686, Timestamp key column data needed "_binary'" stripped for
-      UpdatableResultSet.refreshRow().
-
-    - Backported SQLState codes mapping from Connector/J 3.1, enable with
-      'useSqlStateCodes=true' as a connection property, it defaults to
-      'false' in this release, so that we don't break legacy applications (it
-      defaults to 'true' starting with Connector/J 3.1).
-
-    - Fixed BUG#7601, PreparedStatement.fixDecimalExponent() adding extra
-      '+', making number unparseable by MySQL server.
-
-    - Escape sequence {fn convert(..., type)} now supports ODBC-style types
-      that are prepended by 'SQL_'.
-
-    - Fixed duplicated code in configureClientCharset() that prevented
-      useOldUTF8Behavior=true from working properly.
-
-    - Handle streaming result sets with > 2 billion rows properly by fixing
-      wraparound of row number counter.
-
-    - Fixed BUG#7607 - MS932, SHIFT_JIS and Windows_31J not recog. as
-      aliases for sjis.
-
-    - Fixed BUG#6549 (while fixing #7607), adding 'CP943' to aliases for
-      sjis.
-
-    - Fixed BUG#8064, which requires hex escaping of binary data when using
-      multibyte charsets with prepared statements.
-
-    - Fixed BUG#8812, NON_UNIQUE column from DBMD.getIndexInfo() returned
-      inverted value.
-
-    - Workaround for server BUG#9098 - default values of CURRENT_* for
-      DATE/TIME/TIMESTAMP/TIMESTAMP columns can't be distinguished from
-      'string' values, so UpdatableResultSet.moveToInsertRow() generates
-      bad SQL for inserting default values.
-
-    - Fixed BUG#8629 - 'EUCKR' charset is sent as 'SET NAMES euc_kr' which
-      MySQL-4.1 and newer doesn't understand.
-
-    - DatabaseMetaData.supportsSelectForUpdate() returns correct value based
-      on server version.
-
-    - Use hex escapes for PreparedStatement.setBytes() for double-byte charsets
-      including 'aliases' Windows-31J, CP934, MS932.
-
-    - Added support for the "EUC_JP_Solaris" character encoding, which maps
-      to a MySQL encoding of "eucjpms" (backported from 3.1 branch). This only
-      works on servers that support eucjpms, namely 5.0.3 or later.
-
-11-15-04 - Version 3.0.16-ga
-
-	- Re-issue character set configuration commands when re-using pooled
-	  connections and/or Connection.changeUser() when connected to MySQL-4.1
-	  or newer.
-
-	- Fixed ResultSetMetaData.isReadOnly() to detect non-writable columns
-	  when connected to MySQL-4.1 or newer, based on existence of 'original'
-	  table and column names.
-
-	- Fixed BUG#5664, ResultSet.updateByte() when on insert row
-      throws ArrayOutOfBoundsException.
-
-    - Fixed DatabaseMetaData.getTypes() returning incorrect (i.e. non-negative)
-      scale for the 'NUMERIC' type.
-
-    - Fixed BUG#6198, off-by-one bug in Buffer.readString(string).
-
-    - Made TINYINT(1) -> BIT/Boolean conversion configurable via 'tinyInt1isBit'
-      property (default 'true' to be JDBC compliant out of the box).
-
-    - Only set 'character_set_results' during connection establishment if
-      server version >= 4.1.1.
-
-    - Fixed regression where useUnbufferedInput was defaulting to 'false'.
-
-    - Fixed BUG#6231, ResultSet.getTimestamp() on a column with TIME in it
-      fails.
-
-09-04-04 - Version 3.0.15-ga
-
-	- Fixed BUG#4010 - StringUtils.escapeEasternUnicodeByteStream is still
-	  broken for GBK
-
-	- Fixed BUG#4334 - Failover for autoReconnect not using port #'s for any
-	  hosts, and not retrying all hosts. (WARN: This required a change to
-	  the SocketFactory connect() method signature, which is now
-
-	    public Socket connect(String host, int portNumber, Properties props),
-
-	  therefore any third-party socket factories will have to be changed
-	  to support this signature.
-
-	- Logical connections created by MysqlConnectionPoolDataSource will
-	  now issue a rollback() when they are closed and sent back to the pool.
-	  If your application server/connection pool already does this for you, you
-	  can set the 'rollbackOnPooledClose' property to false to avoid the
-	  overhead of an extra rollback().
-
-	- Removed redundant calls to checkRowPos() in ResultSet.
-
-	- Fixed BUG#4742, 'DOUBLE' mapped twice in DBMD.getTypeInfo().
-
-	- Added FLOSS license exemption.
-
-	- Fixed BUG#4808, calling .close() twice on a PooledConnection causes NPE.
-
-	- Fixed BUG#4138 and BUG#4860, DBMD.getColumns() returns incorrect JDBC
-	  type for unsigned columns. This affects type mappings for all numeric
-	  types in the RSMD.getColumnType() and RSMD.getColumnTypeNames() methods
-	  as well, to ensure that 'like' types from DBMD.getColumns() match up
-	  with what RSMD.getColumnType() and getColumnTypeNames() return.
-
-	- 'Production' - 'GA' in naming scheme of distributions.
-
-	- Fix for BUG#4880, RSMD.getPrecision() returning 0 for non-numeric types
-	  (should return max length in chars for non-binary types, max length
-	  in bytes for binary types). This fix also fixes mapping of
-	  RSMD.getColumnType() and RSMD.getColumnTypeName() for the BLOB types based
-	  on the length sent from the server (the server doesn't distinguish between
-	  TINYBLOB, BLOB, MEDIUMBLOB or LONGBLOB at the network protocol level).
-
-	- Fixed BUG#5022 - ResultSet should release Field[] instance in .close().
-
-    - Fixed BUG#5069 -- ResultSet.getMetaData() should not return
-	  incorrectly-initialized metadata if the result set has been closed, but
-	  should instead throw a SQLException. Also fixed for getRow() and
-	  getWarnings() and traversal methods by calling checkClosed() before
-	  operating on instance-level fields that are nullified during .close().
-
-	- Parse new timezone variables from 4.1.x servers.
-
-	- Use _binary introducer for PreparedStatement.setBytes() and
-	  set*Stream() when connected to MySQL-4.1.x or newer to avoid
-	  misinterpretation during character conversion.
-
-05-28-04 - Version 3.0.14-production
-
-	- Fixed URL parsing error
-
-05-27-04 - Version 3.0.13-production
-
-	- Fixed BUG#3848 - Using a MySQLDatasource without server name fails
-
-	- Fixed BUG#3920 - "No Database Selected" when using
-	  MysqlConnectionPoolDataSource.
-
-	- Fixed BUG#3873 - PreparedStatement.getGeneratedKeys() method returns only
-	  1 result for batched insertions
-
-05-18-04 - Version 3.0.12-production
-
-	- Add unsigned attribute to DatabaseMetaData.getColumns() output
-	  in the TYPE_NAME column.
-
-	- Added 'failOverReadOnly' property, to allow end-user to configure
-	  state of connection (read-only/writable) when failed over.
-
-	- Backported 'change user' and 'reset server state' functionality
-      from 3.1 branch, to allow clients of MysqlConnectionPoolDataSource
-      to reset server state on getConnection() on a pooled connection.
-
-    - Don't escape SJIS/GBK/BIG5 when using MySQL-4.1 or newer.
-
-    - Allow 'url' parameter for MysqlDataSource and MysqlConnectionPool
-      DataSource so that passing of other properties is possible from
-      inside appservers.
-
-    - Map duplicate key and foreign key errors to SQLState of
-      '23000'.
-
-    - Backport documentation tooling from 3.1 branch.
-
-    - Return creating statement for ResultSets created by
-      getGeneratedKeys() (BUG#2957)
-
-    - Allow java.util.Date to be sent in as parameter to
-      PreparedStatement.setObject(), converting it to a Timestamp
-      to maintain full precision (BUG#3103).
-
-    - Don't truncate BLOBs/CLOBs when using setBytes() and/or
-      setBinary/CharacterStream() (BUG#2670).
-
-    - Dynamically configure character set mappings for field-level
-      character sets on MySQL-4.1.0 and newer using 'SHOW COLLATION'
-      when connecting.
-
-    - Map 'binary' character set to 'US-ASCII' to support DATETIME
-      charset recognition for servers >= 4.1.2
-
-    - Use 'SET character_set_results" during initialization to allow any
-      charset to be returned to the driver for result sets.
-
-    - Use charsetnr returned during connect to encode queries before
-      issuing 'SET NAMES' on MySQL >= 4.1.0.
-
-    - Add helper methods to ResultSetMetaData (getColumnCharacterEncoding()
-      and getColumnCharacterSet()) to allow end-users to see what charset
-      the driver thinks it should be using for the column.
-
-    - Only set character_set_results for MySQL >= 4.1.0.
-
-    - Fixed BUG#3511, StringUtils.escapeSJISByteStream() not covering all
-      eastern double-byte charsets correctly.
-
-    - Renamed StringUtils.escapeSJISByteStream() to more appropriate
-      escapeEasternUnicodeByteStream().
-
-    - Fixed BUG#3554 - Not specifying database in URL caused MalformedURL
-      exception.
-
-    - Auto-convert MySQL encoding names to Java encoding names if used
-      for characterEncoding property.
-
-    - Added encoding names that are recognized on some JVMs to fix case
-      where they were reverse-mapped to MySQL encoding names incorrectly.
-
-    - Use junit.textui.TestRunner for all unit tests (to allow them to be
-      run from the command line outside of Ant or Eclipse).
-
-    - Fixed BUG#3557 - UpdatableResultSet not picking up default values
-      for moveToInsertRow().
-
-    - Fixed BUG#3570 - inconsistent reporting of column type. The server
-      still doesn't return all types for *BLOBs *TEXT correctly, so the
-      driver won't return those correctly.
-
-    - Fixed BUG#3520 -- DBMD.getSQLStateType() returns incorrect value.
-
-    - Fixed regression in PreparedStatement.setString() and eastern character
-      encodings.
-
-    - Made StringRegressionTest 4.1-unicode aware.
-
-02-19-04 - Version 3.0.11-stable
-
-	- Trigger a 'SET NAMES utf8' when encoding is forced to 'utf8' _or_
-	  'utf-8' via the 'characterEncoding' property. Previously, only the
-	  Java-style encoding name of 'utf-8' would trigger this.
-
-	- AutoReconnect time was growing faster than exponentially (BUG#2447).
-
-	- Fixed failover always going to last host in list (BUG#2578)
-
-	- Added 'useUnbufferedInput' parameter, and now use it by default
-	  (due to JVM issue
-	  http://developer.java.sun.com/developer/bugParade/bugs/4401235.html)
-
-	- Detect 'on/off' or '1','2','3' form of lower_case_table_names on
-	  server.
-
-	- Return 'java.lang.Integer' for TINYINT and SMALLINT types from
-	  ResultSetMetaData.getColumnClassName() (fix for BUG#2852).
-
-	- Return 'java.lang.Double' for FLOAT type from ResultSetMetaData.
-	  getColumnClassName() (fix for BUG#2855).
-
-	- Return '[B' instead of java.lang.Object for BINARY, VARBINARY and
-	  LONGVARBINARY types from ResultSetMetaData.getColumnClassName()
-	  (JDBC compliance).
-
-01-13-04 - Version 3.0.10-stable
-
-    - Don't count quoted id's when inside a 'string' in PreparedStatement
-      parsing (fix for BUG#1511).
-
-    - 'Friendlier' exception message for PacketTooLargeException
-       (BUG#1534).
-
-    - Backported fix for aliased tables and UpdatableResultSets in
-      checkUpdatability() method from 3.1 branch.
-
-    - Fix for ArrayIndexOutOfBounds exception when using Statement.setMaxRows()
-      (BUG#1695).
-
-    - Fixed BUG#1576, dealing with large blobs and split packets not being
-      read correctly.
-
-    - Fixed regression of Statement.getGeneratedKeys() and REPLACE statements.
-
-    - Fixed BUG#1630, subsequent call to ResultSet.updateFoo() causes NPE if
-      result set is not updatable.
-
-    - Fix for 4.1.1-style auth with no password.
-
-    - Fix for BUG#1731, Foreign Keys column sequence is not consistent in
-      DatabaseMetaData.getImported/Exported/CrossReference().
-
-    - Fix for BUG#1775 - DatabaseMetaData.getSystemFunction() returning
-      bad function 'VResultsSion'.
-
-    - Fix for BUG#1592 -- cross-database updatable result sets
-      are not checked for updatability correctly.
-
-    - DatabaseMetaData.getColumns() should return Types.LONGVARCHAR for
-      MySQL LONGTEXT type.
-
-    - ResultSet.getObject() on TINYINT and SMALLINT columns should return
-      Java type 'Integer' (BUG#1913)
-
-    - Added 'alwaysClearStream' connection property, which causes the driver
-      to always empty any remaining data on the input stream before
-      each query.
-
-    - Added more descriptive error message 'Server Configuration Denies
-      Access to DataSource', as well as retrieval of message from server.
-
-    - Autoreconnect code didn't set catalog upon reconnect if it had been
-      changed.
-
-    - Implement ResultSet.updateClob().
-
-    - ResultSetMetaData.isCaseSensitive() returned wrong value for CHAR/VARCHAR
-      columns.
-
-    - Fix for BUG#1933 -- Connection property "maxRows" not honored.
-
-    - Fix for BUG#1925 -- Statements being created too many times in
-      DBMD.extractForeignKeyFromCreateTable().
-
-    - Fix for BUG#1914 -- Support escape sequence {fn convert ... }
-
-    - Fix for BUG#1958 -- ArrayIndexOutOfBounds when parameter number ==
-      number of parameters + 1.
-
-    - Fix for BUG#2006 -- ResultSet.findColumn() should use first matching
-      column name when there are duplicate column names in SELECT query
-      (JDBC-compliance).
-
-    - Removed static synchronization bottleneck from
-      PreparedStatement.setTimestamp().
-
-    - Removed static synchronization bottleneck from instance factory
-      method of SingleByteCharsetConverter.
-
-    - Enable caching of the parsing stage of prepared statements via
-      the 'cachePrepStmts', 'prepStmtCacheSize' and 'prepStmtCacheSqlLimit'
-      properties (disabled by default).
-
-    - Speed up parsing of PreparedStatements, try to use one-pass whenever
-      possible.
-
-    - Fixed security exception when used in Applets (applets can't
-      read the system property 'file.encoding' which is needed
-      for LOAD DATA LOCAL INFILE).
-
-    - Use constants for SQLStates.
-
-    - Map charset 'ko18_ru' to 'ko18r' when connected to MySQL-4.1.0 or
-      newer.
-
-    - Ensure that Buffer.writeString() saves room for the \0.
-
-    - Fixed exception 'Unknown character set 'danish' on connect w/ JDK-1.4.0
-
-    - Fixed mappings in SQLError to report deadlocks with SQLStates of '41000'.
-
-    - 'maxRows' property would affect internal statements, so check it for all
-      statement creation internal to the driver, and set to 0 when it is not.
-
-10-07-03 - Version 3.0.9-stable
-
-	- Faster date handling code in ResultSet and PreparedStatement (no longer
-	  uses Date methods that synchronize on static calendars).
-
-	- Fixed test for end of buffer in Buffer.readString().
-
-	- Fixed ResultSet.previous() behavior to move current
-	  position to before result set when on first row
-	  of result set (bugs.mysql.com BUG#496)
-
-	- Fixed Statement and PreparedStatement issuing bogus queries
-	  when setMaxRows() had been used and a LIMIT clause was present
-	  in the query.
-
-	- Fixed BUG#661 - refreshRow didn't work when primary key values
-	  contained values that needed to be escaped (they ended up being
-	  doubly-escaped).
-
-	- Support InnoDB contraint names when extracting foreign key info
-	  in DatabaseMetaData BUG#517 and BUG#664
-	  (impl. ideas from Parwinder Sekhon)
-
-	- Backported 4.1 protocol changes from 3.1 branch (server-side SQL
-	  states, new field info, larger client capability flags,
-	  connect-with-database, etc).
-
-	- Fix UpdatableResultSet to return values for getXXX() when on
-	  insert row (BUG#675).
-
-	- The insertRow in an UpdatableResultSet is now loaded with
-	  the default column values when moveToInsertRow() is called
-	  (BUG#688)
-
-	- DatabaseMetaData.getColumns() wasn't returning NULL for
-	  default values that are specified as NULL.
-
-	- Change default statement type/concurrency to TYPE_FORWARD_ONLY
-	  and CONCUR_READ_ONLY (spec compliance).
-
-	- Don't try and reset isolation level on reconnect if MySQL doesn't
-	  support them.
-
-	- Don't wrap SQLExceptions in RowDataDynamic.
-
-	- Don't change timestamp TZ twice if useTimezone==true (BUG#774)
-
-	- Fixed regression in large split-packet handling (BUG#848).
-
-	- Better diagnostic error messages in exceptions for 'streaming'
-	  result sets.
-
-	- Issue exception on ResultSet.getXXX() on empty result set (wasn't
-	  caught in some cases).
-
-	- Don't hide messages from exceptions thrown in I/O layers.
-
-	- Don't fire connection closed events when closing pooled connections, or
-	  on PooledConnection.getConnection() with already open connections (BUG#884).
-
-	- Clip +/- INF (to smallest and largest representative values for the type in
-	  MySQL) and NaN (to 0) for setDouble/setFloat(), and issue a warning on the
-	  statement when the server does not support +/- INF or NaN.
-
-	- Fix for BUG#879, double-escaping of '\' when charset is SJIS or GBK and '\'
-	  appears in non-escaped input.
-
-	- When emptying input stream of unused rows for 'streaming' result sets,
-	  have the current thread yield() every 100 rows in order to not monopolize
-	  CPU time.
-
-	- Fixed BUG#1099, DatabaseMetaData.getColumns() getting confused about the
-	  keyword 'set' in character columns.
-
-	- Fixed deadlock issue with Statement.setMaxRows().
-
-	- Fixed CLOB.truncate(), BUG#1130
-
-	- Optimized CLOB.setChracterStream(), BUG#1131
-
-	- Made databaseName, portNumber and serverName optional parameters
-	  for MysqlDataSourceFactory (BUG#1246)
-
-	- Fix for BUG#1247 -- ResultSet.get/setString mashing char 127
-
-	- Backported auth. changes for 4.1.1 and newer from 3.1 branch.
-
-	- Added com.mysql.jdbc.util.BaseBugReport to help creation of testcases
-	  for bug reports.
-
-	- Added property to 'clobber' streaming results, by setting the
-	  'clobberStreamingResults' property to 'true' (the default is 'false').
-	  This will cause a 'streaming' ResultSet to be automatically
-	  closed, and any oustanding data still streaming from the server to
-	  be discarded if another query is executed before all the data has been
-	  read from the server.
-
-05-23-03 - Version 3.0.8-stable
-
-	- Allow bogus URLs in Driver.getPropertyInfo().
-
-	- Return list of generated keys when using multi-value INSERTS
-	  with Statement.getGeneratedKeys().
-
-	- Use JVM charset with filenames and 'LOAD DATA [LOCAL] INFILE'
-
-	- Fix infinite loop with Connection.cleanup().
-
-	- Changed Ant target 'compile-core' to 'compile-driver', and
-	  made testsuite compilation a separate target.
-
-	- Fixed result set not getting set for Statement.executeUpdate(),
-	  which affected getGeneratedKeys() and getUpdateCount() in
-	  some cases.
-
-	- Unicode character 0xFFFF in a string would cause the driver to
-	  throw an ArrayOutOfBoundsException (Bug #378)
-
-	- Return correct amount of generated keys when using 'REPLACE'
-	  statements.
-
-	- Fix problem detecting server character set in some cases.
-
-	- Fix row data decoding error when using _very_ large packets.
-
-	- Optimized row data decoding.
-
-	- Issue exception when operating on an already-closed
-	  prepared statement.
-
-	- Fixed SJIS encoding bug, thanks to Naoto Sato.
-
-    - Optimized usage of EscapeProcessor.
-
-    - Allow multiple calls to Statement.close()
-
-04-08-03 - Version 3.0.7-stable
-
-    - Fixed MysqlPooledConnection.close() calling wrong event type.
-
-    - Fixed StringIndexOutOfBoundsException in PreparedStatement.
-      setClob().
-
-    - 4.1 Column Metadata fixes
-
-    - Remove synchronization from Driver.connect() and
-      Driver.acceptsUrl().
-
-    - IOExceptions during a transaction now cause the Connection to
-      be closed.
-
-    - Fixed missing conversion for 'YEAR' type in ResultSetMetaData.
-      getColumnTypeName().
-
-    - Don't pick up indexes that start with 'pri' as primary keys
-      for DBMD.getPrimaryKeys().
-
-    - Throw SQLExceptions when trying to do operations on a forcefully
-      closed Connection (i.e. when a communication link failure occurs).
-
-    - You can now toggle profiling on/off using
-      Connection.setProfileSql(boolean).
-
-    - Fixed charset issues with database metadata (charset was not
-      getting set correctly).
-
-    - Updatable ResultSets can now be created for aliased tables/columns
-      when connected to MySQL-4.1 or newer.
-
-    - Fixed 'LOAD DATA LOCAL INFILE' bug when file > max_allowed_packet.
-
-    - Fixed escaping of 0x5c ('\') character for GBK and Big5 charsets.
-
-    - Fixed ResultSet.getTimestamp() when underlying field is of type DATE.
-
-    - Ensure that packet size from alignPacketSize() does not
-      exceed MAX_ALLOWED_PACKET (JVM bug)
-
-    - Don't reset Connection.isReadOnly() when autoReconnecting.
-
-02-18-03 - Version 3.0.6-stable
-
-    - Fixed ResultSetMetaData to return "" when catalog not known.
-      Fixes NullPointerExceptions with Sun's CachedRowSet.
-
-    - Fixed DBMD.getTypeInfo() and DBMD.getColumns() returning
-      different value for precision in TEXT/BLOB types.
-
-    - Allow ignoring of warning for 'non transactional tables' during
-      rollback (compliance/usability) by setting 'ignoreNonTxTables'
-      property to 'true'.
-
-    - Fixed SQLExceptions getting swallowed on initial connect.
-
-    - Fixed Statement.setMaxRows() to stop sending 'LIMIT' type queries
-      when not needed (performance)
-
-    - Clean up Statement query/method mismatch tests (i.e. INSERT not
-      allowed with .executeQuery()).
-
-    - More checks added in ResultSet traversal method to catch
-      when in closed state.
-
-    - Fixed ResultSetMetaData.isWritable() to return correct value.
-
-    - Add 'window' of different NULL sorting behavior to
-      DBMD.nullsAreSortedAtStart (4.0.2 to 4.0.10, true, otherwise,
-      no).
-
-    - Implemented Blob.setBytes(). You still need to pass the
-      resultant Blob back into an updatable ResultSet or
-      PreparedStatement to persist the changes, as MySQL does
-      not support 'locators'.
-
-    - Backported 4.1 charset field info changes from Connector/J 3.1
-
-01-22-03 - Version 3.0.5-gamma
-
-    - Fixed Buffer.fastSkipLenString() causing ArrayIndexOutOfBounds
-      exceptions with some queries when unpacking fields.
-
-    - Implemented an empty TypeMap for Connection.getTypeMap() so that
-      some third-party apps work with MySQL (IBM WebSphere 5.0 Connection
-      pool).
-
-    - Added missing LONGTEXT type to DBMD.getColumns().
-
-    - Retrieve TX_ISOLATION from database for
-      Connection.getTransactionIsolation() when the MySQL version
-      supports it, instead of an instance variable.
-
-    - Quote table names in DatabaseMetaData.getColumns(),
-      getPrimaryKeys(), getIndexInfo(), getBestRowIdentifier()
-
-    - Greatly reduce memory required for setBinaryStream() in
-      PreparedStatements.
-
-    - Fixed ResultSet.isBeforeFirst() for empty result sets.
-
-    - Added update options for foreign key metadata.
-
-
-01-06-03 - Version 3.0.4-gamma
-
-    - Added quoted identifiers to database names for
-      Connection.setCatalog.
-
-    - Added support for quoted identifiers in PreparedStatement
-      parser.
-
-    - Streamlined character conversion and byte[] handling in
-      PreparedStatements for setByte().
-
-    - Reduce memory footprint of PreparedStatements by sharing
-      outbound packet with MysqlIO.
-
-    - Added 'strictUpdates' property to allow control of amount
-      of checking for 'correctness' of updatable result sets. Set this
-      to 'false' if you want faster updatable result sets and you know
-      that you create them from SELECTs on tables with primary keys and
-      that you have selected all primary keys in your query.
-
-    - Added support for 4.0.8-style large packets.
-
-    - Fixed PreparedStatement.executeBatch() parameter overwriting.
-
-12-17-02 - Version 3.0.3-dev
-
-    - Changed charsToByte in SingleByteCharConverter to be non-static
-
-    - Changed SingleByteCharConverter to use lazy initialization of each
-      converter.
-
-    - Fixed charset handling in Fields.java
-
-    - Implemented Connection.nativeSQL()
-
-    - More robust escape tokenizer -- recognize '--' comments, and allow
-      nested escape sequences (see testsuite.EscapeProcessingTest)
-
-    - DBMD.getImported/ExportedKeys() now handles multiple foreign keys
-      per table.
-
-    - Fixed ResultSetMetaData.getPrecision() returning incorrect values
-      for some floating point types.
-
-    - Fixed ResultSetMetaData.getColumnTypeName() returning BLOB for
-      TEXT and TEXT for BLOB types.
-
-    - Fixed Buffer.isLastDataPacket() for 4.1 and newer servers.
-
-    - Added CLIENT_LONG_FLAG to be able to get more column flags
-      (isAutoIncrement() being the most important)
-
-    - Because of above, implemented ResultSetMetaData.isAutoIncrement()
-      to use Field.isAutoIncrement().
-
-    - Honor 'lower_case_table_names' when enabled in the server when
-      doing table name comparisons in DatabaseMetaData methods.
-
-    - Some MySQL-4.1 protocol support (extended field info from selects)
-
-    - Use non-aliased table/column names and database names to fullly
-      qualify tables and columns in UpdatableResultSet (requires
-      MySQL-4.1 or newer)
-
-    - Allow user to alter behavior of Statement/
-      PreparedStatement.executeBatch() via 'continueBatchOnError' property
-      (defaults to 'true').
-
-    - Check for connection closed in more Connection methods
-      (createStatement, prepareStatement, setTransactionIsolation,
-      setAutoCommit).
-
-    - More robust implementation of updatable result sets. Checks that
-      _all_ primary keys of the table have been selected.
-
-    - 'LOAD DATA LOCAL INFILE ...' now works, if your server is configured
-      to allow it. Can be turned off with the 'allowLoadLocalInfile'
-      property (see the README).
-
-    - Substitute '?' for unknown character conversions in single-byte
-      character sets instead of '\0'.
-
-    - NamedPipeSocketFactory now works (only intended for Windows), see
-      README for instructions.
-
-11-08-02 - Version 3.0.2-dev
-
-    - Fixed issue with updatable result sets and PreparedStatements not
-      working
-
-    - Fixed ResultSet.setFetchDirection(FETCH_UNKNOWN)
-
-    - Fixed issue when calling Statement.setFetchSize() when using
-      arbitrary values
-
-    - Fixed incorrect conversion in ResultSet.getLong()
-
-    - Implemented ResultSet.updateBlob().
-
-    - Removed duplicate code from UpdatableResultSet (it can be inherited
-      from ResultSet, the extra code for each method to handle updatability
-      I thought might someday be necessary has not been needed).
-
-    - Fixed "UnsupportedEncodingException" thrown when "forcing" a
-      character encoding via properties.
-
-    - Fixed various non-ASCII character encoding issues.
-
-    - Added driver property 'useHostsInPrivileges'. Defaults to true.
-      Affects whether or not '@hostname' will be used in
-      DBMD.getColumn/TablePrivileges.
-
-    - All DBMD result set columns describing schemas now return NULL
-      to be more compliant with the behavior of other JDBC drivers
-      for other databases (MySQL does not support schemas).
-
-    - Added SSL support. See README for information on how to use it.
-
-    - Properly restore connection properties when autoReconnecting
-      or failing-over, including autoCommit state, and isolation level.
-
-    - Use 'SHOW CREATE TABLE' when possible for determining foreign key
-      information for DatabaseMetaData...also allows cascade options for
-      DELETE information to be returned
-
-    - Escape 0x5c character in strings for the SJIS charset.
-
-    - Fixed start position off-by-1 error in Clob.getSubString()
-
-    - Implemented Clob.truncate()
-
-    - Implemented Clob.setString()
-
-    - Implemented Clob.setAsciiStream()
-
-    - Implemented Clob.setCharacterStream()
-
-    - Added com.mysql.jdbc.MiniAdmin class, which allows you to send
-      'shutdown' command to MySQL server...Intended to be used when 'embedding'
-      Java and MySQL server together in an end-user application.
-
-    - Added 'connectTimeout' parameter that allows users of JDK-1.4 and newer
-      to specify a maxium time to wait to establish a connection.
-
-    - Failover and autoReconnect only work when the connection is in a
-      autoCommit(false) state, in order to stay transaction safe
-
-    - Added 'queriesBeforeRetryMaster' property that specifies how many
-      queries to issue when failed over before attempting to reconnect
-      to the master (defaults to 50)
-
-    - Fixed DBMD.supportsResultSetConcurrency() so that it returns true
-      for ResultSet.TYPE_SCROLL_INSENSITIVE and ResultSet.CONCUR_READ_ONLY or
-      ResultSet.CONCUR_UPDATABLE
-
-    - Fixed ResultSet.isLast() for empty result sets (should return false).
-
-    - PreparedStatement now honors stream lengths in setBinary/Ascii/Character
-      Stream() unless you set the connection property
-      'useStreamLengthsInPrepStmts' to 'false'.
-
-    - Removed some not-needed temporary object creation by using Strings
-      smarter in EscapeProcessor, Connection and DatabaseMetaData classes.
-
-09-21-02 - Version 3.0.1-dev
-
-    - Fixed ResultSet.getRow() off-by-one bug.
-
-    - Fixed RowDataStatic.getAt() off-by-one bug.
-
-    - Added limited Clob functionality (ResultSet.getClob(),
-      PreparedStatemtent.setClob(),
-      PreparedStatement.setObject(Clob).
-
-    - Added socketTimeout parameter to URL.
-
-    - Connection.isClosed() no longer "pings" the server.
-
-    - Connection.close() issues rollback() when getAutoCommit() == false
-
-    - Added "paranoid" parameter...sanitizes error messages removing
-      "sensitive" information from them (i.e. hostnames, ports,
-      usernames, etc.), as well as clearing "sensitive" data structures
-      when possible.
-
-    - Fixed ResultSetMetaData.isSigned() for TINYINT and BIGINT.
-
-    - Charsets now automatically detected. Optimized code for single-byte
-      character set conversion.
-
-    - Implemented ResultSet.getCharacterStream()
-
-    - Added "LOCAL TEMPORARY" to table types in DatabaseMetaData.getTableTypes()
-
-    - Massive code clean-up to follow Java coding conventions (the time had come)
-
-
-07-31-02 - Version 3.0.0-dev
-
-    - !!! LICENSE CHANGE !!! The driver is now GPL. If you need
-      non-GPL licenses, please contact me <mark at mysql.com>
-
-    - JDBC-3.0 functionality including
-      Statement/PreparedStatement.getGeneratedKeys() and
-      ResultSet.getURL()
-
-    - Performance enchancements - driver is now 50-100% faster
-      in most situations, and creates fewer temporary objects
-
-    - Repackaging...new driver name is "com.mysql.jdbc.Driver",
-      old name still works, though (the driver is now provided
-      by MySQL-AB)
-
-    - Better checking for closed connections in Statement
-      and PreparedStatement.
-
-    - Support for streaming (row-by-row) result sets (see README)
-      Thanks to Doron.
-
-    - Support for large packets (new addition to MySQL-4.0 protocol),
-      see README for more information.
-
-    - JDBC Compliance -- Passes all tests besides stored procedure tests
-
-
-    - Fix and sort primary key names in DBMetaData (SF bugs 582086 and 582086)
-
-    - Float types now reported as java.sql.Types.FLOAT (SF bug 579573)
-
-    - ResultSet.getTimestamp() now works for DATE types (SF bug 559134)
-
-    - ResultSet.getDate/Time/Timestamp now recognizes all forms of invalid
-      values that have been set to all zeroes by MySQL (SF bug 586058)
-
-    - Testsuite now uses Junit (which you can get from www.junit.org)
-
-    - The driver now only works with JDK-1.2 or newer.
-
-    - Added multi-host failover support (see README)
-
-    - General source-code cleanup.
-
-    - Overall speed improvements via controlling transient object
-      creation in MysqlIO class when reading packets
-
-    - Performance improvements in  string handling and field
-      metadata creation (lazily instantiated) contributed by
-      Alex Twisleton-Wykeham-Fiennes
-
-
-05-16-02 - Version 2.0.14
-
-    - More code cleanup
-
-    - PreparedStatement now releases resources on .close() (SF bug 553268)
-
-    - Quoted identifiers not used if server version does not support them. Also,
-      if server started with --ansi or --sql-mode=ANSI_QUOTES then '"' will be
-      used as an identifier quote, otherwise '`' will be used.
-
-    - ResultSet.getDouble() now uses code built into JDK to be more precise (but slower)
-
-    - LogicalHandle.isClosed() calls through to physical connection
-
-    - Added SQL profiling (to STDERR). Set "profileSql=true" in your JDBC url.
-      See README for more information.
-
-    - Fixed typo for relaxAutoCommit parameter.
-
-04-24-02 - Version 2.0.13
-
-    - More code cleanup.
-
-    - Fixed unicode chars being read incorrectly (SF bug 541088)
-
-    - Faster blob escaping for PrepStmt
-
-    - Added set/getPortNumber() to DataSource(s) (SF bug 548167)
-
-    - Added setURL() to MySQLXADataSource (SF bug 546019)
-
-    - PreparedStatement.toString() fixed (SF bug 534026)
-
-    - ResultSetMetaData.getColumnClassName() now implemented
-
-    - Rudimentary version of Statement.getGeneratedKeys() from JDBC-3.0
-      now implemented (you need to be using JDK-1.4 for this to work, I
-      believe)
-
-    - DBMetaData.getIndexInfo() - bad PAGES fixed (SF BUG 542201)
-
-04-07-02 - Version 2.0.12
-
-    - General code cleanup.
-
-    - Added getIdleFor() method to Connection and MysqlLogicalHandle.
-
-    - Relaxed synchronization in all classes, should fix 520615 and 520393.
-
-    - Added getTable/ColumnPrivileges() to DBMD (fixes 484502).
-
-    - Added new types to getTypeInfo(), fixed existing types thanks to
-      Al Davis and Kid Kalanon.
-
-    - Added support for BIT types (51870) to PreparedStatement.
-
-    - Fixed getRow() bug (527165) in ResultSet
-
-    - Fixes for ResultSet updatability in PreparedStatement.
-    - Fixed timezone off by 1-hour bug in PreparedStatement (538286, 528785).
-
-    - ResultSet: Fixed updatability (values being set to null
-      if not updated).
-
-    - DataSources - fixed setUrl bug (511614, 525565),
-      wrong datasource class name (532816, 528767)
-
-    - Added identifier quoting to all DatabaseMetaData methods
-      that need them (should fix 518108)
-
-    - Added support for YEAR type (533556)
-
-    - ResultSet.insertRow() should now detect auto_increment fields
-      in most cases and use that value in the new row. This detection
-      will not work in multi-valued keys, however, due to the fact that
-      the MySQL protocol does not return this information.
-
-    - ResultSet.refreshRow() implemented.
-
-    - Fixed testsuite.Traversal afterLast() bug, thanks to Igor Lastric.
-
-01-27-02 - Version 2.0.11
-
-    - Fixed missing DELETE_RULE value in
-      DBMD.getImported/ExportedKeys() and getCrossReference().
-
-    - Full synchronization of Statement.java.
-
-    - More changes to fix "Unexpected end of input stream"
-      errors when reading BLOBs. This should be the last fix.
-
-01-24-02 - Version 2.0.10
-
-     - Fixed spurious "Unexpected end of input stream" errors in
-       MysqlIO (bug 507456).
-
-     - Fixed null-pointer-exceptions when using
-       MysqlConnectionPoolDataSource with Websphere 4 (bug 505839).
-
-01-13-02 - Version 2.0.9
-
-     - Ant build was corrupting included jar files, fixed
-       (bug 487669).
-
-     - Fixed extra memory allocation in MysqlIO.readPacket()
-       (bug 488663).
-
-     - Implementation of DatabaseMetaData.getExported/ImportedKeys() and
-       getCrossReference().
-
-     - Full synchronization on methods modifying instance and class-shared
-       references, driver should be entirely thread-safe now (please
-       let me know if you have problems)
-
-     - DataSource implementations moved to org.gjt.mm.mysql.jdbc2.optional
-       package, and (initial) implementations of PooledConnectionDataSource
-       and XADataSource are in place (thanks to Todd Wolff for the
-       implementation and testing of PooledConnectionDataSource with
-       IBM WebSphere 4).
-
-     - Added detection of network connection being closed when reading packets
-       (thanks to Todd Lizambri).
-
-     - Fixed quoting error with escape processor (bug 486265).
-
-     - Report batch update support through DatabaseMetaData (bug 495101).
-
-     - Fixed off-by-one-hour error in PreparedStatement.setTimestamp()
-       (bug 491577).
-
-     - Removed concatenation support from driver (the '||' operator),
-       as older versions of VisualAge seem to be the only thing that
-       use it, and it conflicts with the logical '||' operator. You will
-       need to start mysqld with the "--ansi" flag to use the '||'
-       operator as concatenation (bug 491680)
-
-     - Fixed casting bug in PreparedStatement (bug 488663).
-
-11-25-01 - Version 2.0.8
-
-     - Batch updates now supported (thanks to some inspiration
-       from Daniel Rall).
-
-     - XADataSource/ConnectionPoolDataSource code (experimental)
-
-     - PreparedStatement.setAnyNumericType() now handles positive
-       exponents correctly (adds "+" so MySQL can understand it).
-
-     - DatabaseMetaData.getPrimaryKeys() and getBestRowIdentifier()
-       are now more robust in identifying primary keys (matches
-       regardless of case or abbreviation/full spelling of Primary Key
-       in Key_type column).
-
-10-24-01 - Version 2.0.7
-
-     - PreparedStatement.setCharacterStream() now implemented
-
-     - Fixed dangling socket problem when in high availability
-       (autoReconnect=true) mode, and finalizer for Connection will
-       close any dangling sockets on GC.
-
-     - Fixed ResultSetMetaData.getPrecision() returning one
-       less than actual on newer versions of MySQL.
-
-     - ResultSet.getBlob() now returns null if column value
-       was null.
-
-     - Character sets read from database if useUnicode=true
-       and characterEncoding is not set. (thanks to
-       Dmitry Vereshchagin)
-
-     - Initial transaction isolation level read from
-       database (if avaialable) (thanks to Dmitry Vereshchagin)
-
-     - Fixed DatabaseMetaData.supportsTransactions(), and
-       supportsTransactionIsolationLevel() and getTypeInfo()
-       SQL_DATETIME_SUB and SQL_DATA_TYPE fields not being
-       readable.
-
-     - Fixed PreparedStatement generating SQL that would end
-       up with syntax errors for some queries.
-
-     - Fixed ResultSet.isAfterLast() always returning false.
-
-     - Fixed timezone issue in PreparedStatement.setTimestamp()
-       (thanks to Erik Olofsson)
-
-     - Captialize type names when "captializeTypeNames=true"
-       is passed in URL or properties (for WebObjects, thanks
-       to Anjo Krank)
-
-     - Updatable result sets now correctly handle NULL
-       values in fields.
-
-     - PreparedStatement.setDouble() now uses full-precision
-       doubles (reverting a fix made earlier to truncate them).
-
-     - PreparedStatement.setBoolean() will use 1/0 for values
-       if your MySQL Version >= 3.21.23.
-
-06-16-01 - Version 2.0.6
-
-Fixed PreparedStatement parameter checking
-
-     - Fixed case-sensitive column names in ResultSet.java
-
-06-13-01 - Version 2.0.5
-
-     - Fixed ResultSet.getBlob() ArrayIndex out-of-bounds
-
-     - Fixed ResultSetMetaData.getColumnTypeName for TEXT/BLOB
-
-     - Fixed ArrayIndexOutOfBounds when sending large BLOB queries
-       (Max size packet was not being set)
-
-     - Added ISOLATION level support to Connection.setIsolationLevel()
-
-     - Fixed NPE on PreparedStatement.executeUpdate() when all columns
-       have not been set.
-
-     - Fixed data parsing of TIMESTAMPs with 2-digit years
-
-     - Added Byte to PreparedStatement.setObject()
-
-     - ResultSet.getBoolean() now recognizes '-1' as 'true'
-
-     - ResultSet has +/-Inf/inf support
-
-     - ResultSet.insertRow() works now, even if not all columns are
-       set (they will be set to "NULL")
-
-     - DataBaseMetaData.getCrossReference() no longer ArrayIndexOOB
-
-     - getObject() on ResultSet correctly does TINYINT->Byte and
-       SMALLINT->Short
-
-12-03-00 - Version 2.0.3
-
-     - Implemented getBigDecimal() without scale component
-       for JDBC2.
-
-     - Fixed composite key problem with updateable result sets.
-
-     - Added detection of -/+INF for doubles.
-
-     - Faster ASCII string operations.
-
-     - Fixed incorrect detection of MAX_ALLOWED_PACKET, so sending
-       large blobs should work now.
-
-     - Fixed off-by-one error in java.sql.Blob implementation code.
-
-     - Added "ultraDevHack" URL parameter, set to "true" to allow
-       (broken) Macromedia UltraDev to use the driver.
-
-04-06-00 - Version 2.0.1
-
-     - Fixed RSMD.isWritable() returning wrong value.
-       Thanks to Moritz Maass.
-
-     - Cleaned up exception handling when driver connects
-
-     - Columns that are of type TEXT now return as Strings
-       when you use getObject()
-
-     - DatabaseMetaData.getPrimaryKeys() now works correctly wrt
-       to key_seq. Thanks to Brian Slesinsky.
-
-     - No escape processing is done on PreparedStatements anymore
-       per JDBC spec.
-
-     - Fixed many JDBC-2.0 traversal, positioning bugs, especially
-       wrt to empty result sets. Thanks to Ron Smits, Nick Brook,
-       Cessar Garcia and Carlos Martinez.
-
-     - Fixed some issues with updatability support in ResultSet when
-       using multiple primary keys.
-
-02-21-00 - Version 2.0pre5
-
-     - Fixed Bad Handshake problem.
-
-01-10-00 - Version 2.0pre4
-
-     - Fixes to ResultSet for insertRow() - Thanks to
-       Cesar Garcia
-
-     - Fix to Driver to recognize JDBC-2.0 by loading a JDBC-2.0
-       class, instead of relying on JDK version numbers. Thanks
-       to John Baker.
-
-     - Fixed ResultSet to return correct row numbers
-
-     - Statement.getUpdateCount() now returns rows matched,
-       instead of rows actually updated, which is more SQL-92
-       like.
-
-10-29-99
-
-     - Statement/PreparedStatement.getMoreResults() bug fixed.
-       Thanks to Noel J. Bergman.
-
-     - Added Short as a type to PreparedStatement.setObject().
-       Thanks to Jeff Crowder
-
-     - Driver now automagically configures maximum/preferred packet
-       sizes by querying server.
-
-     - Autoreconnect code uses fast ping command if server supports
-       it.
-
-     - Fixed various bugs wrt. to packet sizing when reading from
-       the server and when alloc'ing to write to the server.
-
-08-17-99 - Version 2.0pre
-
-     - Now compiles under JDK-1.2. The driver supports both JDK-1.1
-       and JDK-1.2 at the same time through a core set of classes.
-       The driver will load the appropriate interface classes at
-       runtime by figuring out which JVM version you are using.
-
-     - Fixes for result sets with all nulls in the first row.
-       (Pointed out by Tim Endres)
-
-     - Fixes to column numbers in SQLExceptions in ResultSet
-       (Thanks to Blas Rodriguez Somoza)
-
-     - The database no longer needs to specified to connect.
-       (Thanks to Christian Motschke)
-
-07-04-99 - Version 1.2b
-
-     - Better Documentation (in progress), in doc/mm.doc/book1.html
-
-     - DBMD now allows null for a column name pattern (not in
-       spec), which it changes to '%'.
-
-     - DBMD now has correct types/lengths for getXXX().
-
-     - ResultSet.getDate(), getTime(), and getTimestamp() fixes.
-       (contributed by Alan Wilken)
-
-     - EscapeProcessor now handles \{ \} and { or } inside quotes
-       correctly. (thanks to Alik for some ideas on how to fix it)
-
-     - Fixes to properties handling in Connection.
-       (contributed by Juho Tikkala)
-
-     - ResultSet.getObject() now returns null for NULL columns
-       in the table, rather than bombing out.
-       (thanks to Ben Grosman)
-
-     - ResultSet.getObject() now returns Strings for types
-       from MySQL that it doesn't know about. (Suggested by
-       Chris Perdue)
-
-     - Removed DataInput/Output streams, not needed, 1/2 number
-       of method calls per IO operation.
-
-     - Use default character encoding if one is not specified. This
-       is a work-around for broken JVMs, because according to spec,
-       EVERY JVM must support "ISO8859_1", but they don't.
-
-     - Fixed Connection to use the platform character encoding
-       instead of "ISO8859_1" if one isn't explicitly set. This
-       fixes problems people were having loading the character-
-       converter classes that didn't always exist (JVM bug).
-       (thanks to Fritz Elfert for pointing out this problem)
-
-     - Changed MysqlIO to re-use packets where possible to reduce
-       memory usage.
-
-     - Fixed escape-processor bugs pertaining to {} inside
-       quotes.
-
-04-14-99 - Version 1.2a
-
-     - Fixed character-set support for non-Javasoft JVMs
-       (thanks to many people for pointing it out)
-
-     - Fixed ResultSet.getBoolean() to recognize 'y' & 'n'
-       as well as '1' & '0' as boolean flags.
-       (thanks to Tim Pizey)
-
-     - Fixed ResultSet.getTimestamp() to give better performance.
-       (thanks to Richard Swift)
-
-     - Fixed getByte() for numeric types.
-       (thanks to Ray Bellis)
-
-     - Fixed DatabaseMetaData.getTypeInfo() for DATE type.
-       (thanks to Paul Johnston)
-
-     - Fixed EscapeProcessor for "fn" calls.
-       (thanks to Piyush Shah at locomotive.org)
-
-     - Fixed EscapeProcessor to not do extraneous work if there
-       are no escape codes.
-       (thanks to Ryan Gustafson)
-
-     - Fixed Driver to parse URLs of the form "jdbc:mysql://host:port"
-       (thanks to Richard Lobb)
-
-03-24-99 - Version 1.1i
-
-     - Fixed Timestamps for PreparedStatements
-
-     - Fixed null pointer exceptions in RSMD and RS
-
-     - Re-compiled with jikes for valid class files (thanks ms!)
-
-03-08-99 - Version 1.1h
-
-     - Fixed escape processor to deal with un-matched { and }
-       (thanks to Craig Coles)
-
-     - Fixed escape processor to create more portable (between
-       DATETIME and TIMESTAMP types) representations so that
-       it will work with BETWEEN clauses.
-       (thanks to Craig Longman)
-
-     - MysqlIO.quit() now closes the socket connection. Before,
-       after many failed connections some OS's would run out
-       of file descriptors. (thanks to Michael Brinkman)
-
-     - Fixed NullPointerException in Driver.getPropertyInfo.
-       (thanks to Dave Potts)
-
-     - Fixes to MysqlDefs to allow all *text fields to be
-       retrieved as Strings.
-       (thanks to Chris at Leverage)
-
-     - Fixed setDouble in PreparedStatement for large numbers
-       to avoid sending scientific notation to the database.
-       (thanks to J.S. Ferguson)
-
-     - Fixed getScale() and getPrecision() in RSMD.
-       (contrib'd by James Klicman)
-
-     - Fixed getObject() when field was DECIMAL or NUMERIC
-       (thanks to Bert Hobbs)
-
-     - DBMD.getTables() bombed when passed a null table-name
-       pattern. Fixed. (thanks to Richard Lobb)
-
-     - Added check for "client not authorized" errors during
-       connect. (thanks to Hannes Wallnoefer)
-
-02-19-99 - Version 1.1g
-
-     - Result set rows are now byte arrays. Blobs and Unicode
-       work bidriectonally now. The useUnicode and encoding
-       options are implemented now.
-
-     - Fixes to PreparedStatement to send binary set by
-       setXXXStream to be sent un-touched to the MySQL server.
-
-     - Fixes to getDriverPropertyInfo().
-
-12-31-98 - Version 1.1f
-
-     - Changed all ResultSet fields to Strings, this should allow
-       Unicode to work, but your JVM must be able to convert
-       between the character sets. This should also make reading
-       data from the server be a bit quicker, because there is now
-       no conversion from StringBuffer to String.
-
-     - Changed PreparedStatement.streamToString() to be more
-       efficient (code from Uwe Schaefer).
-
-     - URL parsing is more robust (throws SQL exceptions on errors
-       rather than NullPointerExceptions)
-
-     - PreparedStatement now can convert Strings to Time/Date values
-       via setObject() (code from Robert Currey).
-
-     - IO no longer hangs in Buffer.readInt(), that bug was
-       introduced in 1.1d when changing to all byte-arrays for
-       result sets. (Pointed out by Samo Login)
-
-11-03-98 - Version 1.1b
-
-     - Fixes to DatabaseMetaData to allow both IBM VA and J-Builder
-       to work. Let me know how it goes. (thanks to Jac Kersing)
-
-     - Fix to ResultSet.getBoolean() for NULL strings
-       (thanks to Barry Lagerweij)
-
-     - Beginning of code cleanup, and formatting. Getting ready
-       to branch this off to a parallel JDBC-2.0 source tree.
-
-     - Added "final" modifier to critical sections in MysqlIO and
-       Buffer to allow compiler to inline methods for speed.
-
-9-29-98
-
-     - If object references passed to setXXX() in PreparedStatement are
-       null, setNull() is automatically called for you. (Thanks for the
-       suggestion goes to Erik Ostrom)
-
-     - setObject() in PreparedStatement will now attempt to write a
-       serialized  representation of the object to the database for
-       objects of Types.OTHER and objects of unknown type.
-
-     - Util now has a static method readObject() which given a ResultSet
-       and a column index will re-instantiate an object serialized in
-       the above manner.
-
-9-02-98 - Vesion 1.1
-
-     - Got rid of "ugly hack" in MysqlIO.nextRow(). Rather than
-       catch an exception, Buffer.isLastDataPacket() was fixed.
-
-     - Connection.getCatalog() and Connection.setCatalog()
-       should work now.
-
-     - Statement.setMaxRows() works, as well as setting
-       by property maxRows. Statement.setMaxRows() overrides
-       maxRows set via properties or url parameters.
-
-     - Automatic re-connection is available. Because it has
-       to "ping" the database before each query, it is
-       turned off by default. To use it, pass in "autoReconnect=true"
-       in the connection URL. You may also change the number of
-       reconnect tries, and the initial timeout value via
-       "maxReconnects=n" (default 3) and "initialTimeout=n"
-       (seconds, default 2) parameters. The timeout is an
-       exponential backoff type of timeout, e.g. if you have initial
-       timeout of 2 seconds, and maxReconnects of 3, then the driver
-       will timeout 2 seconds, 4 seconds, then 16 seconds between each
-       re-connection attempt.
-
-8-24-98 - Version 1.0
-
-     - Fixed handling of blob data in Buffer.java
-
-     - Fixed bug with authentication packet being
-       sized too small.
-
-     - The JDBC Driver is now under the LPGL
-
-8-14-98 -
-
-     - Fixed Buffer.readLenString() to correctly
-          read data for BLOBS.
-
-     - Fixed PreparedStatement.stringToStream to
-          correctly read data for BLOBS.
-
-     - Fixed PreparedStatement.setDate() to not
-       add a day.
-       (above fixes thanks to Vincent Partington)
-
-     - Added URL parameter parsing (?user=... etc).
-
-
-8-04-98 - Version 0.9d
-
-     - Big news! New package name. Tim Endres from ICE
-       Engineering is starting a new source tree for
-       GNU GPL'd Java software. He's graciously given
-       me the org.gjt.mm package directory to use, so now
-       the driver is in the org.gjt.mm.mysql package scheme.
-       I'm "legal" now. Look for more information on Tim's
-       project soon.
-
-     - Now using dynamically sized packets to reduce
-       memory usage when sending commands to the DB.
-
-     - Small fixes to getTypeInfo() for parameters, etc.
-
-     - DatabaseMetaData is now fully implemented. Let me
-       know if these drivers work with the various IDEs
-       out there. I've heard that they're working with
-       JBuilder right now.
-
-     - Added JavaDoc documentation to the package.
-
-     - Package now available in .zip or .tar.gz.
-
-7-28-98 - Version 0.9
-
-     - Implemented getTypeInfo().
-       Connection.rollback() now throws an SQLException
-       per the JDBC spec.
-
-     - Added PreparedStatement that supports all JDBC API
-       methods for PreparedStatement including InputStreams.
-       Please check this out and let me know if anything is
-       broken.
-
-     - Fixed a bug in ResultSet that would break some
-       queries that only returned 1 row.
-
-     - Fixed bugs in DatabaseMetaData.getTables(),
-       DatabaseMetaData.getColumns() and
-       DatabaseMetaData.getCatalogs().
-
-     - Added functionality to Statement that allows
-       executeUpdate() to store values for IDs that are
-       automatically generated for AUTO_INCREMENT fields.
-       Basically, after an executeUpdate(), look at the
-       SQLWarnings for warnings like "LAST_INSERTED_ID =
-       'some number', COMMAND = 'your SQL query'".
-
-       If you are using AUTO_INCREMENT fields in your
-       tables and are executing a lot of executeUpdate()s
-       on one Statement, be sure to clearWarnings() every
-       so often to save memory.
-
-7-06-98 - Version 0.8
-
-     - Split MysqlIO and Buffer to separate classes. Some
-       ClassLoaders gave an IllegalAccess error for some
-       fields in those two classes. Now mm.mysql works in
-       applets and all classloaders.
-
-       Thanks to Joe Ennis <jce at mail.boone.com> for pointing
-       out the problem and working on a fix with me.
-
-7-01-98 - Version 0.7
-
-     - Fixed DatabaseMetadata problems in getColumns() and
-       bug in switch statement in the Field constructor.
-
-       Thanks to Costin Manolache <costin at tdiinc.com> for
-       pointing these out.
-
-5-21-98 - Version 0.6
-
-     - Incorporated efficiency changes from
-       Richard Swift <Richard.Swift at kanatek.ca> in
-       MysqlIO.java and ResultSet.java
-
-     - We're now 15% faster than gwe's driver.
-
-     - Started working on DatabaseMetaData.
-
-       The following methods are implemented:
-        * getTables()
-        * getTableTypes()
-        * getColumns
-        * getCatalogs()

Deleted: trunk/mysql-connector-java/COPYING
===================================================================
--- trunk/mysql-connector-java/COPYING	2011-08-25 05:27:05 UTC (rev 14475)
+++ trunk/mysql-connector-java/COPYING	2011-08-25 06:58:31 UTC (rev 14476)
@@ -1,343 +0,0 @@
-GNU General Public License
-**************************
-
-     	    GNU GENERAL PUBLIC LICENSE
-     	       Version 2, June 1991
-     
-     Copyright (C) 1989, 1991 Free Software Foundation, Inc.
-     		  675 Mass Ave, Cambridge, MA 02139, USA
-     Everyone is permitted to copy and distribute verbatim copies
-     of this license document, but changing it is not allowed.
-     
-     		    Preamble
-     
-     The licenses for most software are designed to take away your
-     freedom to share and change it.  By contrast, the GNU General Public
-     License is intended to guarantee your freedom to share and change free
-     software--to make sure the software is free for all its users.  This
-     General Public License applies to most of the Free Software
-     Foundation's software and to any other program whose authors commit to
-     using it.  (Some other Free Software Foundation software is covered by
-     the GNU Library General Public License instead.)  You can apply it to
-     your programs, too.
-     
-     When we speak of free software, we are referring to freedom, not
-     price.  Our General Public Licenses are designed to make sure that you
-     have the freedom to distribute copies of free software (and charge for
-     this service if you wish), that you receive source code or can get it
-     if you want it, that you can change the software or use pieces of it
-     in new free programs; and that you know you can do these things.
-     
-     To protect your rights, we need to make restrictions that forbid
-     anyone to deny you these rights or to ask you to surrender the rights.
-     These restrictions translate to certain responsibilities for you if you
-     distribute copies of the software, or if you modify it.
-     
-     For example, if you distribute copies of such a program, whether
-     gratis or for a fee, you must give the recipients all the rights that
-     you have.  You must make sure that they, too, receive or can get the
-     source code.  And you must show them these terms so they know their
-     rights.
-     
-     We protect your rights with two steps: (1) copyright the software, and
-     (2) offer you this license which gives you legal permission to copy,
-     distribute and/or modify the software.
-     
-     Also, for each author's protection and ours, we want to make certain
-     that everyone understands that there is no warranty for this free
-     software.  If the software is modified by someone else and passed on, we
-     want its recipients to know that what they have is not the original, so
-     that any problems introduced by others will not reflect on the original
-     authors' reputations.
-     
-     Finally, any free program is threatened constantly by software
-     patents.  We wish to avoid the danger that redistributors of a free
-     program will individually obtain patent licenses, in effect making the
-     program proprietary.  To prevent this, we have made it clear that any
-     patent must be licensed for everyone's free use or not licensed at all.
-     
-     The precise terms and conditions for copying, distribution and
-     modification follow.
-     
-     	    GNU GENERAL PUBLIC LICENSE
-     TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
-     
-     0. This License applies to any program or other work which contains
-     a notice placed by the copyright holder saying it may be distributed
-     under the terms of this General Public License.  The "Program", below,
-     refers to any such program or work, and a "work based on the Program"
-     means either the Program or any derivative work under copyright law:
-     that is to say, a work containing the Program or a portion of it,
-     either verbatim or with modifications and/or translated into another
-     language.  (Hereinafter, translation is included without limitation in
-     the term "modification".)  Each licensee is addressed as "you".
-     
-     Activities other than copying, distribution and modification are not
-     covered by this License; they are outside its scope.  The act of
-     running the Program is not restricted, and the output from the Program
-     is covered only if its contents constitute a work based on the
-     Program (independent of having been made by running the Program).
-     Whether that is true depends on what the Program does.
-     
-     1. You may copy and distribute verbatim copies of the Program's
-     source code as you receive it, in any medium, provided that you
-     conspicuously and appropriately publish on each copy an appropriate
-     copyright notice and disclaimer of warranty; keep intact all the
-     notices that refer to this License and to the absence of any warranty;
-     and give any other recipients of the Program a copy of this License
-     along with the Program.
-     
-     You may charge a fee for the physical act of transferring a copy, and
-     you may at your option offer warranty protection in exchange for a fee.
-     
-     2. You may modify your copy or copies of the Program or any portion
-     of it, thus forming a work based on the Program, and copy and
-     distribute such modifications or work under the terms of Section 1
-     above, provided that you also meet all of these conditions:
-     
-     a) You must cause the modified files to carry prominent notices
-     stating that you changed the files and the date of any change.
-     
-     b) You must cause any work that you distribute or publish, that in
-     whole or in part contains or is derived from the Program or any
-     part thereof, to be licensed as a whole at no charge to all third
-     parties under the terms of this License.
-     
-     c) If the modified program normally reads commands interactively
-     when run, you must cause it, when started running for such
-     interactive use in the most ordinary way, to print or display an
-     announcement including an appropriate copyright notice and a
-     notice that there is no warranty (or else, saying that you provide
-     a warranty) and that users may redistribute the program under
-     these conditions, and telling the user how to view a copy of this
-     License.  (Exception: if the Program itself is interactive but
-     does not normally print such an announcement, your work based on
-     the Program is not required to print an announcement.)
-     
-     These requirements apply to the modified work as a whole.  If
-     identifiable sections of that work are not derived from the Program,
-     and can be reasonably considered independent and separate works in
-     themselves, then this License, and its terms, do not apply to those
-     sections when you distribute them as separate works.  But when you
-     distribute the same sections as part of a whole which is a work based
-     on the Program, the distribution of the whole must be on the terms of
-     this License, whose permissions for other licensees extend to the
-     entire whole, and thus to each and every part regardless of who wrote it.
-     
-     Thus, it is not the intent of this section to claim rights or contest
-     your rights to work written entirely by you; rather, the intent is to
-     exercise the right to control the distribution of derivative or
-     collective works based on the Program.
-     
-     In addition, mere aggregation of another work not based on the Program
-     with the Program (or with a work based on the Program) on a volume of
-     a storage or distribution medium does not bring the other work under
-     the scope of this License.
-     
-     3. You may copy and distribute the Program (or a work based on it,
-     under Section 2) in object code or executable form under the terms of
-     Sections 1 and 2 above provided that you also do one of the following:
-     
-     a) Accompany it with the complete corresponding machine-readable
-     source code, which must be distributed under the terms of Sections
-     1 and 2 above on a medium customarily used for software interchange; or,
-     
-     b) Accompany it with a written offer, valid for at least three
-     years, to give any third party, for a charge no more than your
-     cost of physically performing source distribution, a complete
-     machine-readable copy of the corresponding source code, to be
-     distributed under the terms of Sections 1 and 2 above on a medium
-     customarily used for software interchange; or,
-     
-     c) Accompany it with the information you received as to the offer
-     to distribute corresponding source code.  (This alternative is
-     allowed only for noncommercial distribution and only if you
-     received the program in object code or executable form with such
-     an offer, in accord with Subsection b above.)
-     
-     The source code for a work means the preferred form of the work for
-     making modifications to it.  For an executable work, complete source
-     code means all the source code for all modules it contains, plus any
-     associated interface definition files, plus the scripts used to
-     control compilation and installation of the executable.  However, as a
-     special exception, the source code distributed need not include
-     anything that is normally distributed (in either source or binary
-     form) with the major components (compiler, kernel, and so on) of the
-     operating system on which the executable runs, unless that component
-     itself accompanies the executable.
-     
-     If distribution of executable or object code is made by offering
-     access to copy from a designated place, then offering equivalent
-     access to copy the source code from the same place counts as
-     distribution of the source code, even though third parties are not
-     compelled to copy the source along with the object code.
-     
-     4. You may not copy, modify, sublicense, or distribute the Program
-     except as expressly provided under this License.  Any attempt
-     otherwise to copy, modify, sublicense or distribute the Program is
-     void, and will automatically terminate your rights under this License.
-     However, parties who have received copies, or rights, from you under
-     this License will not have their licenses terminated so long as such
-     parties remain in full compliance.
-     
-     5. You are not required to accept this License, since you have not
-     signed it.  However, nothing else grants you permission to modify or
-     distribute the Program or its derivative works.  These actions are
-     prohibited by law if you do not accept this License.  Therefore, by
-     modifying or distributing the Program (or any work based on the
-     Program), you indicate your acceptance of this License to do so, and
-     all its terms and conditions for copying, distributing or modifying
-     the Program or works based on it.
-     
-     6. Each time you redistribute the Program (or any work based on the
-     Program), the recipient automatically receives a license from the
-     original licensor to copy, distribute or modify the Program subject to
-     these terms and conditions.  You may not impose any further
-     restrictions on the recipients' exercise of the rights granted herein.
-     You are not responsible for enforcing compliance by third parties to
-     this License.
-     
-     7. If, as a consequence of a court judgment or allegation of patent
-     infringement or for any other reason (not limited to patent issues),
-     conditions are imposed on you (whether by court order, agreement or
-     otherwise) that contradict the conditions of this License, they do not
-     excuse you from the conditions of this License.  If you cannot
-     distribute so as to satisfy simultaneously your obligations under this
-     License and any other pertinent obligations, then as a consequence you
-     may not distribute the Program at all.  For example, if a patent
-     license would not permit royalty-free redistribution of the Program by
-     all those who receive copies directly or indirectly through you, then
-     the only way you could satisfy both it and this License would be to
-     refrain entirely from distribution of the Program.
-     
-     If any portion of this section is held invalid or unenforceable under
-     any particular circumstance, the balance of the section is intended to
-     apply and the section as a whole is intended to apply in other
-     circumstances.
-     
-     It is not the purpose of this section to induce you to infringe any
-     patents or other property right claims or to contest validity of any
-     such claims; this section has the sole purpose of protecting the
-     integrity of the free software distribution system, which is
-     implemented by public license practices.  Many people have made
-     generous contributions to the wide range of software distributed
-     through that system in reliance on consistent application of that
-     system; it is up to the author/donor to decide if he or she is willing
-     to distribute software through any other system and a licensee cannot
-     impose that choice.
-     
-     This section is intended to make thoroughly clear what is believed to
-     be a consequence of the rest of this License.
-     
-     8. If the distribution and/or use of the Program is restricted in
-     certain countries either by patents or by copyrighted interfaces, the
-     original copyright holder who places the Program under this License
-     may add an explicit geographical distribution limitation excluding
-     those countries, so that distribution is permitted only in or among
-     countries not thus excluded.  In such case, this License incorporates
-     the limitation as if written in the body of this License.
-     
-     9. The Free Software Foundation may publish revised and/or new versions
-     of the General Public License from time to time.  Such new versions will
-     be similar in spirit to the present version, but may differ in detail to
-     address new problems or concerns.
-     
-     Each version is given a distinguishing version number.  If the Program
-     specifies a version number of this License which applies to it and "any
-     later version", you have the option of following the terms and conditions
-     either of that version or of any later version published by the Free
-     Software Foundation.  If the Program does not specify a version number of
-     this License, you may choose any version ever published by the Free Software
-     Foundation.
-     
-     10. If you wish to incorporate parts of the Program into other free
-     programs whose distribution conditions are different, write to the author
-     to ask for permission.  For software which is copyrighted by the Free
-     Software Foundation, write to the Free Software Foundation; we sometimes
-     make exceptions for this.  Our decision will be guided by the two goals
-     of preserving the free status of all derivatives of our free software and
-     of promoting the sharing and reuse of software generally.
-     
-     		    NO WARRANTY
-     
-     11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
-     FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW.  EXCEPT WHEN
-     OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
-     PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
-     OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
-     MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.  THE ENTIRE RISK AS
-     TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU.  SHOULD THE
-     PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
-     REPAIR OR CORRECTION.
-     
-     12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
-     WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
-     REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
-     INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
-     OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
-     TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
-     YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
-     PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
-     POSSIBILITY OF SUCH DAMAGES.
-     
-     	     END OF TERMS AND CONDITIONS
-     
-     Appendix: How to Apply These Terms to Your New Programs
-     
-     If you develop a new program, and you want it to be of the greatest
-     possible use to the public, the best way to achieve this is to make it
-     free software which everyone can redistribute and change under these terms.
-     
-     To do so, attach the following notices to the program.  It is safest
-     to attach them to the start of each source file to most effectively
-     convey the exclusion of warranty; and each file should have at least
-     the "copyright" line and a pointer to where the full notice is found.
-     
-     <one line to give the program's name and a brief idea of what it does.>
-     Copyright (C) 19yy  <name of author>
-     
-     This program is free software; you can redistribute it and/or modify
-     it under the terms of the GNU General Public License as published by
-     the Free Software Foundation; either version 2 of the License, or
-     (at your option) any later version.
-     
-     This program is distributed in the hope that it will be useful,
-     but WITHOUT ANY WARRANTY; without even the implied warranty of
-     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-     GNU General Public License for more details.
-     
-     You should have received a copy of the GNU General Public License
-     along with this program; if not, write to the Free Software
-     Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-     
-     Also add information on how to contact you by electronic and paper mail.
-     
-     If the program is interactive, make it output a short notice like this
-     when it starts in an interactive mode:
-     
-     Gnomovision version 69, Copyright (C) 19yy name of author
-     Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
-     This is free software, and you are welcome to redistribute it
-     under certain conditions; type `show c' for details.
-     
-     The hypothetical commands `show w' and `show c' should show the appropriate
-     parts of the General Public License.  Of course, the commands you use may
-     be called something other than `show w' and `show c'; they could even be
-     mouse-clicks or menu items--whatever suits your program.
-     
-     You should also get your employer (if you work as a programmer) or your
-     school, if any, to sign a "copyright disclaimer" for the program, if
-     necessary.  Here is a sample; alter the names:
-     
-     Yoyodyne, Inc., hereby disclaims all copyright interest in the program
-     `Gnomovision' (which makes passes at compilers) written by James Hacker.
-     
-     <signature of Ty Coon>, 1 April 1989
-     Ty Coon, President of Vice
-     
-     This General Public License does not permit incorporating your program into
-     proprietary programs.  If your program is a subroutine library, you may
-     consider it more useful to permit linking proprietary applications with the
-     library.  If this is what you want to do, use the GNU Library General
-     Public License instead of this License.
-

Deleted: trunk/mysql-connector-java/EXCEPTIONS-CONNECTOR-J
===================================================================
--- trunk/mysql-connector-java/EXCEPTIONS-CONNECTOR-J	2011-08-25 05:27:05 UTC (rev 14475)
+++ trunk/mysql-connector-java/EXCEPTIONS-CONNECTOR-J	2011-08-25 06:58:31 UTC (rev 14476)
@@ -1,119 +0,0 @@
-MySQL FLOSS License Exception
-
-The MySQL AB Exception for Free/Libre and Open Source
-Software-only Applications Using MySQL Client Libraries (the
-"FLOSS Exception").
-
-Version 0.6, 7 March 2007
-
-Exception Intent
-
-We want specified Free/Libre and Open Source Software (``FLOSS'')
-applications to be able to use specified GPL-licensed MySQL client
-libraries (the ``Program'') despite the fact that not all FLOSS
-licenses are compatible with version 2 of the GNU General Public
-License (the ``GPL'').
-
-Legal Terms and Conditions
-
-As a special exception to the terms and conditions of version 2.0
-of the GPL:
-
- 1. You are free to distribute a Derivative Work that is formed
-    entirely from the Program and one or more works (each, a
-    "FLOSS Work") licensed under one or more of the licenses
-    listed below in section 1, as long as:
-      a. You obey the GPL in all respects for the Program and the
-         Derivative Work, except for identifiable sections of the
-         Derivative Work which are not derived from the Program,
-         and which can reasonably be considered independent and
-         separate works in themselves,
-      b. all identifiable sections of the Derivative Work which
-         are not derived from the Program, and which can
-         reasonably be considered independent and separate works
-         in themselves,
-           i. are distributed subject to one of the FLOSS licenses
-              listed below, and
-          ii. the object code or executable form of those sections
-              are accompanied by the complete corresponding
-              machine-readable source code for those sections on
-              the same medium and under the same FLOSS license as
-              the corresponding object code or executable forms of
-              those sections, and
-      c. any works which are aggregated with the Program or with a
-         Derivative Work on a volume of a storage or distribution
-         medium in accordance with the GPL, can reasonably be
-         considered independent and separate works in themselves
-         which are not derivatives of either the Program, a
-         Derivative Work or a FLOSS Work.
-    If the above conditions are not met, then the Program may only
-    be copied, modified, distributed or used under the terms and
-    conditions of the GPL or another valid licensing option from
-    MySQL AB.
-
- 2. FLOSS License List
-
-License name Version(s)/Copyright Date
-Academic Free License 2.0
-Apache Software License 1.0/1.1/2.0
-Apple Public Source License 2.0
-Artistic license From Perl 5.8.0
-BSD license "July 22 1999"
-Common Development and Distribution License (CDDL) 1.0
-Common Public License 1.0
-Eclipse Public License 1.0
-GNU Library or "Lesser" General Public License (LGPL) 2.0/2.1
-Jabber Open Source License 1.0
-MIT license (As listed in file MIT-License.txt) ---
-Mozilla Public License (MPL) 1.0/1.1
-Open Software License 2.0
-OpenSSL license (with original SSLeay license) "2003" ("1998")
-PHP License 3.0
-Python license (CNRI Python License) ---
-Python Software Foundation License 2.1.1
-Sleepycat License "1999"
-University of Illinois/NCSA Open Source License ---
-W3C License "2001"
-X11 License "2001"
-Zlib/libpng License ---
-Zope Public License 2.0
-
-    Due to the many variants of some of the above licenses, we
-    require that any version follow the 2003 version of the Free
-    Software Foundation's Free Software Definition
-    (http://www.gnu.org/philosophy/free-sw.html) or version 1.9 of
-    the Open Source Definition by the Open Source Initiative
-    (http://www.opensource.org/docs/definition.php).
-
- 3. Definitions
-
-      a. Terms used, but not defined, herein shall have the
-         meaning provided in the GPL.
-      b. Derivative Work means a derivative work under copyright
-         law.
-
- 4. Applicability: This FLOSS Exception applies to all Programs
-    that contain a notice placed by MySQL AB saying that the
-    Program may be distributed under the terms of this FLOSS
-    Exception. If you create or distribute a work which is a
-    Derivative Work of both the Program and any other work
-    licensed under the GPL, then this FLOSS Exception is not
-    available for that work; thus, you must remove the FLOSS
-    Exception notice from that work and comply with the GPL in all
-    respects, including by retaining all GPL notices. You may
-    choose to redistribute a copy of the Program exclusively under
-    the terms of the GPL by removing the FLOSS Exception notice
-    from that copy of the Program, provided that the copy has
-    never been modified by you or any third party.
-
-Appendix A. Qualified Libraries and Packages
-
-The following is a non-exhaustive list of libraries and packages
-which are covered by the FLOSS License Exception. Please note that
-this appendix is provided merely as an additional service to
-specific FLOSS projects wishing to simplify licensing information
-for their users. Compliance with one of the licenses noted under
-the "FLOSS license list" section remains a prerequisite.
-
-Package Name                  Qualifying License and Version
-Apache Portable Runtime (APR) Apache Software License 2.0
\ No newline at end of file

Deleted: trunk/mysql-connector-java/README
===================================================================
--- trunk/mysql-connector-java/README	2011-08-25 05:27:05 UTC (rev 14475)
+++ trunk/mysql-connector-java/README	2011-08-25 06:58:31 UTC (rev 14476)
@@ -1,45 +0,0 @@
-MySQL Connector/J @MYSQL_CJ_VERSION@ (formerly MM.MySQL)
-MySQL AB's JDBC Driver for MySQL
-Copyright (c) 2003 MySQL AB
-
-CONTENTS
-
-* License
-* Documentation Location
-
-
-LICENSE
-
-MySQL Connector/J is licensed under the GPL or a commercial license
-from MySQL AB. 
-
-If you have licensed this product under the GPL, please see the COPYING
-file for more information. 
-
-There are special exceptions to the terms and conditions of the GPL 
-as it is applied to this software. View the full text of the 
-exception in file EXCEPTIONS-CONNECTOR-J in the directory of this 
-software distribution.
-
-If you have licensed this product under a commercial license from
-MySQL AB, please see the file "MySQLEULA.txt" that comes with this 
-distribution for the terms of the license.
-
-If you need non-GPL licenses for commercial distribution please contact 
-me <mark at mysql.com> or <sales at mysql.com>.
-
-
-DOCUMENTATION LOCATION
- 
-The documentation formerly contained in this file has moved into the 
-'doc' directory, where it is available in HTML, PDF and plaintext
-forms.
-
-You may also find the latest copy of the documentation on the MySQL
-website at http://dev.mysql.com/doc/refman/5.0/en/connector-j.html
-
---
-This software is OSI Certified Open Source Software.
-OSI Certified is a certification mark of the Open Source Initiative.
-
-

Deleted: trunk/mysql-connector-java/README.txt
===================================================================
--- trunk/mysql-connector-java/README.txt	2011-08-25 05:27:05 UTC (rev 14475)
+++ trunk/mysql-connector-java/README.txt	2011-08-25 06:58:31 UTC (rev 14476)
@@ -1,45 +0,0 @@
-MySQL Connector/J @MYSQL_CJ_VERSION@ (formerly MM.MySQL)
-MySQL AB's JDBC Driver for MySQL
-Copyright (c) 2003 MySQL AB
-
-CONTENTS
-
-* License
-* Documentation Location
-
-
-LICENSE
-
-MySQL Connector/J is licensed under the GPL or a commercial license
-from MySQL AB. 
-
-If you have licensed this product under the GPL, please see the COPYING
-file for more information. 
-
-There are special exceptions to the terms and conditions of the GPL 
-as it is applied to this software. View the full text of the 
-exception in file EXCEPTIONS-CONNECTOR-J in the directory of this 
-software distribution.
-
-If you have licensed this product under a commercial license from
-MySQL AB, please see the file "MySQLEULA.txt" that comes with this 
-distribution for the terms of the license.
-
-If you need non-GPL licenses for commercial distribution please contact 
-me <mark at mysql.com> or <sales at mysql.com>.
-
-
-DOCUMENTATION LOCATION
- 
-The documentation formerly contained in this file has moved into the 
-'doc' directory, where it is available in HTML, PDF and plaintext
-forms.
-
-You may also find the latest copy of the documentation on the MySQL
-website at http://dev.mysql.com/doc/refman/5.0/en/connector-j.html
-
---
-This software is OSI Certified Open Source Software.
-OSI Certified is a certification mark of the Open Source Initiative.
-
-

Deleted: trunk/mysql-connector-java/build.xml
===================================================================
--- trunk/mysql-connector-java/build.xml	2011-08-25 05:27:05 UTC (rev 14475)
+++ trunk/mysql-connector-java/build.xml	2011-08-25 06:58:31 UTC (rev 14476)
@@ -1,1148 +0,0 @@
-<?xml version='1.0'?>
-<!--
-   Copyright (C) 2002-2005 MySQL AB
-
-   This program is free software; you can redistribute it and/or modify
-   it under the terms of version 2 of the GNU General Public License as 
-   published by the Free Software Foundation.
-
-   There are special exceptions to the terms and conditions of the GPL 
-   as it is applied to this software. View the full text of the 
-   exception in file EXCEPTIONS-CONNECTOR-J in the directory of this 
-   software distribution.
-
-   This program is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU General Public License for more details.
-
-   You should have received a copy of the GNU General Public License
-   along with this program; if not, write to the Free Software
-   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
--->
-
-<!-- version $Id: build.xml 6622 2007-10-05 19:05:36Z mmatthews $ -->
-
-<project name="MySQL Connector/J" default="dist" basedir=".">
-	<property name="major_version" value="5"/>
-	<property name="minor_version" value="1"/>
-	<property name="subminor_version" value="5"/>
-	<property name="version_status" value=""/>
-
-	<property name="version" value="${major_version}.${minor_version}.${subminor_version}${version_status}"/>
-	<property name="prodName" value="mysql-connector-java"/>
-	<property name="extra.version" value=""/>
-	<property name="full.version" value="${version}${extra.version}"/>
-	<property name="fullProdName" value="${prodName}-${version}${extra.version}"/>
-	<property name="sourceDir" value="./src"/>
-	<property name="buildDir" value="./build"/>
-	<property name="distDir" value="./dist"/>
-	<property name="junit.results" value="${buildDir}/junit"/>
-	<property name="debug.enable" value="on" />
-	
-	<!-- Send class files to correct location if running in eclipse -->
-	
-	 <condition property="compiler.output" value="bin" else="${buildDir}/${fullProdName}">
-	    <isset property="eclipse.pdebuild.home" />
-	 </condition>
-
-	<!-- 
-	     The following property is needed for building the docs. It's
-	     set to the defaults for my development environment, but can be passed
-	     on the command line to ant via -D switches. 
-	-->
-
-	<property name="com.mysql.jdbc.docs.sourceDir" value="/home/mmatthew/work/docs/prebuilt"/>
-
-	<!-- 
-		The following properties are needed for finding JDK6, set to the defaults
-		for my development environment, but can be passed on the command line
-		to ant via -D switches
-	-->
-	
-	<property name="com.mysql.jdbc.java6.javac" value="C:\jvms\jdk1.6.0\bin\javac.exe" />
-	<property name="com.mysql.jdbc.java6.rtjar" value="C:\jvms\jdk1.6.0\jre\lib\rt.jar" />
-	
-	<taskdef resource="net/sf/antcontrib/antlib.xml">
-		<classpath>
-			<pathelement location="${sourceDir}/lib/ant-contrib.jar"/>
-		</classpath>
-	</taskdef>
-
-	<path id="built.driver.only.classpath">
-		<pathelement location="${buildDir}/${fullProdName}" />
-	</path>
-
-	<path id="project.build.classpath">
-		<fileset dir="${buildDir}/${fullProdName}/lib-nodist">
-			<include name="**/*.jar"/>
-		</fileset>
-
-		<fileset dir="${buildDir}/${fullProdName}/lib">
-			<include name="**/*.jar"/>
-		</fileset>
-
-		<pathelement location="${buildDir}/${fullProdName}" />
-	</path>
-
-	<target name="init" depends="-init-copy, -init-no-crypto">
-		<!-- If we're building under cruise control, update ourself -->
-		
-		<!--
-		<if>
-			<isset property="cctimestamp"/>
-			<then>
-				<exec executable="svn">
-					<arg line="up"/>
-				</exec>
-			</then>
-		</if>
-		-->
-		
-		<!-- We need the following for source distributions as there we
-             can't dynamically alter the classpath, and not having this
-		     directory present causes the build to fail -->
-
-		<mkdir dir="${buildDir}/${fullProdName}/lib-nodist" />
-		
-		<available file="${com.mysql.jdbc.docs.sourceDir}" property="com.mysql.jdbc.docs.sourcesPresent" />
-
-		<available classname="com.mchange.v2.c3p0.QueryConnectionTester" 
-			classpathref="project.build.classpath" 
-			property="com.mysql.jdbc.c3p0Present" />
-
-		<available classname="org.apache.log4j.Logger" 
-			classpathref="project.build.classpath" 
-			property="com.mysql.jdbc.log4jPresent" />
-
-		<available classname="org.jboss.resource.adapter.jdbc.ValidConnectionChecker" 
-			classpathref="project.build.classpath" 
-			property="com.mysql.jdbc.jbossPresent" />
-	</target>
-
-	<target name="-init-copy" depends="clean">
-		<tstamp/>
-
-		<filter token="VERSION" value="${version}"/>
-
-		<mkdir dir="${buildDir}" />
-		
-		<exec executable="svn" 
-			output="${buildDir}/svn.properties" 
-			failifexecutionfails="false"
-			failonerror="false">
-			  <arg value="info" />
-		</exec>
-		    
-		<property prefix="svn" file="${buildDir}/svn.properties"/>
-		
-		<copy todir="${buildDir}/${fullProdName}" filtering="true">
-			<fileset dir="${sourceDir}/" excludes="**/CVS">
-				<patternset id="classjar" >
-					<exclude name="**/*.class*"/>
-					<exclude name="**/*.jar"/>	
-				</patternset>
-			</fileset>
-
-			<filterset>
-				<filter token="MYSQL_CJ_MAJOR_VERSION" value="${major_version}"/>
-				<filter token="MYSQL_CJ_MINOR_VERSION" value="${minor_version}"/>
-				<filter token="MYSQL_CJ_SUBMINOR_VERSION" value="${subminor_version}"/>
-				<filter token="MYSQL_CJ_VERSION_STATUS" value="${version_status}"/>
-				<filter token="MYSQL_CJ_VERSION" value="${version}"/>
-				<filter token="MYSQL_CJ_REVISION" value="${svn.Revision}" />
-				<filter token="MYSQL_CJ_FULL_PROD_NAME" value="${fullProdName}"/>
-			</filterset>
-		</copy>
-
-		<copy todir="${buildDir}/${fullProdName}" filtering="false">
-			<fileset dir="${sourceDir}" excludes="**/CVS">
-				<patternset id="dojar" >
-					<include name="**/*.jar*"/>
-				</patternset>
-			</fileset>
-		</copy>
-	</target>
-
-	<target name="-init-no-crypto" depends="-init-copy" if="com.mysql.jdbc.noCryptoBuild">
-		<copy file="${sourceDir}//lib-nodist/ExportControlledNoCrypto.notjava"
-			toFile="${buildDir}/${fullProdName}/com/mysql/jdbc/ExportControlled.java"
-			overwrite="true"/>
-	</target>
-
-	<!-- 
-		This is the target we use to make MySQL AB GPL-licensed and binaries 
-		as well as commercially-licensed binaries that include source files.
-	-->
-
-	<target name="full-package" description="Builds driver, binary .jar file, docs and packages (.zip, .tar.gz) suitable for distribution that _do_ contain sources" 
-		depends="full-dist, -make-packages, -create-archives"/>
-
-	<!-- This is the target we use to make MySQL AB Commercially-licensed binaries -->
-
-	<target name="full-package-no-sources" description="Builds driver, binary .jar file, docs and packages (.zip, .tar.gz) suitable for distribution that do _not_ contain sources"
-			depends="full-dist, -make-packages, -remove-sources, -create-archives"/>
-	
-    <!-- No trace build until we figure out what's going on with iajc on our
-         production build box 
-	<target name="full-dist" description="Builds driver, binary .jar file and docs, basically a distribution 'image'"
-			depends="-dist-trace, dist, -bundle-docs"/>
-			-->
-	
-
-	<target name="full-dist" description="Builds driver, binary .jar file and docs, basically a distribution 'image'"
-			depends="dist, -bundle-docs"/>
-
-	<target name="package" depends="dist, -make-packages, -create-archives"/>
-
-	<target name="-remove-sources">
-		<echo>Removing sources from ${distDir}/toArchive</echo>
-		<delete>
-			<fileset dir="${distDir}/toArchive">
-				<include name="**/*.java"/>
-			</fileset>
-		</delete>
-		
-		<delete dir="${distDir}/toArchive/${fullProdName}/src"/>
-	</target>
-
-	<target name="-create-archives" depends="-make-packages">
-		<tar destfile="${distDir}/${fullProdName}.tar.gz"
-			compression="gzip" longfile="gnu">
-			<tarfileset dir="${toPackage}">
-				<patternset refid="non.test.sources" />
-			</tarfileset>
-		</tar>
-
-		<checksum file="${distDir}/${fullProdName}.tar.gz" forceOverwrite="yes" fileext=".md5"/>
-
-		<delete file="${distDir}/${fullProdName}.zip"/>
-
-		<zip zipfile="${distDir}/${fullProdName}.zip">
-			<fileset dir="${toPackage}">
-				<patternset refid="non.test.sources" />
-			</fileset>
-		</zip>
-
-		<checksum file="${distDir}/${fullProdName}.zip" forceOverwrite="yes" fileext=".md5"/>
-		
-		<if>
-			<isset property="com.mysql.jdbc.commercialBuild"/>
-			<then>
-				<echo message="Not building maven bundle for commercial build" />
-			</then>
-			<else>
-				<!-- Build a Maven bundle for upload to their repository -->
-				
-				<checksum file="${distDir}/${fullProdName}.zip" forceOverwrite="yes" fileext=".md5"/>
-				
-				<tempfile destdir="${buildDir}" prefix="maven-bundle-" property="mavenUploadDir" />
-				
-				<mkdir dir="${mavenUploadDir}" />
-				
-				<copy file="${buildDir}/${fullProdName}/${fullProdName}-bin.jar"
-				  	toFile="${mavenUploadDir}/${fullProdName}.jar" />
-				
-				<copy file="${buildDir}/${fullProdName}/doc/sources/pom.xml"
-					toDir="${mavenUploadDir}" filtering="true">
-				</copy>
-				
-				<copy file="./COPYING"
-					toDir="${mavenUploadDir}" />
-				
-				<copy file="./EXCEPTIONS-CONNECTOR-J"
-							toDir="${mavenUploadDir}" />
-				
-				<jar jarfile="${distDir}/${fullProdName}.bundle.jar" 
-							basedir="${mavenUploadDir}" />
-			</else>
-		</if>
-	</target>
-	
-	<target name="-make-packages" depends="dist">
-		<property name="toPackage" value="${distDir}/toArchive"/>
-		<property name="packageDest" value = "${toPackage}/${fullProdName}"/>
-
-		<delete dir="${toPackage}" />
-		<mkdir dir="${toPackage}"/>
-		<mkdir dir="${packageDest}"/>
-
-		<delete file="${distDir}/${fullProdName}.tar.gz"/>
-
-		<patternset id="non.test.sources" >
-			<exclude name="**/*.nb*"/>
-			<exclude name="**/*.bak"/>
-			<exclude name="**/*.*~"/>
-			<exclude name="**/lib-nodist/*"/>
-			<exclude name="**/lib-coverage/*"/>
-			<exclude name="**/clover/*"/>
-			<exclude name="**/checkstyle/*"/>
-			<exclude name="**/.*"/>
-		</patternset>
-
-		<copy todir="${packageDest}">
-			<fileset dir="${buildDir}/${fullProdName}"
-				includes="debug/*, docs/**, *.jar" excludes="docs/sources">
-				<patternset refid="non.test.sources"/>
-			</fileset>
-
-			<fileset dir="." includes="src/com/**, src/doc/**, src/lib/*, src/org/**, src/testsuite/**, build.xml, CHANGES, COPYING, EXCEPTIONS-CONNECTOR-J, README">
-				<patternset refid="non.test.sources"/>
-			</fileset>
-		</copy>
-		
-		<!-- Fix CRLF for various platforms -->
-		<copy file="${packageDest}/README" tofile="${packageDest}/README.txt"/>
-		<copy file="${packageDest}/docs/README.txt" tofile="${packageDest}/docs/README"/>
-
-		<!-- For Windows-y platforms -->
-
-		<fixcrlf srcdir="${packageDest}"
-			tab="remove" tablength="8"
-			eol="crlf" includes="**/README.txt"/>
-
-		<!-- For Unix-y platforms -->
-
-		<fixcrlf srcdir="${packageDest}"
-					tab="remove" tablength="8"
-					eol="lf" includes="**/README"/>
-		
-		<if>
-			<isset property="com.mysql.jdbc.commercialBuild"/>
-			<then>
-				<!-- These are the GPL and FLOSS exceptions. They don't get shipped with
-									 commercial builds -->
-
-				<delete file="${packageDest}/COPYING"/>
-				<delete file="${packageDest}/EXCEPTIONS-CONNECTOR-J"/>
-
-				<!-- Pull in the commercial license itself -->
-
-				<copy file="${sourceDir}/lib-nodist/LICENSE.mysql" toDir="${packageDest}"/>
-
-				<loadfile property="commercialLicenseText"
-					srcFile="${sourceDir}/lib-nodist/commercialLicense.txt"/>
-				<replaceregexp 
-					match="Copyright.*1307.[^replaceregexp]*USA"
-					replace="${commercialLicenseText}"
-					flags="s">
-				<fileset dir="${packageDest}" includes="**/*"/>
-				</replaceregexp>
-			</then>
-		</if>
-	</target>
-
-	<target name="dist" depends="init, compile">
-
-		<delete file="${buildDir}/${fullProdName}-bin.jar" />
-		<delete file="${distDir}/${fullProdName}.jar" />
-
-		<mkdir dir="${distDir}" />
-		<mkdir dir="${buildDir}/META-INF" />
-		
-		<!-- JDBC-4.0 support of service provider mechanism -->
-		
-		<mkdir dir="${buildDir}/META-INF/services/" />
-		<echo file="${buildDir}/META-INF/services/java.sql.Driver"
-			message="com.mysql.jdbc.Driver" />
-
-		<manifest file="${buildDir}/META-INF/MANIFEST.MF">
-			<attribute name="Built-By" value="${user.name}" />
-
-			<section name="common">
-				<attribute name="Specification-Title" value="JDBC" />
-				<!--
-				<attribute name="Specification-Version" value="4.0" />
-				-->
-				<attribute name="Specification-Version" value="3.0" />
-				<attribute name="Specification-Vendor" value="Sun Microsystems Inc." />
-				<attribute name="Implementation-Title" value="MySQL Connector/J" />
-				<attribute name="Implementation-Version" value="${full.version}" />
-				<attribute name="Implementation-Vendor-Id" value="com.mysql" />
-				<attribute name="Implementation-Vendor" value="MySQL AB" />
-			</section>
-		</manifest>
-
-		<jar jarfile="${buildDir}/${fullProdName}/${fullProdName}-bin.jar" 
-			basedir="${buildDir}/${fullProdName}" 
-			includes="**/*.class,**/*.properties*,COPYING,README" 
-			excludes="testsuite/**" 
-			index="true" 
-			manifest="${buildDir}/META-INF/MANIFEST.MF"/>
-	</target>
-
-	<target name="-dist-trace" depends="init, compile-driver-trace">
-
-		<delete file="${buildDir}/${fullProdName}-bin-g.jar"/>
-
-		<mkdir dir="${distDir}" />
-		<mkdir dir="${buildDir}/${fullProdName}/debug"/>
-
-		<manifest file="${buildDir}/MANIFEST.MF">
-			<attribute name="Built-By" value="${user.name}" />
-
-			<section name="common">
-				<attribute name="Specification-Title" value="JDBC" />
-				<attribute name="Specification-Version" value="3.0" />
-				<attribute name="Specification-Vendor" value="Sun Microsystems Inc." />
-				<attribute name="Implementation-Title" value="MySQL Connector/J (trace/debug enabled)" />
-				<attribute name="Implementation-Version" value="${full-version} (trace/debug-enabled)" />
-				<attribute name="Implementation-Vendor" value="MySQL AB" />
-			</section>
-		</manifest>
-
-		<jar jarfile="${buildDir}/${fullProdName}/debug/${fullProdName}-bin-g.jar"
-				basedir="${buildDir}/${fullProdName}"
-				includes="**/*.class,**/*.properties*,COPYING,README"
-				excludes="testsuite/**"
-				index="true"
-				manifest="${buildDir}/MANIFEST.MF"
-			/>
-	</target>
-
-	<target name="-bundle-docs" depends="init">
-		<copy file="${com.mysql.jdbc.docs.sourceDir}/en/html/connector-j.html"
-		  	todir="${buildDir}/${fullProdName}/docs"
-		  	failonerror="true"/>
-		<copy file="${com.mysql.jdbc.docs.sourceDir}/en/pdf/connector-j.pdf"
-			todir="${buildDir}/${fullProdName}/docs"
-			failonerror="true"/>
-		<copy file="${com.mysql.jdbc.docs.sourceDir}/en/txt/connector-j.txt"
-			tofile="${buildDir}/${fullProdName}/docs/README.txt"
-			failonerror="true"/>
-		<copy todir="${buildDir}/${fullProdName}/docs/release-test-output" failonerror="false">
-			<fileset dir="${com.mysql.jdbc.docs.sourceDir}/release-test-output" excludes="**/CVS">
-			</fileset>
-		</copy>
-	</target>
-
-	<target name="test-all-multi" depends="compile">
-		<delete dir="${buildDir}/junit" />
-		<antcall target="test-multijvm" />
-		<antcall target="test-compliance-multijvm" />
-
-		<fail message="Tests failed. Check logs and/or reports in ${buildDir}/junit." 
-			if="tests.compliance.failed"/>
-	</target>
-
-	<!-- Runs compliance testsuite against multiple JVMs and server configs -->
-
-	<target name="test-multijvm" depends="compile">
-		<for list="1,2,3,4,5,6,7,8" param="jvm.number">
-			<sequential>
-				<if>
-					<isset property="com.mysql.jdbc.testsuite.jvm.@{jvm.number}"/>
-					<then>
-						<for list="1,2,3,4,5,6,7,8" param="url.number">
-							<sequential>
-								<if>
-									<isset property="com.mysql.jdbc.testsuite.url.@{url.number}"/>
-									<then>
-										<make-output-hier 
-										jdbcUrl="${com.mysql.jdbc.testsuite.url.@{url.number}}" 
-										junitOutput="${junit.results}" 
-										jvm="${com.mysql.jdbc.testsuite.jvm.@{jvm.number}}" 
-										unitOrCompliance="unit" />
-
-										<property name="test.multi.junitOut.@{url.number}" value="eraseMe" />
-										<var name="test.multi.junitOut.@{url.number}" unset="true" />
-
-										<loadfile srcfile="${junit.results}/hier" 
-										property="test.multi.junitOut.@{url.number}" />
-
-										<antcall target="test">
-											<param name="com.mysql.jdbc.testsuite.url" value="${com.mysql.jdbc.testsuite.url.@{url.number}}" />
-											<param name="test.result.prefix" value="/${test.multi.junitOut.@{url.number}}" />
-											<param name="com.mysql.jdbc.testsuite.jvm" value="${com.mysql.jdbc.testsuite.jvm.@{jvm.number}}"/>
-										</antcall>
-									</then>
-								</if>
-							</sequential>
-						</for>
-					</then>
-				</if>
-			</sequential>
-		</for>
-	</target>
-
-	<target name="-set-test-result-prefix" unless="${test.result.prefix}">
-		<property name="test.result.prefix" value=""/>
-	</target>
-
-	<target name="test" depends="compile, -set-test-result-prefix">
-		<property name="com.mysql.jdbc.testsuite.jvm" value="java"/>
-		<mkdir dir="${junit.results}"/>
-		<echo message="Running unit tests against ${com.mysql.jdbc.testsuite.url} with jvm ${com.mysql.jdbc.testsuite.jvm}"/>
-
-		<property name="junit.unitregress.results" value="${junit.results}/${test.result.prefix}/unitregress" />
-
-		<mkdir dir="${junit.results}/${test.result.prefix}"/>
-		<mkdir dir="${junit.unitregress.results}"/>
-
-		<mkdir dir="${junit.unitregress.results}/report"/>
-
-		<junit printSummary="yes" 
-			fork="on" 
-			forkmode="once"
-			jvm="${com.mysql.jdbc.testsuite.jvm}"
-			errorProperty="tests.failed"
-			failureProperty="tests.failed">
-			<jvmarg value="-Xmx128m" />
-
-			<!-- For java.sql.SavePoint on old JVMs -->
-
-			<jvmarg value="-Xverify:none" />
-
-			<sysproperty key="com.mysql.jdbc.testsuite.url" value="${com.mysql.jdbc.testsuite.url}"/>
-
-			<classpath>
-				<fileset dir="${sourceDir}/lib-nodist">
-					<include name="**/*.jar"/>
-				</fileset>
-				<fileset dir="${buildDir}/${fullProdName}/lib">
-					<include name="**/*.jar"/>
-				</fileset>
-				<pathelement location="${buildDir}/${fullProdName}" />
-				<pathelement path="${java.class.path}" />
-			</classpath>
-
-			<formatter type="xml"/>
-
-			<batchtest todir="${junit.unitregress.results}" >
-				<fileset dir="${buildDir}/${fullProdName}">
-					<include name="**/*Test.java" />
-					<exclude name="**/perf/*.java"/>
-				</fileset>
-			</batchtest>
-		</junit>
-
-		<junitreport todir="${junit.unitregress.results}/report">
-			<fileset dir="${junit.unitregress.results}">
-				<include name="**/TEST-*.xml"/>
-			</fileset>
-			<report format="frames" todir="${junit.unitregress.results}/report"/>
-		</junitreport>
-		
-		<!-- Don't fail the build if we're doing multi-tests -->
-		<if>
-		 <equals arg1="${test.result.prefix}" arg2="" />
-		 <then>
-		 	<fail message="Tests failed. Check logs and/or reports in ${junit.results}." if="tests.failed"/>
-		 </then>
-		 <else>
-		 	<echo message="Not checking test failures because we're doing a multi-test..." />
-		 </else>
-		</if>
-		
-	</target>
-
-	<!-- Runs compliance testsuite against multiple JVMs and server configs -->
-
-	<target name="test-compliance-multijvm" depends="compile">
-		<for list="1,2,3,4,5,6,7,8" param="jvm.number">
-			<sequential>
-				<if>
-					<isset property="com.mysql.jdbc.testsuite.jvm.@{jvm.number}"/>
-					<then>
-						<for list="1,2,3,4,5,6,7,8" param="url.number">
-							<sequential>
-								<if>
-									<isset property="com.mysql.jdbc.compliance.url.@{url.number}"/>
-									<then>
-										<make-output-hier 
-											jdbcUrl="${com.mysql.jdbc.compliance.url.@{url.number}}" 
-											junitOutput="${junit.results}"
-											jvm="${com.mysql.jdbc.testsuite.jvm.@{jvm.number}}" 
-											unitOrCompliance="compliance"/>
-
-										<property name="test.compliance.multi.junitOut.@{url.number}" value="eraseMe" />
-										<var name="test.compliance.multi.junitOut.@{url.number}" unset="true" />
-
-										<loadfile srcfile="${junit.results}/hier" property="test.compliance.multi.junitOut.@{url.number}" />
-
-										<antcall target="test-compliance">
-											<param name="com.mysql.jdbc.compliance.url" value="${com.mysql.jdbc.compliance.url.@{url.number}}"/>
-											<param name="com.mysql.jdbc.testsuite.jvm" value="${com.mysql.jdbc.testsuite.jvm.@{jvm.number}}"/>
-											<param name="test.result.prefix" value="/${test.compliance.multi.junitOut.@{url.number}}"/>
-										</antcall>
-									</then>
-								</if>
-							</sequential>
-						</for>
-					</then>
-				</if>
-			</sequential>
-		</for>
-	</target>
-
-	<!-- 
-	
-		Tests for JDBC compliance. The JDBC compliance testsuite
-	    is not shipped with MySQL Connector/J as it is not licensible
-	    except from Sun.
-	     
-	    The properties com.mysql.jdbc.compliance.url and
-	    jdbc-compliance-location must be set
-	    prior to running this test. 
-	     
-	-->
-
-	<target name="test-compliance" depends="compile">
-		<property name="com.mysql.jdbc.test.jvm" value="java"/>
-		<mkdir dir="${junit.results}"/>
-		<echo message="Running compliance tests against ${com.mysql.jdbc.compliance.url} with jvm ${com.mysql.jdbc.testsuite.jvm}"/>
-
-		<property name="junit.compliance.results" 
-			value="${junit.results}/${test.result.prefix}/compliance"/>
-
-		<mkdir dir="${junit.results}/${test.result.prefix}"/>
-		<mkdir dir="${junit.compliance.results}"/>
-		<mkdir dir="${junit.compliance.results}/report"/>
-
-		<junit fork="on" forkmode="once"
-		    printsummary="yes" jvm="${com.mysql.jdbc.testsuite.jvm}"
-			errorProperty="tests.compliance.failed"
-			failureProperty="tests.compliance.failed">
-			<jvmarg value="-Xmx128m"/>
-			
-			<!-- For java.sql.SavePoint on old JVMs -->
-				
-			<jvmarg value="-Xverify:none"/>
-			
-			<sysproperty key="com.mysql.jdbc.compliance.url" value="${com.mysql.jdbc.compliance.url}"/>
-			
-			<classpath>
-				<pathelement location="${buildDir}/${fullProdName}"/>
-				<fileset dir="${sourceDir}/lib-nodist">
-					<include name="**/*.jar"/>
-				</fileset>
-				<fileset dir="${buildDir}/${fullProdName}/lib">
-					<include name="**/*.jar"/>
-				</fileset>
-				<pathelement path="${java.class.path}" />
-				<pathelement location="${jdbc-compliance-location}"/>
-			</classpath>
-
-			<formatter type="xml"/>
-
-			<test todir="${junit.compliance.results}" 
-		    		name="com.mysql.jdbc.compliance.tests.BatchUpdateTest"/>
-			<test todir="${junit.compliance.results}" 
-		    		name="com.mysql.jdbc.compliance.tests.ConnectionTest"/>
-			<test todir="${junit.compliance.results}" 
-		    		name="com.mysql.jdbc.compliance.tests.DatabaseMetaDataTest"/>
-			<test todir="${junit.compliance.results}" 
-		    		name="com.mysql.jdbc.compliance.tests.EscapeSyntaxTest"/>
-			<test todir="${junit.compliance.results}" 
-		    		name="com.mysql.jdbc.compliance.tests.PreparedStatementTest"/>
-			<test todir="${junit.compliance.results}" 
-		    		name="com.mysql.jdbc.compliance.tests.ResultSetMetadataTest"/>
-			<test todir="${junit.compliance.results}" 
-		    		name="com.mysql.jdbc.compliance.tests.ResultSetTest"/>
-			<test todir="${junit.compliance.results}" 
-		    		name="com.mysql.jdbc.compliance.tests.StatementTest"/>
-		</junit>
-
-		<junitreport todir="${junit.compliance.results}/report">
-			<fileset dir="${junit.compliance.results}">
-				<include name="**/TEST-*.xml"/>
-			</fileset>
-			<report format="frames" todir="${junit.compliance.results}/report"/>
-		</junitreport>
-		
-		<!-- Don't fail the build if we're doing multi-tests -->
-		<if>
-			<equals arg1="${test.result.prefix}" arg2="" />
-			<then>
-				<fail message="Tests failed. Check logs and/or reports in ${junit.compliance.results}." if="tests.compliance.failed"/>
-			</then>
-			<else>
-				<echo message="Not checking test failures because we're doing a multi-test..." />
-			</else>
-		</if>
-		
-	</target>
-
-
-	<target name="compile" depends="init, compile-driver, compile.integration">
-	</target>
-
-	<target name="compile-trace" depends="init, compile-driver-trace">
-	</target>
-
-	<!-- Compiles the driver itself -->
-
-	<target name="compile-driver" depends="compile-driver-jdbc3" />
-	
-	<target name="compile-driver-jdbc3" depends="init, -clean-output">
-		<javac sourcepath="" srcdir="${buildDir}/${fullProdName}" 
-			destdir="${compiler.output}" 
-			deprecation="off" 
-			debug="${debug.enable}">
-			<include name="**/*.java" />
-			<exclude name="testsuite/**" />
-			<exclude name="com/mysql/jdbc/integration/**" />
-			<exclude name="com/mysql/jdbc/log/Log4JLogger.java" />
-			<exclude name="**/JDBC4*.java" />
-			<exclude name="com/mysql/jdbc/exceptions/jdbc4/*" />
-			
-			<classpath refid="project.build.classpath" />
-		</javac>
-	</target>
-	
-	<target name="compile-driver-jdbc4" depends="compile-driver-jdbc3">
-		
-		<javac destdir="${compiler.output}" 
-			deprecation="off" 
-			debug="${debug.enable}"
-			fork="yes"
-			executable="${com.mysql.jdbc.java6.javac}"
-			compiler="modern"
-			source="1.5"
-			target="1.5"
-			sourcepath="" srcdir="${buildDir}/${fullProdName}"
-			bootclasspath="${com.mysql.jdbc.java6.rtjar}">
-			<include name="**/JDBC4*.java" />
-			<include name="com/mysql/jdbc/exceptions/jdbc4/*" />
-			
-			<classpath refid="project.build.classpath" />
-		</javac>
-		
-	</target>
-
-	<!-- Compiles a version of the driver with AspectJ tracing -->
-
-	<target name="compile-driver-trace" depends="init">
-		<taskdef 
-			      resource="org/aspectj/tools/ant/taskdefs/aspectjTaskdefs.properties">
-			<classpath>
-				<pathelement location="${sourceDir}/lib/aspectjtools.jar"/>
-			</classpath>
-		</taskdef>
-
-
-		<iajc destdir="${compiler.output}">
-			<sourceroots>
-				<pathelement location="${buildDir}/${fullProdName}/org"/>
-				<pathelement location="${buildDir}/${fullProdName}/com"/>
-			</sourceroots>
-			<classpath refid="project.build.classpath"/>
-			<classpath>
-				<pathelement location="${sourceDir}/lib/aspectjtools.jar"/>
-			</classpath>
-		</iajc>
-	</target>
-
-	<!-- Compiles integration 'helpers' for third-party software -->
-	<target name="compile.integration" 
-		depends="compile-driver, 
-				 compile-integration-c3p0, 
-		         compile-integration-jboss,
-				 compile-integration-log4j"/>
-
-	<target name="compile-integration-c3p0" 
-		depends="compile-driver"
-		if="com.mysql.jdbc.c3p0Present">
-		<javac srcdir="${buildDir}/${fullProdName}" 
-				destdir="${compiler.output}" 
-				deprecation="off" 
-				debug="${debug.enable}" 
-				includes="com/mysql/jdbc/integration/c3p0/**">
-			<classpath refid="project.build.classpath" />
-		</javac>
-	</target>
-
-	<target name="compile-integration-jboss" 
-			depends="compile-driver"
-			if="com.mysql.jdbc.jbossPresent">
-		<javac srcdir="${buildDir}/${fullProdName}" 
-					destdir="${compiler.output}" 
-					deprecation="off" 
-					debug="${debug.enable}" 
-					includes="com/mysql/jdbc/integration/jboss/**">
-			<classpath refid="project.build.classpath" />
-		</javac>
-	</target>
-
-	<target name="compile-integration-log4j" 
-			depends="compile-driver"
-			if="com.mysql.jdbc.log4jPresent">
-		<javac srcdir="${buildDir}/${fullProdName}" 
-				destdir="${compiler.output}" 
-				deprecation="off" 
-				debug="${debug.enable}" 
-				includes="com/mysql/jdbc/log/Log4JLogger.java">
-			<classpath refid="project.build.classpath" />
-		</javac>
-	</target>
-
-	<!-- Compiles the JUnit testsuite -->
-
-	<target name="compile-testsuite" depends="init, compile-driver">
-		<javac 
-			srcdir="${buildDir}/${fullProdName}" 
-			destdir="${compiler.output}" 
-			deprecation="off" 
-			debug="${debug.enable}"
-			includes="testsuite/**"
-			excludes="testsuite/requiresNonRedists/**, testsuite/**/jdbc4/**">
-			<classpath refid="project.build.classpath"/>
-		</javac>
-		
-		<javac destdir="${compiler.output}" 
-					deprecation="off" 
-					debug="${debug.enable}"
-					fork="yes"
-					executable="${com.mysql.jdbc.java6.javac}"
-					compiler="modern"
-					sourcepath="" srcdir="${buildDir}/${fullProdName}"
-					bootclasspath="${com.mysql.jdbc.java6.rtjar}">
-					<include name="testsuite/**/jdbc4/**" />
-					
-					<classpath refid="project.build.classpath" />
-				</javac>
-	</target>
-
-	<target name="real-clean">
-		<delete dir="${buildDir}"/>
-		<delete>
-			<fileset dir="${distDir}" 
-				includes="${fullProdName}.zip,${fullProdName}.tar.gz"/>
-		</delete>
-	</target>
-
-	<target name="clean" unless="com.mysql.jdbc.noCleanBetweenCompiles">
-		<delete dir="${buildDir}"/>
-	</target>
-
-	<target name="-clean-output" unless="com.mysql.jdbc.noCleanBetweenCompiles">
-		<delete>
-			<fileset dir="${buildDir}" 
-						includes="**/*.class"/>
-		</delete>
-	</target>
-
-	<target name="docs-generate-dynamic-docs" 
-		depends="docs-generate-properties-table, docs-generate-error-mapping-table"/>
-	
-	<target name="docs-generate-properties-table" depends="compile-driver">
-		<tempfile property="properties-xml" suffix=".xml" />
-
-		<java classname="com.mysql.jdbc.util.PropertiesDocGenerator"
-			output="${properties-xml}" classpath="${buildDir}/${fullProdName}"/>
-		<tempfile property="docsPropXslTempfile" suffix="xsl"/>
-		<copy file="${buildDir}/${fullProdName}/doc/sources/connPropsToDocbook.xsl" tofile="${docsPropXslTempfile}"/>
-
-		<style in="${properties-xml}" style="${docsPropXslTempfile}"
-		       out="${buildDir}/${fullProdName}/docs/sources/connPropsDocBook.xml"/>
-		<delete file="${properties-xml}"/>
-		<delete file="${docsPropXslTempfile}"/>
-	</target>
-
-	<target name="docs-generate-error-mapping-table" depends="compile-driver">
-		<tempfile property="errorsMapping-xml" suffix=".xml" />
-
-		<java classname="com.mysql.jdbc.util.ErrorMappingsDocGenerator"
-				output="${errorsMapping-xml}" classpath="${buildDir}/${fullProdName}"/>
-		<tempfile property="docsErrorXslTempfile" suffix="xsl"/>
-		<copy file="${buildDir}/${fullProdName}/doc/sources/errorMapToDocbook.xsl" tofile="${docsErrorXslTempfile}"/>
-
-		<style in="${errorsMapping-xml}" style="${docsErrorXslTempfile}"
-			       out="${buildDir}/${fullProdName}/docs/sources/errorMappingDocBook.xml"/>
-		<delete file="${docsErrorXslTempfile}"/>
-	</target>
-
-	<!-- 
-	     Targets below this point are for code coverage and depend on
-	     the 'Emma' project which you can download from 
-	     http://emma.sourceforge.net/
-	-->
-
-	<target name="emma" description="turns on EMMA instrumentation/reporting" >
-		<!-- directory that contains emma.jar and emma_ant.jar: -->
-		<property name="emma.dir" value="${sourceDir}/lib-coverage" />
-
-		<path id="emma.lib" >
-			<pathelement location="${emma.dir}/emma.jar" />
-			<pathelement location="${emma.dir}/emma_ant.jar" />
-		</path>
-
-		<taskdef resource="emma_ant.properties" classpathref="emma.lib" />
-
-		<property name="emma.enabled" value="true" />
-		<property name="emma.coverage.dir" value="${buildDir}/${fullProdName}-coverage" />
-	</target>
-
-	<target name="instrument" depends="init, compile" 
-		description="runs the examples" >
-
-		<emma enabled="${emma.enabled}" >
-			<instr instrpathref="built.driver.only.classpath"
-	             destdir="${compiler.output}"	
-	             metadatafile="${emma.coverage.dir}/metadata.emma"
-	             merge="true"
-	      		 mode="overwrite">
-				<filter excludes="*Test*" />
-				<filter excludes="org.junit.*" />
-			</instr>
-		</emma>
-
-	</target>
-
-	<target name="test-emma-report" depends="test-coverage, test-coverage-compliance">
-		<emma enabled="${emma.enabled}" >
-			<report sourcepath="${buildDir}/${fullProdName}" >
-				<fileset dir="${emma.coverage.dir}" >
-					<include name="*.emma" />
-				</fileset>
-
-				<txt outfile="${emma.coverage.dir}/coverage.txt" />
-				<html outfile="${emma.coverage.dir}/coverage.html" />
-			</report>
-		</emma>
-	</target>
-
-	<target name="test-coverage-all-report" depends="test-coverage-multijvm, test-coverage-compliance-multijvm">
-		<emma enabled="${emma.enabled}" >
-			<report sourcepath="${buildDir}/${fullProdName}" >
-				<fileset dir="${emma.coverage.dir}" >
-					<include name="*.emma" />
-				</fileset>
-
-				<txt outfile="${emma.coverage.dir}/coverage.txt" />
-				<html outfile="${emma.coverage.dir}/coverage.html" />
-			</report>
-		</emma>
-	</target>
-
-
-	<target name="test-coverage" depends="instrument">
-		<property name="com.mysql.jdbc.testsuite.jvm" value="java"/>
-		<mkdir dir="${junit.results}"/>
-		<echo message="Running unit tests against ${com.mysql.jdbc.testsuite.url} with jvm ${com.mysql.jdbc.testsuite.jvm}"/>
-
-		<property name="junit.unitregress.results" value="${junit.results}/${test.result.prefix}/unitregress" />
-
-		<mkdir dir="${junit.results}/${test.result.prefix}"/>
-		<mkdir dir="${junit.unitregress.results}"/>
-
-		<mkdir dir="${junit.unitregress.results}/report"/>
-
-		<junit printSummary="yes" fork="on" jvm="${com.mysql.jdbc.testsuite.jvm}">
-			<jvmarg value="-Xmx128m" />
-			<jvmarg value="-Xverify:none" />
-			<!-- For java.sql.SavePoint on old JVMs -->
-			<jvmarg value="-Demma.coverage.out.file=${emma.coverage.dir}/coverage.emma" />
-			<jvmarg value="-Demma.coverage.out.merge=true" />
-			<sysproperty key="com.mysql.jdbc.testsuite.url" value="${com.mysql.jdbc.testsuite.url}"/>
-			<classpath>
-				<fileset dir="${sourceDir}/lib-nodist">
-					<include name="**/*.jar"/>
-				</fileset>
-				<fileset dir="${buildDir}/${fullProdName}/lib">
-					<include name="**/*.jar"/>
-				</fileset>
-				<pathelement location="${buildDir}/${fullProdName}" />
-				<pathelement path="${java.class.path}" />
-				<pathelement location="${emma.dir}/emma.jar" />
-				<pathelement location="${emma.dir}/emma_ant.jar" />
-			</classpath>
-
-			<formatter type="xml"/>
-
-			<batchtest fork="yes" todir="${junit.unitregress.results}">
-				<fileset dir="${buildDir}/${fullProdName}">
-					<include name="**/*Test.java" />
-					<exclude name="**/perf/*.java"/>
-				</fileset>
-			</batchtest>
-		</junit>
-
-
-		<junitreport todir="${junit.unitregress.results}/report">
-			<fileset dir="${junit.unitregress.results}">
-				<include name="**/TEST-*.xml"/>
-			</fileset>
-			<report format="frames" todir="${junit.unitregress.results}/report"/>
-		</junitreport>
-	</target>
-
-	<target name="test-coverage-compliance" depends="instrument">
-		<property name="com.mysql.jdbc.test.jvm" value="java"/>
-		<mkdir dir="${junit.results}"/>
-		<echo message="Running compliance tests against ${com.mysql.jdbc.compliance.url} with jvm ${com.mysql.jdbc.testsuite.jvm}"/>
-
-		<property name="junit.compliance.results" 
-			value="${junit.results}/${test.result.prefix}/compliance"/>
-
-		<mkdir dir="${junit.results}/${test.result.prefix}"/>
-		<mkdir dir="${junit.compliance.results}"/>
-		<mkdir dir="${junit.compliance.results}/report"/>
-
-		<junit printsummary="yes" jvm="${com.mysql.jdbc.testsuite.jvm}">
-			<jvmarg value="-Xmx128m"/>
-			<jvmarg value="-Xverify:none"/>
-			<!-- For java.sql.SavePoint on old JVMs -->
-			<jvmarg value="-Demma.coverage.out.file=${emma.coverage.dir}/coverage.emma" />
-			<jvmarg value="-Demma.coverage.out.merge=true" />
-			<sysproperty key="com.mysql.jdbc.compliance.url" value="${com.mysql.jdbc.compliance.url}"/>
-			<classpath>
-				<pathelement location="${buildDir}/${fullProdName}"/>
-				<fileset dir="${sourceDir}/lib-nodist">
-					<include name="**/*.jar"/>
-				</fileset>
-				<fileset dir="${buildDir}/${fullProdName}/lib">
-					<include name="**/*.jar"/>
-				</fileset>
-				<pathelement path="${java.class.path}" />
-				<pathelement location="${jdbc-compliance-location}"/>
-				<pathelement location="${emma.dir}/emma.jar" />
-				<pathelement location="${emma.dir}/emma_ant.jar" />
-			</classpath>
-
-			<formatter type="xml"/>
-
-
-			<test fork="yes" todir="${junit.compliance.results}" 
-		    		name="com.mysql.jdbc.compliance.tests.BatchUpdateTest"/>
-			<test fork="yes" todir="${junit.compliance.results}" 
-		    		name="com.mysql.jdbc.compliance.tests.ConnectionTest"/>
-			<test fork="yes" todir="${junit.compliance.results}" 
-		    		name="com.mysql.jdbc.compliance.tests.DatabaseMetaDataTest"/>
-			<test fork="yes" todir="${junit.compliance.results}" 
-		    		name="com.mysql.jdbc.compliance.tests.EscapeSyntaxTest"/>
-			<test fork="yes" todir="${junit.compliance.results}" 
-		    		name="com.mysql.jdbc.compliance.tests.PreparedStatementTest"/>
-			<test fork="yes" todir="${junit.compliance.results}" 
-		    		name="com.mysql.jdbc.compliance.tests.ResultSetMetadataTest"/>
-			<test fork="yes" todir="${junit.compliance.results}" 
-		    		name="com.mysql.jdbc.compliance.tests.ResultSetTest"/>
-			<test fork="yes" todir="${junit.compliance.results}" 
-		    		name="com.mysql.jdbc.compliance.tests.StatementTest"/>
-		</junit>
-
-		<junitreport todir="${junit.compliance.results}/report">
-			<fileset dir="${junit.compliance.results}">
-				<include name="**/TEST-*.xml"/>
-			</fileset>
-			<report format="frames" todir="${junit.compliance.results}/report"/>
-		</junitreport>
-	</target>
-
-	<!-- Makes output directory hierarchy based on MySQL server version,
-	     os information and jvm version -->
-
-	<macrodef name="make-output-hier">
-		<attribute name="jvm" />
-		<attribute name="jdbcUrl" />
-		<attribute name="unitOrCompliance" />
-		<attribute name="junitOutput" />
-		<sequential>
-			<java fork="true" jvm="@{jvm}" classname="com.mysql.jdbc.util.VersionFSHierarchyMaker">
-
-				<jvmarg value="-Xmx128m" />
-				<jvmarg value="-Xverify:none" />
-				<!-- For java.sql.SavePoint on old JVMs -->
-				<jvmarg value="-Demma.coverage.out.file=${emma.coverage.dir}/coverage.emma" />
-				<jvmarg value="-Demma.coverage.out.merge=true" />
-
-				<sysproperty key="com.mysql.jdbc.testsuite.url" value="@{jdbcUrl}" />
-
-				<classpath>
-					<fileset dir="${sourceDir}/lib-nodist">
-						<include name="**/*.jar" />
-					</fileset>
-					<fileset dir="${buildDir}/${fullProdName}/lib">
-						<include name="**/*.jar" />
-					</fileset>
-					<pathelement location="${buildDir}/${fullProdName}" />
-					<pathelement path="${java.class.path}" />
-					<pathelement location="${emma.dir}/emma.jar" />
-					<pathelement location="${emma.dir}/emma_ant.jar" />
-				</classpath>
-				<arg line="@{unitOrCompliance} @{junitOutput} @{junitOutput}/hier" />
-			</java>
-		</sequential>
-	</macrodef>
-
-	<!-- Runs compliance testsuite against multiple JVMs and 
-	     server configs, and produces coverage reports -->
-
-	<target name="test-coverage-multijvm" depends="instrument">
-		<for list="1,2,3,4,5,6,7,8" param="jvm.number">
-			<sequential>
-				<if>
-					<isset property="com.mysql.jdbc.testsuite.jvm.@{jvm.number}"/>
-					<then>
-						<for list="1,2,3,4,5,6,7,8" param="url.number">
-							<sequential>
-								<if>
-									<isset property="com.mysql.jdbc.testsuite.url.@{url.number}"/>
-									<then>
-										<make-output-hier 
-										jdbcUrl="${com.mysql.jdbc.testsuite.url.@{url.number}}" 
-										junitOutput="${junit.results}" 
-										jvm="${com.mysql.jdbc.testsuite.jvm.@{jvm.number}}" 
-										unitOrCompliance="unit" />
-
-										<property name="test.coverage.multi.junitOut.@{url.number}" value="eraseMe" />
-										<var name="test.coverage.multi.junitOut.@{url.number}" unset="true" />
-
-										<loadfile srcfile="${junit.results}/hier" 
-										property="test.coverage.multi.junitOut.@{url.number}" />
-
-										<antcall target="test-coverage">
-											<param name="com.mysql.jdbc.testsuite.url" value="${com.mysql.jdbc.testsuite.url.@{url.number}}" />
-											<param name="test.result.prefix" value="/${test.coverage.multi.junitOut.@{url.number}}" />
-											<param name="com.mysql.jdbc.testsuite.jvm" value="${com.mysql.jdbc.testsuite.jvm.@{jvm.number}}"/>
-										</antcall>
-									</then>
-								</if>
-							</sequential>
-						</for>
-					</then>
-				</if>
-			</sequential>
-		</for>
-	</target>
-
-	<!-- Runs compliance testsuite against multiple JVMs and server configs, collecting
-	       coverage data -->
-
-	<target name="test-coverage-compliance-multijvm" depends="instrument">
-		<for list="1,2,3,4,5,6,7,8" param="jvm.number"  xmlns:ac="antlib:net.sf.antcontrib">
-			<sequential>
-				<if>
-					<isset property="com.mysql.jdbc.testsuite.jvm.@{jvm.number}"/>
-					<then>
-						<for list="1,2,3,4,5,6,7,8" param="url.number">
-							<sequential>
-								<if>
-									<isset property="com.mysql.jdbc.compliance.url.@{url.number}"/>
-									<then>
-										<make-output-hier 
-											jdbcUrl="${com.mysql.jdbc.compliance.url.@{url.number}}" 
-											junitOutput="${junit.results}"
-											jvm="${com.mysql.jdbc.testsuite.jvm.@{jvm.number}}" 
-											unitOrCompliance="compliance"/>
-
-										<property name="test.coverage.compliance.multi.junitOut.@{url.number}" value="eraseMe" />
-										<var name="test.coverage.compliance.multi.junitOut.@{url.number}" unset="true" />
-
-										<loadfile srcfile="${junit.results}/hier" property="test.coverage.compliance.multi.junitOut.@{url.number}" />
-
-										<antcall target="test-coverage-compliance">
-											<param name="com.mysql.jdbc.compliance.url" value="${com.mysql.jdbc.compliance.url.@{url.number}}"/>
-											<param name="com.mysql.jdbc.testsuite.jvm" value="${com.mysql.jdbc.testsuite.jvm.@{jvm.number}}"/>
-											<param name="test.result.prefix" value="/${test.coverage.compliance.multi.junitOut.@{url.number}}"/>
-										</antcall>
-									</then>
-								</if>
-							</sequential>
-						</for>
-					</then>
-				</if>
-			</sequential>
-		</for>
-	</target>
-</project>


Property changes on: trunk/mysql-connector-java/debian
___________________________________________________________________
Added: mergeWithUpstream
   + 1

Modified: trunk/mysql-connector-java/debian/rules
===================================================================
--- trunk/mysql-connector-java/debian/rules	2011-08-25 05:27:05 UTC (rev 14475)
+++ trunk/mysql-connector-java/debian/rules	2011-08-25 06:58:31 UTC (rev 14476)
@@ -21,3 +21,6 @@
 clean::
 	rm -rf dist
 	rm -f build-stamp
+
+get-orig-source:
+	uscan --download-version $(DEB_UPSTREAM_VERSION) --force-download




More information about the pkg-java-commits mailing list