List:Commits« Previous MessageNext Message »
From:mmatthews Date:September 6 2007 5:12pm
Subject:Connector/J commit: r6567 - in trunk: . connector-j connector-j/src/com/mysql/jdbc connector-j/src/com/mysql/jdbc/exceptions connector-j/src/testsuite...
View as plain text  
Added:
   trunk/connector-j/src/com/mysql/jdbc/exceptions/MySQLStatementCancelledException.java
Modified:
   trunk/
   trunk/connector-j/CHANGES
   trunk/connector-j/src/com/mysql/jdbc/CallableStatement.java
   trunk/connector-j/src/com/mysql/jdbc/ConnectionImpl.java
   trunk/connector-j/src/com/mysql/jdbc/ConnectionProperties.java
   trunk/connector-j/src/com/mysql/jdbc/ConnectionPropertiesImpl.java
   trunk/connector-j/src/com/mysql/jdbc/Field.java
   trunk/connector-j/src/com/mysql/jdbc/PreparedStatement.java
   trunk/connector-j/src/com/mysql/jdbc/ServerPreparedStatement.java
   trunk/connector-j/src/com/mysql/jdbc/StatementImpl.java
   trunk/connector-j/src/com/mysql/jdbc/UpdatableResultSet.java
   trunk/connector-j/src/testsuite/regression/CallableStatementRegressionTest.java
   trunk/connector-j/src/testsuite/regression/MetaDataRegressionTest.java
   trunk/connector-j/src/testsuite/regression/ResultSetRegressionTest.java
   trunk/connector-j/src/testsuite/simple/CallableStatementTest.java
   trunk/connector-j/src/testsuite/simple/DataSourceTest.java
   trunk/connector-j/src/testsuite/simple/StatementsTest.java
Log:
Merged revisions 6518-6543,6545-6566 via svnmerge from 
svn+ssh://mmatthews@stripped/connectors-svnroot/connector-j/branches/branch_5_1

...............
  r6518 | mmatthews | 2007-08-29 11:21:16 -0500 (Wed, 29 Aug 2007) | 1 line
  
  Updated changelogs for bug 30550.
...............
  r6524 | mmatthews | 2007-08-29 12:01:19 -0500 (Wed, 29 Aug 2007) | 1 line
  
  Updated/added copyright headers.
...............
  r6526 | mmatthews | 2007-08-29 12:49:17 -0500 (Wed, 29 Aug 2007) | 45 lines
  
  Merged revisions 6523-6525 via svnmerge from 
  svn+ssh://mmatthews@stripped/connectors-svnroot/connector-j/trunk
  
  ................
    r6523 | mmatthews | 2007-08-29 12:00:31 -0500 (Wed, 29 Aug 2007) | 27 lines
    
    Merged revisions 6512-6521 via svnmerge from 
   
svn+ssh://mmatthews@stripped/connectors-svnroot/connector-j/branches/branch_5_0
    
    ........
      r6521 | mmatthews | 2007-08-29 11:36:56 -0500 (Wed, 29 Aug 2007) | 10 lines
      
      - 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?
    ........
  ................
    r6525 | mmatthews | 2007-08-29 12:08:25 -0500 (Wed, 29 Aug 2007) | 9 lines
    
    Merged revisions 6522-6524 via svnmerge from 
   
svn+ssh://mmatthews@stripped/connectors-svnroot/connector-j/branches/branch_5_0
    
    ........
      r6522 | mmatthews | 2007-08-29 11:59:18 -0500 (Wed, 29 Aug 2007) | 1 line
      
      Make functionsNeverReturnBlobs accessors public.
    ........
  ................
...............
  r6527 | mmatthews | 2007-08-29 12:54:37 -0500 (Wed, 29 Aug 2007) | 683 lines
  
  Blocked revisions
6397,6403-6404,6408-6413,6474,6476,6478-6479,6481-6482,6487-6488,6493-6495,6501-6508,6512,6514-6516,6519-6520
via svnmerge
  
  ................
    r6397 | mmatthews | 2007-04-11 00:11:41 -0500 (Wed, 11 Apr 2007) | 1 line
    
    Bumped version #.
  ................
    r6403 | mmatthews | 2007-04-20 16:02:26 -0500 (Fri, 20 Apr 2007) | 1 line
    
    Share project 'jdbc-4-0-examples' into
'svn+ssh://mmatthews@stripped/connectors-svnroot/connector-j'
  ................
    r6404 | mmatthews | 2007-04-20 16:03:18 -0500 (Fri, 20 Apr 2007) | 1 line
    
    Imported into SVN.
  ................
    r6408 | mmatthews | 2007-04-23 16:54:31 -0500 (Mon, 23 Apr 2007) | 1 line
    
    Added copyright notices, more comments.
  ................
    r6409 | mmatthews | 2007-04-23 18:38:32 -0500 (Mon, 23 Apr 2007) | 1 line
    
    Write out the "planet" as an HTML page, added BareBonesBrowserLaunch to automatically
launch the resultant page in a browser.
  ................
    r6410 | mmatthews | 2007-04-23 18:41:29 -0500 (Mon, 23 Apr 2007) | 1 line
    
    Changed formatting for display on projection screens.
  ................
    r6411 | mmatthews | 2007-04-24 13:32:36 -0500 (Tue, 24 Apr 2007) | 1 line
    
    Removed tests (not examples) that didn't belong in this project.
  ................
    r6412 | mmatthews | 2007-04-24 13:35:02 -0500 (Tue, 24 Apr 2007) | 1 line
    
    Removed empty directory.
  ................
    r6413 | mmatthews | 2007-04-24 16:03:27 -0500 (Tue, 24 Apr 2007) | 1 line
    
    (should've switched to resource view in Eclipse to delete the parent directory)
  ................
    r6474 | mmatthews | 2007-07-03 20:18:25 -0500 (Tue, 03 Jul 2007) | 1 line
    
    Merged 5.1 back into trunk, new development for 6.0 starts here.
  ................
    r6476 | mmatthews | 2007-07-03 20:28:06 -0500 (Tue, 03 Jul 2007) | 1 line
    
    Setup svnmerge properties
  ................
    r6478 | mmatthews | 2007-07-03 20:58:07 -0500 (Tue, 03 Jul 2007) | 1 line
    
    svnmerge init for merge-back from 5.1 branch
  ................
    r6479 | mmatthews | 2007-07-03 20:59:06 -0500 (Tue, 03 Jul 2007) | 1 line
    
    svnmerge init for merge-back from 5.0 branch
  ................
    r6481 | mmatthews | 2007-07-04 01:05:29 -0500 (Wed, 04 Jul 2007) | 1 line
    
    Syncing pre-merge data
  ................
    r6482 | mmatthews | 2007-07-05 14:01:07 -0500 (Thu, 05 Jul 2007) | 1 line
    
    Merged from 5.1.
  ................
    r6487 | mmatthews | 2007-07-17 22:34:57 -0500 (Tue, 17 Jul 2007) | 1 line
    
    Merges from 5.0.
  ................
    r6488 | mmatthews | 2007-07-17 22:40:05 -0500 (Tue, 17 Jul 2007) | 1 line
    
    Fixed typo in bug#.
  ................
    r6493 | mmatthews | 2007-07-18 16:17:46 -0500 (Wed, 18 Jul 2007) | 1 line
    
    Don't create Maven bundles for commercial builds. They're not needed.
  ................
    r6494 | mmatthews | 2007-08-08 20:59:55 -0500 (Wed, 08 Aug 2007) | 23 lines
    
     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().
  ................
    r6495 | mmatthews | 2007-08-13 15:22:27 -0500 (Mon, 13 Aug 2007) | 4 lines
    
    - 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.
  ................
    r6501 | mmatthews | 2007-08-29 09:51:56 -0500 (Wed, 29 Aug 2007) | 3 lines
    
    Initialized merge tracking via "svnmerge" with revisions "1-6500" from 
   
svn+ssh://mmatthews@stripped/connectors-svnroot/connector-j/branches/branch_5_1/connector-j
  ................
    r6502 | mmatthews | 2007-08-29 09:52:40 -0500 (Wed, 29 Aug 2007) | 1 line
    
    Shouldn't check-in svnmerge-commit-message.txt.
  ................
    r6503 | mmatthews | 2007-08-29 09:56:14 -0500 (Wed, 29 Aug 2007) | 3 lines
    
    Initialized merge tracking via "svnmerge" with revisions "1-6392" from 
   
svn+ssh://mmatthews@stripped/connectors-svnroot/connector-j/branches/branch_5_1
  ................
    r6504 | mmatthews | 2007-08-29 09:56:48 -0500 (Wed, 29 Aug 2007) | 3 lines
    
    Initialized merge tracking via "svnmerge" with revisions "1-6503" from 
   
svn+ssh://mmatthews@stripped/connectors-svnroot/connector-j/branches/branch_5_0
  ................
    r6505 | mmatthews | 2007-08-29 10:02:40 -0500 (Wed, 29 Aug 2007) | 3 lines
    
    Removed merge tracking for "svnmerge" for 
   
svn+ssh://mmatthews@stripped/connectors-svnroot/connector-j/branches/branch_5_0
  ................
    r6506 | mmatthews | 2007-08-29 10:03:00 -0500 (Wed, 29 Aug 2007) | 3 lines
    
    Removed merge tracking for "svnmerge" for 
   
svn+ssh://mmatthews@stripped/connectors-svnroot/connector-j/branches/branch_5_1
  ................
    r6507 | mmatthews | 2007-08-29 10:03:25 -0500 (Wed, 29 Aug 2007) | 3 lines
    
    Removed merge tracking for "svnmerge" for 
   
svn+ssh://mmatthews@stripped/connectors-svnroot/connector-j/branches/branch_5_1/connector-j
  ................
    r6508 | mmatthews | 2007-08-29 10:03:56 -0500 (Wed, 29 Aug 2007) | 3 lines
    
    Removed merge tracking for "svnmerge" for 
   
svn+ssh://mmatthews@stripped/connectors-svnroot/connector-j/branches/branch_5_0/connector-j
  ................
    r6512 | mmatthews | 2007-08-29 10:15:22 -0500 (Wed, 29 Aug 2007) | 3 lines
    
    Initialized merge tracking via "svnmerge" with revisions "1-6511" from 
   
svn+ssh://mmatthews@stripped/connectors-svnroot/connector-j/branches/branch_5_0
  ................
    r6514 | mmatthews | 2007-08-29 10:25:22 -0500 (Wed, 29 Aug 2007) | 3 lines
    
    Initialized merge tracking via "svnmerge" with revisions "1-6393" from 
   
svn+ssh://mmatthews@stripped/connectors-svnroot/connector-j/branches/branch_5_1
  ................
    r6515 | mmatthews | 2007-08-29 10:55:57 -0500 (Wed, 29 Aug 2007) | 501 lines
    
    Merged revisions 6394-6514 via svnmerge from 
   
svn+ssh://mmatthews@stripped/connectors-svnroot/connector-j/branches/branch_5_1
    
    ........
      r6394 | mmatthews | 2007-04-10 15:45:03 -0500 (Tue, 10 Apr 2007) | 3 lines
      
      - Fixed issue where calling getGeneratedKeys() on a prepared statement after 
      	  calling execute() didn't always return the generated keys (executeUpdate() 
      	  worked fine however).
    ........
      r6396 | mmatthews | 2007-04-11 00:10:44 -0500 (Wed, 11 Apr 2007) | 1 line
      
      Bumped version #.
    ........
      r6398 | mmatthews | 2007-04-17 14:28:20 -0500 (Tue, 17 Apr 2007) | 16 lines
      
      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.
    ........
      r6399 | mmatthews | 2007-04-17 14:31:27 -0500 (Tue, 17 Apr 2007) | 1 line
      
      Sync'd up with repository.
    ........
      r6400 | mmatthews | 2007-04-17 15:40:31 -0500 (Tue, 17 Apr 2007) | 1 line
      
      Switch to ConnectionImpl in a couple of places. Character sets for some DBMD is
busted in 5.0 too, so put the check for server > 5.2.
    ........
      r6401 | mmatthews | 2007-04-18 14:23:16 -0500 (Wed, 18 Apr 2007) | 4 lines
      
      - 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".
    ........
      r6402 | mmatthews | 2007-04-18 14:38:48 -0500 (Wed, 18 Apr 2007) | 7 lines
      
      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.
    ........
      r6406 | mmatthews | 2007-04-21 21:14:34 -0500 (Sat, 21 Apr 2007) | 1 line
      
      Support for unwrapping on statements, prepared statements.
    ........
      r6407 | mmatthews | 2007-04-23 16:40:24 -0500 (Mon, 23 Apr 2007) | 1 line
      
      Refactored wrapper.unwrap() and some various isWrapperFor() classes for clarity.
    ........
      r6414 | mmatthews | 2007-05-02 13:55:06 -0500 (Wed, 02 May 2007) | 16 lines
      
      	  	    
      	- 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 -- contributed under CLA#43).
      	  
      	- 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.
    ........
      r6415 | mmatthews | 2007-05-03 21:18:33 -0500 (Thu, 03 May 2007) | 37 lines
      
      	- 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.
      	    
      	- 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.
    ........
      r6416 | mmatthews | 2007-05-04 12:38:32 -0500 (Fri, 04 May 2007) | 1 line
      
      "beginningOfSlashes" used to mean "end", now it really means "beginning", so we have
to adjust where we look for the hostname.
    ........
      r6417 | mmatthews | 2007-05-04 13:41:42 -0500 (Fri, 04 May 2007) | 8 lines
      
      - 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.
    ........
      r6418 | mmatthews | 2007-05-09 18:12:08 -0500 (Wed, 09 May 2007) | 1 line
      
      Remove JDK-1.5+-only constructs.
    ........
      r6420 | mmatthews | 2007-05-09 19:53:29 -0500 (Wed, 09 May 2007) | 1 line
      
      Remove auto-added import (by Eclipse), removed JDK-1.5+-only constructs.
    ........
      r6422 | mmatthews | 2007-05-10 15:32:52 -0500 (Thu, 10 May 2007) | 1 line
      
      Updated release date for 5.0.6.
    ........
      r6424 | mmatthews | 2007-05-11 16:20:14 -0500 (Fri, 11 May 2007) | 1 line
      
      Implement some missing JDBC-4.0 functionality, push non-Java-6-specific code back
into DatabaseMetadata.
    ........
      r6425 | mmatthews | 2007-05-11 18:23:05 -0500 (Fri, 11 May 2007) | 1 line
      
      Fleshed out serializeAsCharacterStream() and serializeAsString() methods to support
all result implementations (SAX, StAX, DOM and Stream)
    ........
      r6426 | mmatthews | 2007-05-14 14:08:11 -0500 (Mon, 14 May 2007) | 1 line
      
      Use testsuite statement instance for "KILL"s, makes testFailoverReadonly more
robust, less influence by timing factors.
    ........
      r6427 | mmatthews | 2007-05-14 14:33:48 -0500 (Mon, 14 May 2007) | 1 line
      
      JDK-1.3.1 doesn't have DST patches, so don't try testBug3620() in that environment.
    ........
      r6429 | mmatthews | 2007-05-15 22:31:15 -0500 (Tue, 15 May 2007) | 9 lines
      
      nn-nn-07 - Version 5.0.7
      
          - The configuration "useCursorFetch" (for MySQL-5.0+, which enables
            the use of cursors that allow Connector/J to save memory by fetching 
            result set rows in chunks, set by Statement.setFetchSize() by using 
            fully-materialized cursors on the server) will now automatically 
            set "useServerPrepStmts" to "true" when it has been set to "true", 
            since it requires server-side prepared statements in order to 
            function correctly.
    ........
      r6430 | mmatthews | 2007-05-16 16:33:00 -0500 (Wed, 16 May 2007) | 4 lines
      
      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.
      	       
    ........
      r6431 | mmatthews | 2007-05-16 16:40:02 -0500 (Wed, 16 May 2007) | 1 line
      
      Implemented free().
    ........
      r6433 | mmatthews | 2007-05-18 13:38:56 -0500 (Fri, 18 May 2007) | 17 lines
      
         - 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).
    ........
      r6434 | mmatthews | 2007-05-18 13:48:07 -0500 (Fri, 18 May 2007) | 19 lines
      
      - 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.
    ........
      r6435 | mmatthews | 2007-05-18 13:56:46 -0500 (Fri, 18 May 2007) | 1 line
      
      First cut at statement interceptors, need to make them pluggable, and provide
something other than a "null" example (caching, "SHOW profile" or "SHOW STATUS" diffs
perhaps?)
    ........
      r6436 | mmatthews | 2007-05-23 17:43:02 -0500 (Wed, 23 May 2007) | 1 line
      
      Append space after table name if whereClause is specified or non-null in
getSingleValue().
    ........
      r6437 | mmatthews | 2007-05-24 15:17:01 -0500 (Thu, 24 May 2007) | 7 lines
      
      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, the API is still open to  being modified).
       
      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. 
    ........
      r6438 | mmatthews | 2007-05-25 15:16:06 -0500 (Fri, 25 May 2007) | 1 line
      
      Fix issue with parsing /* ... */ comments that occur at end-of-line.
    ........
      r6439 | mmatthews | 2007-05-25 15:39:18 -0500 (Fri, 25 May 2007) | 4 lines
      
      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).
      
      Removed a couple of extra byte[] allocations when reading the packet header for
split packets (we can reuse the existing buffer for these).
    ........
      r6440 | mmatthews | 2007-05-30 12:27:36 -0500 (Wed, 30 May 2007) | 1 line
      
      Pickup the thread ID immediately after successful handshake, rather than waiting for
initialization of server variables (to make debugging/tracing more correct).
    ........
      r6441 | mmatthews | 2007-06-04 14:18:23 -0500 (Mon, 04 Jun 2007) | 5 lines
      
      	- 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).
    ........
      r6442 | mmatthews | 2007-06-05 12:56:41 -0500 (Tue, 05 Jun 2007) | 1 line
      
      Externalized the descriptions of connection properties.
    ........
      r6443 | mmatthews | 2007-06-06 11:23:46 -0500 (Wed, 06 Jun 2007) | 1 line
      
      Added target to generate error mapping and connection properties docs in one go.
    ........
      r6444 | mmatthews | 2007-06-06 14:16:30 -0500 (Wed, 06 Jun 2007) | 4 lines
      
      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.
    ........
      r6445 | mmatthews | 2007-06-07 10:25:59 -0500 (Thu, 07 Jun 2007) | 5 lines
      
      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.
            (tbd: deal with dates/times efficiently, timestamps already covered).
    ........
      r6446 | mmatthews | 2007-06-07 10:30:07 -0500 (Thu, 07 Jun 2007) | 1 line
      
      Made it possible to retrieve prepared statement parameter bindings (to be used in
StatementInterceptors, primarily). 
    ........
      r6447 | mmatthews | 2007-06-07 10:37:52 -0500 (Thu, 07 Jun 2007) | 1 line
      
      Tests for PreparedStatementBindings
    ........
      r6448 | mmatthews | 2007-06-07 10:40:36 -0500 (Thu, 07 Jun 2007) | 1 line
      
      Updated changelog to reflect RowHolder refactoring, and PreparedStatementBindings
implementation.
    ........
      r6449 | mmatthews | 2007-06-14 11:11:19 -0500 (Thu, 14 Jun 2007) | 3 lines
      
      Implementations of all "complex" types for result sets now represented in
RowHolders.
      
      Added "direct" row unpack (bypassing packet code) in MysqlIO.nextRow(), 2x speedup
for this method (doesn't equate to 2x speedup in the driver, but there is a performance
increase of around 5-10% for most use cases).
    ........
      r6450 | mmatthews | 2007-06-14 20:10:23 -0500 (Thu, 14 Jun 2007) | 3 lines
      
      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.
    ........
      r6451 | mmatthews | 2007-06-14 20:24:27 -0500 (Thu, 14 Jun 2007) | 5 lines
      
      Some renames around the Row(Holder) classes.
      
      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.
    ........
      r6452 | mmatthews | 2007-06-14 20:25:41 -0500 (Thu, 14 Jun 2007) | 1 line
      
      Updated to reflect streams and row navigation, and notice of rewriteBatch for
CallableStatement.
    ........
      r6453 | mmatthews | 2007-06-21 11:56:08 -0500 (Thu, 21 Jun 2007) | 4 lines
      
      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".
    ........
      r6454 | mmatthews | 2007-06-21 12:03:53 -0500 (Thu, 21 Jun 2007) | 7 lines
      
      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.
    ........
      r6455 | mmatthews | 2007-06-21 12:06:17 -0500 (Thu, 21 Jun 2007) | 1 line
      
      Removed spurious printStackTrace().
    ........
      r6456 | mmatthews | 2007-06-21 12:07:10 -0500 (Thu, 21 Jun 2007) | 1 line
      
      Added "alpha" flag to version.
    ........
      r6457 | mmatthews | 2007-06-21 13:47:21 -0500 (Thu, 21 Jun 2007) | 1 line
      
      5.0 server required for this test.
    ........
      r6458 | mmatthews | 2007-06-21 14:09:42 -0500 (Thu, 21 Jun 2007) | 1 line
      
      Removed non-bug test.
    ........
      r6459 | mmatthews | 2007-06-22 08:53:18 -0500 (Fri, 22 Jun 2007) | 1 line
      
      Added 5.1.1 release date. Updated changelog notes.
    ........
      r6464 | mmatthews | 2007-06-22 09:41:18 -0500 (Fri, 22 Jun 2007) | 1 line
      
      Fixed up substitutions in connection properties messages.
    ........
      r6466 | mmatthews | 2007-06-22 10:53:55 -0500 (Fri, 22 Jun 2007) | 1 line
      
      Fixed alpha specifier.
    ........
      r6469 | mmatthews | 2007-06-24 20:39:41 -0500 (Sun, 24 Jun 2007) | 1 line
      
      bumped version # and release status.
    ........
      r6471 | mmatthews | 2007-06-28 11:18:10 -0500 (Thu, 28 Jun 2007) | 7 lines
      
      	- Fixed BUG#28851 - parser in client-side prepared statements
      	  eats character following '/' if it's not a multi-line comment.
      	  
      	- Fixed BUG#28596 - 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.
    ........
      r6472 | mmatthews | 2007-06-28 15:01:19 -0500 (Thu, 28 Jun 2007) | 6 lines
      
      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.
    ........
      r6475 | mmatthews | 2007-07-03 20:21:38 -0500 (Tue, 03 Jul 2007) | 1 line
      
      Bumped version # for next release.
    ........
      r6477 | mmatthews | 2007-07-03 20:37:38 -0500 (Tue, 03 Jul 2007) | 1 line
      
      Set properties for svnmerge
    ........
      r6480 | mmatthews | 2007-07-04 00:47:23 -0500 (Wed, 04 Jul 2007) | 15 lines
      
      	- Setting "useBlobToStoreUTF8OutsideBMP" to "true" tells the 
      	  driver to treat [MEDIUM/LONG]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.
    ........
      r6487 | mmatthews | 2007-07-17 22:34:57 -0500 (Tue, 17 Jul 2007) | 1 line
      
      Merges from 5.0.
    ........
      r6488 | mmatthews | 2007-07-17 22:40:05 -0500 (Tue, 17 Jul 2007) | 1 line
      
      Fixed typo in bug#.
    ........
      r6492 | mmatthews | 2007-07-18 15:51:25 -0500 (Wed, 18 Jul 2007) | 1 line
      
      Fix broken import...Eclipse didn't complain about compiling it or running tests
earlier!?
    ........
      r6493 | mmatthews | 2007-07-18 16:17:46 -0500 (Wed, 18 Jul 2007) | 1 line
      
      Don't create Maven bundles for commercial builds. They're not needed.
    ........
      r6494 | mmatthews | 2007-08-08 20:59:55 -0500 (Wed, 08 Aug 2007) | 23 lines
      
       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().
    ........
      r6496 | mmatthews | 2007-08-13 15:22:33 -0500 (Mon, 13 Aug 2007) | 4 lines
      
      - 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.
    ........
      r6497 | mmatthews | 2007-08-20 16:27:49 -0500 (Mon, 20 Aug 2007) | 1 line
      
      Some work to support multiple table updatable result sets. None of this is exposed
to the enduser (yet), just the scaffolding to hold it up.
    ........
      r6499 | mcbrown | 2007-08-29 09:11:48 -0500 (Wed, 29 Aug 2007) | 3 lines
      
      Correcting some typos in descriptions
    ........
      r6509 | mmatthews | 2007-08-29 10:04:49 -0500 (Wed, 29 Aug 2007) | 3 lines
      
      Removed merge tracking for "svnmerge" for 
     
svn+ssh://mmatthews@stripped/connectors-svnroot/connector-j/trunk/connector-j
    ........
      r6510 | mmatthews | 2007-08-29 10:05:32 -0500 (Wed, 29 Aug 2007) | 3 lines
      
      Initialized merge tracking via "svnmerge" with revisions "1-6392" from 
      svn+ssh://mmatthews@stripped/connectors-svnroot/connector-j/trunk
    ........
      r6513 | mmatthews | 2007-08-29 10:23:58 -0500 (Wed, 29 Aug 2007) | 1 line
      
      Merges from 5.0.
    ........
  ................
    r6516 | mmatthews | 2007-08-29 11:05:32 -0500 (Wed, 29 Aug 2007) | 1 line
    
    Post-merge fixups.
  ................
    r6519 | mmatthews | 2007-08-29 11:21:21 -0500 (Wed, 29 Aug 2007) | 1 line
    
    Updated changelogs for bug 30550.
  ................
    r6520 | mmatthews | 2007-08-29 11:27:40 -0500 (Wed, 29 Aug 2007) | 9 lines
    
    Merged revisions 6515-6517 via svnmerge from 
   
svn+ssh://mmatthews@stripped/connectors-svnroot/connector-j/branches/branch_5_1
    
    ........
      r6517 | mmatthews | 2007-08-29 11:14:04 -0500 (Wed, 29 Aug 2007) | 1 line
      
      Merge of fix for Bug 30550.
    ........
  ................
...............
  r6530 | mmatthews | 2007-08-29 14:42:13 -0500 (Wed, 29 Aug 2007) | 18 lines
  
  Merged revisions
6393-6396,6398-6402,6405-6407,6414-6473,6475,6477,6480,6483-6486,6489-6492,6496-6500,6509-6511,6513,6517-6518,6521-6522,6524,6526-6529
via svnmerge from 
  svn+ssh://mmatthews@stripped/connectors-svnroot/connector-j/trunk
  
  ................
    r6529 | mmatthews | 2007-08-29 14:31:44 -0500 (Wed, 29 Aug 2007) | 11 lines
    
    Merged revisions 6525-6528 via svnmerge from 
   
svn+ssh://mmatthews@stripped/connectors-svnroot/connector-j/branches/branch_5_0
    
    ........
      r6528 | mmatthews | 2007-08-29 14:27:12 -0500 (Wed, 29 Aug 2007) | 2 lines
      
      Fixed BUG#29106 - Connection checker for JBoss didn't use same method parameters
      
            via reflection, causing connections to always seem "bad".
    ........
  ................
...............
  r6533 | mmatthews | 2007-08-30 10:52:01 -0500 (Thu, 30 Aug 2007) | 24 lines
  
  Merged revisions
6398-6402,6405-6407,6414-6473,6475,6477,6480,6483-6486,6489-6492,6496-6500,6509-6511,6513,6517-6518,6521-6522,6524,6526-6528,6530-6532
via svnmerge from 
  svn+ssh://mmatthews@stripped/connectors-svnroot/connector-j/trunk
  
  ................
    r6532 | mmatthews | 2007-08-30 10:32:10 -0500 (Thu, 30 Aug 2007) | 17 lines
    
    Merged revisions 6531 via svnmerge from 
   
svn+ssh://mmatthews@stripped/connectors-svnroot/connector-j/branches/branch_5_0
    
    ........
      r6531 | mmatthews | 2007-08-30 10:21:06 -0500 (Thu, 30 Aug 2007) | 5 lines
      
      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.
    ........
  ................
...............
  r6536 | mmatthews | 2007-08-30 15:56:36 -0500 (Thu, 30 Aug 2007) | 20 lines
  
  Merged revisions
6398-6402,6405-6407,6414-6473,6475,6477,6480,6483-6486,6489-6492,6496-6500,6509-6511,6513,6517-6518,6521-6522,6524,6526-6528,6530-6531,6533-6535
via svnmerge from 
  svn+ssh://mmatthews@stripped/connectors-svnroot/connector-j/trunk
  
  ................
    r6535 | mmatthews | 2007-08-30 15:52:15 -0500 (Thu, 30 Aug 2007) | 13 lines
    
    Merged revisions 6529-6530,6532-6534 via svnmerge from 
   
svn+ssh://mmatthews@stripped/connectors-svnroot/connector-j/branches/branch_5_0
    
    ........
      r6534 | mmatthews | 2007-08-30 15:46:47 -0500 (Thu, 30 Aug 2007) | 3 lines
      
      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.
    ........
  ................
...............
  r6539 | mmatthews | 2007-08-30 16:49:56 -0500 (Thu, 30 Aug 2007) | 20 lines
  
  Merged revisions
6398-6402,6405-6407,6414-6473,6475,6477,6480,6483-6486,6489-6492,6496-6500,6509-6511,6513,6517-6518,6521-6522,6524,6526-6528,6530-6531,6533-6534,6536-6538
via svnmerge from 
  svn+ssh://mmatthews@stripped/connectors-svnroot/connector-j/trunk
  
  ................
    r6538 | mmatthews | 2007-08-30 16:39:03 -0500 (Thu, 30 Aug 2007) | 13 lines
    
    Merged revisions 6535-6537 via svnmerge from 
   
svn+ssh://mmatthews@stripped/connectors-svnroot/connector-j/branches/branch_5_0
    
    ........
      r6537 | mmatthews | 2007-08-30 16:26:34 -0500 (Thu, 30 Aug 2007) | 3 lines
      
      Fixed BUG#29852 - Closing a load-balanced connection would cause a
      
            ClassCastException.
      
              
    ........
  ................
...............
  r6543 | mmatthews | 2007-08-30 20:22:50 -0500 (Thu, 30 Aug 2007) | 24 lines
  
  Merged revisions
6398-6402,6405-6407,6414-6473,6475,6477,6480,6483-6486,6489-6492,6496-6500,6509-6511,6513,6517-6518,6521-6522,6524,6526-6528,6530-6531,6533-6534,6536-6537,6539-6542
via svnmerge from 
  svn+ssh://mmatthews@stripped/connectors-svnroot/connector-j/trunk
  
  ................
    r6541 | mmatthews | 2007-08-30 20:15:59 -0500 (Thu, 30 Aug 2007) | 13 lines
    
    Merged revisions 6538-6540 via svnmerge from 
   
svn+ssh://mmatthews@stripped/connectors-svnroot/connector-j/branches/branch_5_0
    
    ........
      r6540 | mmatthews | 2007-08-30 19:50:39 -0500 (Thu, 30 Aug 2007) | 3 lines
      
      Fixed BUG#27867 - Schema objects with identifiers other than
      
            the connection character aren't retrieved correctly in 
      
            ResultSetMetadata.  
    ........
  ................
    r6542 | mmatthews | 2007-08-30 20:17:04 -0500 (Thu, 30 Aug 2007) | 1 line
    
    Post-merge fixups.
  ................
...............
  r6547 | mmatthews | 2007-09-04 12:34:45 -0500 (Tue, 04 Sep 2007) | 28 lines
  
  Merged revisions
6398-6402,6405-6407,6414-6473,6475,6477,6480,6483-6486,6489-6492,6496-6500,6509-6511,6513,6517-6518,6521-6522,6524,6526-6528,6530-6531,6533-6534,6536-6537,6539-6540,6543-6546
via svnmerge from 
  svn+ssh://mmatthews@stripped/connectors-svnroot/connector-j/trunk
  
  ................
    r6546 | mmatthews | 2007-09-04 12:31:26 -0500 (Tue, 04 Sep 2007) | 21 lines
    
    Merged revisions 6545 via svnmerge from 
   
svn+ssh://mmatthews@stripped/connectors-svnroot/connector-j/branches/branch_5_0
    
    ........
      r6545 | mmatthews | 2007-09-04 11:54:36 -0500 (Tue, 04 Sep 2007) | 7 lines
      
      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.
    ........
  ................
...............
  r6552 | mmatthews | 2007-09-04 13:40:35 -0500 (Tue, 04 Sep 2007) | 35 lines
  
  Merged revisions
6398-6402,6405-6407,6414-6473,6475,6477,6480,6483-6486,6489-6492,6496-6500,6509-6511,6513,6517-6518,6521-6522,6524,6526-6528,6530-6531,6533-6534,6536-6537,6539-6540,6543-6545,6547-6551
via svnmerge from 
  svn+ssh://mmatthews@stripped/connectors-svnroot/connector-j/trunk
  
  ................
    r6548 | mmatthews | 2007-09-04 12:41:10 -0500 (Tue, 04 Sep 2007) | 9 lines
    
    Merged revisions 6544 via svnmerge from 
   
svn+ssh://mmatthews@stripped/connectors-svnroot/connector-j/branches/branch_5_1
    
    ........
      r6544 | mcbrown | 2007-08-31 01:14:57 -0500 (Fri, 31 Aug 2007) | 3 lines
      
      Updating the XSL transform for the errors table
    ........
  ................
    r6551 | mmatthews | 2007-09-04 13:36:20 -0500 (Tue, 04 Sep 2007) | 17 lines
    
    Merged revisions 6541-6544,6546-6550 via svnmerge from 
   
svn+ssh://mmatthews@stripped/connectors-svnroot/connector-j/branches/branch_5_0
    
    ........
      r6549 | mmatthews | 2007-09-04 12:48:14 -0500 (Tue, 04 Sep 2007) | 2 lines
      
      Fixed BUG#27182 - Connection.getServerCharacterEncoding() doesn't work
      
            for servers with version >= 4.1.
    ........
      r6550 | mmatthews | 2007-09-04 13:28:45 -0500 (Tue, 04 Sep 2007) | 2 lines
      
       Fixed BUG#27915 - DatabaseMetaData.getColumns() doesn't
      
            contain SCOPE_* or IS_AUTOINCREMENT columns.
    ........
  ................
...............
  r6553 | mmatthews | 2007-09-04 13:48:51 -0500 (Tue, 04 Sep 2007) | 1 line
  
  Preparing for release of 5.1.3 RC.
...............
  r6557 | mmatthews | 2007-09-04 16:50:39 -0500 (Tue, 04 Sep 2007) | 20 lines
  
  Merged revisions
6398-6402,6405-6407,6414-6473,6475,6477,6480,6483-6486,6489-6492,6496-6500,6509-6511,6513,6517-6518,6521-6522,6524,6526-6528,6530-6531,6533-6534,6536-6537,6539-6540,6543-6545,6547,6549-6550,6552-6556
via svnmerge from 
  svn+ssh://mmatthews@stripped/connectors-svnroot/connector-j/trunk
  
  ................
    r6556 | mmatthews | 2007-09-04 16:39:47 -0500 (Tue, 04 Sep 2007) | 13 lines
    
    Merged revisions 6551-6555 via svnmerge from 
   
svn+ssh://mmatthews@stripped/connectors-svnroot/connector-j/branches/branch_5_0
    
    ........
      r6554 | mmatthews | 2007-09-04 16:17:57 -0500 (Tue, 04 Sep 2007) | 1 line
      
      Fixed BUG#21116, revision not updated in DBMD.getDriverVersion() when released (we
now stuff in the svn revision of the directory).
    ........
      r6555 | mmatthews | 2007-09-04 16:19:51 -0500 (Tue, 04 Sep 2007) | 1 line
      
      Allow source builds to work, even if not checked out from SVN.
    ........
  ................
...............
  r6558 | mmatthews | 2007-09-04 18:27:09 -0500 (Tue, 04 Sep 2007) | 1 line
  
  Post-merge fixups.
...............
  r6559 | mmatthews | 2007-09-04 18:27:34 -0500 (Tue, 04 Sep 2007) | 1 line
  
  Fixups for 5.1.
...............
  r6560 | mmatthews | 2007-09-04 18:31:01 -0500 (Tue, 04 Sep 2007) | 1 line
  
  A nicer toString().
...............
  r6561 | mmatthews | 2007-09-05 10:59:46 -0500 (Wed, 05 Sep 2007) | 19 lines
  
  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.
...............
  r6562 | mmatthews | 2007-09-05 11:02:17 -0500 (Wed, 05 Sep 2007) | 1 line
  
  After some refactorings of the character set handling code, changeUser() wasn't
resetting the character set after the server cleared it.
...............
  r6566 | mmatthews | 2007-09-06 09:14:17 -0500 (Thu, 06 Sep 2007) | 20 lines
  
  Merged revisions
6398-6402,6405-6407,6414-6473,6475,6477,6480,6483-6486,6489-6492,6496-6500,6509-6511,6513,6517-6518,6521-6522,6524,6526-6528,6530-6531,6533-6534,6536-6537,6539-6540,6543-6545,6547,6549-6550,6552-6555,6557-6565
via svnmerge from 
  svn+ssh://mmatthews@stripped/connectors-svnroot/connector-j/trunk
  
  ................
    r6565 | mmatthews | 2007-09-06 09:07:15 -0500 (Thu, 06 Sep 2007) | 13 lines
    
    Merged revisions 6556-6564 via svnmerge from 
   
svn+ssh://mmatthews@stripped/connectors-svnroot/connector-j/branches/branch_5_0
    
    ........
      r6563 | mmatthews | 2007-09-06 09:02:01 -0500 (Thu, 06 Sep 2007) | 1 line
      
      Fixed BUG#30851, NPE with null column values when "padCharsWithSpace" is set to
"true".
    ........
      r6564 | mmatthews | 2007-09-06 09:03:59 -0500 (Thu, 06 Sep 2007) | 1 line
      
      Tags for inserting revision created.
    ........
  ................
...............



Property changes on: trunk
___________________________________________________________________
Name: svnmerge-integrated
   - /branches/branch_5_0:1-6564 /branches/branch_5_1:1-6517,6544
   + /branches/branch_5_0:1-6564 /branches/branch_5_1:1-6566

Modified: trunk/connector-j/CHANGES
===================================================================
--- trunk/connector-j/CHANGES	2007-09-06 14:14:17 UTC (rev 6566)
+++ trunk/connector-j/CHANGES	2007-09-06 15:12:14 UTC (rev 6567)
@@ -1,28 +1,28 @@
 # Changelog
 # $Id$
 
-nn-nn-07 - Version 5.1.3 RC
+09-07-07 - Version 5.1.3 RC
 
-    - Setting "useBlobToStoreUTF8OutsideBMP" to "true" tells the
-      driver to treat [MEDIUM/LONG]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.
+	- Setting "useBlobToStoreUTF8OutsideBMP" to "true" tells the
+	  driver to treat [MEDIUM/LONG]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 "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.
+	  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().
+	- New methods on com.mysql.jdbc.Statement: setLocalInfileInputStream()
+	  and getLocalInfileInputStream().
 
-      setLocalInfileInputStream() sets an InputStream instance that will be used to send
data
+	  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.
@@ -48,6 +48,26 @@
       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"
@@ -128,56 +148,56 @@
 
 04-11-07 - Version 5.1.0 Alpha
 
-    - Bumped JDBC Specification version number in jar-file manifest.
+	- 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).
+	- 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:
+	  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
+	  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).
+	- 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).
+	- 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.
+	  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.
+	- 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).
+	  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.
+	  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 SQLXML interfaces.
 
-    - Added support for JDBC-4.0's Wrapper interface.
+	- Added support for JDBC-4.0's Wrapper interface.
 
-    - Added support for JDBC-4.0's NCLOB, and NCHAR/NVARCHAR types.
+	- Added support for JDBC-4.0's NCLOB, and NCHAR/NVARCHAR types.
 
 nn-nn-07 - Version 5.0.8
 
@@ -230,9 +250,6 @@
     - 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".
-      
 07-19-07 - Version 5.0.7
 
     - Setting the configuration parameter "useCursorFetch" to "true" for
@@ -245,12 +262,12 @@
       "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.
+	- 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.
+	  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,
@@ -270,198 +287,198 @@
       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:
+	- 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")?
+	  	"tcpNoDelay" - Should the driver set SO_TCP_NODELAY (disabling the
+	  	               Nagle Algorithm, default "true")?
 
-        "tcpKeepAlive" - Should the driver set SO_KEEPALIVE (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.
+		"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.
+		"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.
+		"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).
+	- 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).
+	- 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".
+	- 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#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.
+	- 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.
+	  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.
+	- 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.
+	- 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#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#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#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#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.
+	- 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).
+	- 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#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#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.
+	- 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).
+	- 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.
+	- 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.
+	  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.
+	  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#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!)
+	- 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).
+	- 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+
+	- 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.
+	- 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
+	  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.
+	- 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 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 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).
+	- 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".
+	- 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.
+	  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.
+	- 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.
+	  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
+	- 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.
+	  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.
@@ -497,10 +514,10 @@
 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.
+	  (specifically cias variants of existing character sets), and inability to override
+	  the detected server character set.
 
-    - Performance enhancement of initial character set configuration, driver
+	- 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.
@@ -508,12 +525,12 @@
     - 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.
+	  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
@@ -522,206 +539,206 @@
       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.
+	  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 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#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#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#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#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#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#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#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#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.
+	- Fixed BUG#25379 - INOUT parameters in CallableStatements get
+	  doubly-escaped.
 
-    - Removed non-short-circuited logical ORs from "if" statements.
+	- 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.
+	- 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.
+	- 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).
+	- 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.
+	- 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.
+	- 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).
+	- 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.
+	- 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.
+	- 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.
+	- 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.
+	- 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.
+	- 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.
+	- 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.
+	- Fixed some NPEs when cached metadata was used with UpdatableResultSets.
 
-    - The "rewriteBatchedStatements" feature can now be used with server-side
-      prepared statements.
+	- 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#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().
+	- 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.
+	  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).
+	- 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).
+	- 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 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.
 
-    - 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).
+	- 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.
+	  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.
+	  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.
+	  procedure parser when getting parameter metadata for stored
+	  procedures.
 
-    - Driver now supports {call sp} (without "()" if procedure has no
-      arguments).
+	- 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.
+	- 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.
+	- 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.
+	- 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#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.
+	- 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'.
+	- 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.
+	- DatabaseMetaData correctly reports true for supportsCatalog*()
+	  methods.
 
 07-26-06 - Version 5.0.3
 
@@ -749,30 +766,30 @@
       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.
+	  subclasses) are not serializable, even though some J2EE containers
+	  expect them to be.
 
-    - Fixed BUG#20242 - MysqlValidConnectionChecker for JBoss doesn't
-      work with MySQLXADataSources.
+	- 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.
+	- 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).
+	- 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 connectio