Author: paul
Date: 2006-03-17 05:43:29 +0100 (Fri, 17 Mar 2006)
New Revision: 1610
Log:
r8745@frost: paul | 2006-03-16 22:41:00 -0600
Add markup.
Modified:
trunk/
trunk/refman-common/news-connector-j.xml
trunk/refman-common/titles.en.ent
Property changes on: trunk
___________________________________________________________________
Name: svk:merge
- b5ec3a16-e900-0410-9ad2-d183a3acac99:/mysqldoc-local/mysqldoc/trunk:8738
bf112a9c-6c03-0410-a055-ad865cd57414:/mysqldoc-local/mysqldoc/trunk:3931
+ b5ec3a16-e900-0410-9ad2-d183a3acac99:/mysqldoc-local/mysqldoc/trunk:8745
bf112a9c-6c03-0410-a055-ad865cd57414:/mysqldoc-local/mysqldoc/trunk:3931
Modified: trunk/refman-common/news-connector-j.xml
===================================================================
--- trunk/refman-common/news-connector-j.xml 2006-03-16 21:39:48 UTC (rev 1609)
+++ trunk/refman-common/news-connector-j.xml 2006-03-17 04:43:29 UTC (rev 1610)
@@ -19,139 +19,144 @@
<listitem>
<para>
- XADataSource implemented (ported from 3.2 branch which won't
- be released as a product). Use
- "com.mysql.jdbc.jdbc2.optional.MysqlXADataSource" as your
- datasource class name in your application server to utilize XA
- transactions in MySQL-5.0.10 and newer.
+ <literal>XADataSource</literal> implemented (ported from 3.2
+ branch which won't be released as a product). Use
+ <literal>com.mysql.jdbc.jdbc2.optional.MysqlXADataSource</literal>
+ as your datasource class name in your application server to
+ utilize XA transactions in MySQL-5.0.10 and newer.
</para>
</listitem>
<listitem>
<para>
- PreparedStatement.setString() didn't work correctly when
- sql_mode on server contained NO_BACKSLASH_ESCAPES, and no
- characters that needed escaping were present in the string.
+ <literal>PreparedStatement.setString()</literal> didn't work
+ correctly when <literal>sql_mode</literal> on server contained
+ <literal>NO_BACKSLASH_ESCAPES</literal> and no characters that
+ needed escaping were present in the string.
</para>
</listitem>
<listitem>
<para>
- Attempt detection of the MySQL type "BINARY" (it's an alias,
- so this isn't always reliable), and use the
- java.sql.Types.BINARY type mapping for it.
+ Attempt detection of the MySQL type <literal>BINARY</literal>
+ (it's an alias, so this isn't always reliable), and use the
+ <literal>java.sql.Types.BINARY</literal> type mapping for it.
</para>
</listitem>
<listitem>
<para>
- Moved -bin-g.jar file into separate "debug" subdirectory to
- avoid confusion.
+ Moved <filename>-bin-g.jar</filename> file into separate
+ <filename>debug</filename> subdirectory to avoid confusion.
</para>
</listitem>
<listitem>
<para>
- Don't allow .setAutoCommit(true), or .commit() or .rollback()
- on an XA-managed connection as-per the JDBC specification.
+ Don't allow <literal>.setAutoCommit(true)</literal>, or
+ <literal>.commit()</literal> or
<literal>.rollback()</literal>
+ on an XA-managed connection as per the JDBC specification.
</para>
</listitem>
<listitem>
<para>
- If the connection "useTimezone" is set to "true", then also
- respect timezone conversions in escape-processed string
- literals (e.g. "{ts ...}" and "{t ...}").
+ If the connection <literal>useTimezone</literal> is set to
+ <literal>true</literal>, then also respect time zone
+ conversions in escape-processed string literals (e.g.
+ <literal>"{ts ...}"</literal> and <literal>"{t
+ ...}"</literal>).
</para>
</listitem>
<listitem>
<para>
- Return original column name for RSMD.getColumnName() if the
- column was aliased, alias name for .getColumnLabel() (if
- aliased), and original table name for .getTableName(). Note
- this only works for MySQL-4.1 and newer, as older servers
- don't make this information available to clients.
+ Return original column name for
+ <literal>RSMD.getColumnName()</literal> if the column was
+ aliased, alias name for <literal>.getColumnLabel()</literal>
+ (if aliased), and original table name for
+ <literal>.getTableName()</literal>. Note this only works for
+ MySQL-4.1 and newer, as older servers don't make this
+ information available to clients.
</para>
</listitem>
<listitem>
<para>
- Setting "useJDBCCompliantTimezoneShift=true" (it's not the
- default) causes the driver to use GMT for _all_
- TIMESTAMP/DATETIME timezones, and the current VM timezone for
- any other type that refers to timezones. This feature can not
- be used when "useTimezone=true" to convert between server and
- client timezones.
+ Setting <literal>useJDBCCompliantTimezoneShift=true</literal>
+ (it's not the default) causes the driver to use GMT for
+ <emphasis>all</emphasis>
+
<literal>TIMESTAMP</literal>/<literal>DATETIME</literal> time
+ zones, and the current VM time zone for any other type that
+ refers to time zones. This feature can not be used when
+ <literal>useTimezone=true</literal> to convert between server
+ and client time zones.
</para>
</listitem>
<listitem>
<para>
Add one level of indirection of internal representation of
- CallableStatement parameter metadata to avoid class not found
- issues on JDK-1.3 for ParameterMetadata interface (which
- doesn't exist prior to JDBC-3.0).
+ <literal>CallableStatement</literal> parameter metadata to
+ avoid class not found issues on JDK-1.3 for
+ <literal>ParameterMetadata</literal> interface (which doesn't
+ exist prior to JDBC-3.0).
</para>
</listitem>
<listitem>
<para>
- Added unit tests for XADatasource, as well as friendlier
- exceptions for XA failures compared to the "stock" XAException
- (which has no messages).
+ Added unit tests for <literal>XADatasource</literal>, as well
+ as friendlier exceptions for XA failures compared to the
+ "stock" <literal>XAException</literal> (which has no
+ messages).
</para>
</listitem>
<listitem>
<para>
- Fixed BUG#14279 - Idle timeouts cause XAConnections to whine
- about rolling themselves back
+ Idle timeouts cause <literal>XAConnections</literal> to whine
+ about rolling themselves back. (Bug #14729)
</para>
</listitem>
<listitem>
<para>
Added support for Connector/MXJ integration via url
- subprotocol "jdbc:mysql:mxj://....".
+ subprotocol <literal>jdbc:mysql:mxj://...</literal>.
</para>
</listitem>
<listitem>
<para>
- Moved all SQLException constructor usage to a factory in
- SQLError (ground-work for JDBC-4.0 SQLState-based exception
- classes).
+ Moved all <literal>SQLException</literal> constructor usage to
+ a factory in <literal>SQLError</literal> (ground-work for
+ JDBC-4.0 <literal>SQLState</literal>-based exception classes).
</para>
</listitem>
<listitem>
<para>
- Removed Java5-specific calls to BigDecimal constructor (when
- result set value is '', (int)0 was being used as an argument
- in-directly via method return value. This signature doesn't
+ Removed Java5-specific calls to <literal>BigDecimal</literal>
+ constructor (when result set value is <literal>''</literal>,
+ <literal>(int)0</literal> was being used as an argument
+ indirectly via method return value. This signature doesn't
exist prior to Java5.)
</para>
</listitem>
<listitem>
<para>
- Moved all SQLException creation to a factory method in
- SQLError, groundwork for JDBC-4.0 SQLState class-based
- exceptions.
- </para>
- </listitem>
-
- <listitem>
- <para>
Added service-provider entry to
- META-INF/services/java.sql.Driver for JDBC-4.0 support.
+ <filename>META-INF/services/java.sql.Driver</filename> for
+ JDBC-4.0 support.
</para>
</listitem>
<listitem>
<para>
- Return "[VAR]BINARY" for RSMD.getColumnTypeName() when that is
+ Return "[VAR]BINARY" for
+ <literal>RSMD.getColumnTypeName()</literal> when that is
actually the type, and it can be distinguished (MySQL-4.1 and
newer).
</para>
@@ -160,35 +165,38 @@
<listitem>
<para>
When fix for BUG#14562 was merged from 3.1.12, added
- functionality for CallableStatement's parameter metadata to
- return correct information for .getParameterClassName().
+ functionality for <literal>CallableStatement</literal>'s
+ parameter metadata to return correct information for
+ <literal>.getParameterClassName()</literal>.
</para>
</listitem>
<listitem>
<para>
- Fuller synchronization of Connection to avoid deadlocks when
- using multithreaded frameworks that multithread a single
- connection (usually not recommended, but the JDBC spec allows
- it anyways), part of fix to BUG#14972).
+ Fuller synchronization of <literal>Connection</literal> to
+ avoid deadlocks when using multithreaded frameworks that
+ multithread a single connection (usually not recommended, but
+ the JDBC spec allows it anyways), part of fix to BUG#14972).
</para>
</listitem>
<listitem>
<para>
- Implementation of Statement.cancel() and
- Statement.setQueryTimeout(). Both require MySQL-5.0.0 or newer
- server, require a separate connection to issue the "KILL
- QUERY" command, and in the case of setQueryTimeout() creates
- an additional thread to handle the timeout functionality.
+ Implementation of <literal>Statement.cancel()</literal> and
+ <literal>Statement.setQueryTimeout()</literal>. Both require
+ MySQL-5.0.0 or newer server, require a separate connection to
+ issue the <literal>KILL QUERY</literal> statement, and in the
+ case of <literal>setQueryTimeout()</literal> creates an
+ additional thread to handle the timeout functionality.
</para>
<para>
- Note: Failures to cancel the statement for setQueryTimeout()
- may manifest themselves as RuntimeExceptions rather than
- failing silently, as there is currently no way to unblock the
- thread that is executing the query being cancelled due to
- timeout expiration and have it throw the exception instead.
+ Note: Failures to cancel the statement for
+ <literal>setQueryTimeout()</literal> may manifest themselves
+ as <literal>RuntimeExceptions</literal> rather than failing
+ silently, as there is currently no way to unblock the thread
+ that is executing the query being cancelled due to timeout
+ expiration and have it throw the exception instead.
</para>
</listitem>
@@ -204,50 +212,52 @@
<listitem>
<para>
- Fixed BUG#15464 - INOUT parameter does not store IN value.
+ <literal>INOUT</literal> parameter does not store
+ <literal>IN</literal> value. (Bug #15464)
</para>
</listitem>
<listitem>
<para>
- Fixed BUG#14609 - Exception thrown for new decimal type when
- using updatable result sets.
+ Exception thrown for new decimal type when using updatable
+ result sets. (Bug #14609)
</para>
</listitem>
<listitem>
<para>
- Fixed BUG#15544, no "dos" character set in MySQL > 4.1.0
+ No "dos" character set in MySQL > 4.1.0. (Bug #15544)
</para>
</listitem>
<listitem>
<para>
- Fixed BUG#15383 - PreparedStatement.setObject() serializes
- BigInteger as object, rather than sending as numeric value
- (and is thus not complementary to .getObject() on an UNSIGNED
- LONG type).
+ <literal>PreparedStatement.setObject()</literal> serializes
+ <literal>BigInteger</literal> as object, rather than sending
+ as numeric value (and is thus not complementary to
+ <literal>.getObject()</literal> on an <literal>UNSIGNED
+ LONG</literal> type). (Bug #15383)
</para>
</listitem>
<listitem>
<para>
- Fixed BUG#11874 - ResultSet.getShort() for UNSIGNED TINYINT
- returned wrong values.
+ <literal>ResultSet.getShort()</literal> for <literal>UNSIGNED
+ TINYINT</literal> returned wrong values. (Bug #11874)
</para>
</listitem>
<listitem>
<para>
- Fixed BUG#15676 - lib-nodist directory missing from package
- breaks out-of-box build
+ <filename>lib-nodist</filename> directory missing from package
+ breaks out-of-box build. (Bug #15676)
</para>
</listitem>
<listitem>
<para>
- Fixed BUG#15854 - DBMD.getColumns() returns wrong type for
- BIT.
+ <literal>DBMD.getColumns()</literal> returns wrong type for
+ <literal>BIT</literal>. (Bug #15854)
</para>
</listitem>
@@ -929,1039 +939,2227 @@
<title>&title-cj-news-3-1-9;</title>
-<programlisting>
- - Overhaul of character set configuration, everything now
- lives in a properties file.
-
- - Driver now correctly uses CP932 if available on the server
- for Windows-31J, CP932 and MS932 java encoding names,
- otherwise it resorts to SJIS, which is only a close
- approximation. Currently only MySQL-5.0.3 and newer (and
- MySQL-4.1.12 or .13, depending on when the character set
- gets backported) can reliably support any variant of CP932.
+ <itemizedlist>
- - Fixed BUG#9064 - com.mysql.jdbc.PreparedStatement.ParseInfo
- does unnecessary call to toCharArray().
+ <listitem>
+ <para>
+ Overhaul of character set configuration, everything now lives
+ in a properties file.
+ </para>
+ </listitem>
- - Fixed Bug#10144 - Memory leak in ServerPreparedStatement if
- serverPrepare() fails.
-
- - Actually write manifest file to correct place so it ends up
- in the binary jar file.
+ <listitem>
+ <para>
+ Driver now correctly uses CP932 if available on the server for
+ Windows-31J, CP932 and MS932 java encoding names, otherwise it
+ resorts to SJIS, which is only a close approximation.
+ Currently only MySQL-5.0.3 and newer (and MySQL-4.1.12 or .13,
+ depending on when the character set gets backported) can
+ reliably support any variant of CP932.
+ </para>
+ </listitem>
- - Added "createDatabaseIfNotExist" property (default is "false"),
- which will cause the driver to ask the server to create the
- database specified in the URL if it doesn't exist. You must have
- the appropriate privileges for database creation for this to
- work.
+ <listitem>
+ <para>
+ Fixed BUG#9064 - com.mysql.jdbc.PreparedStatement.ParseInfo
+ does unnecessary call to toCharArray().
+ </para>
+ </listitem>
- - Fixed BUG#10156 - Unsigned SMALLINT treated as signed for ResultSet.getInt(),
- fixed all cases for UNSIGNED integer values and server-side prepared statements,
- as well as ResultSet.getObject() for UNSIGNED TINYINT.
-
- - Fixed BUG#10155, double quotes not recognized when parsing
- client-side prepared statements.
-
- - Made enableStreamingResults() visible on
- com.mysql.jdbc.jdbc2.optional.StatementWrapper.
-
- - Made ServerPreparedStatement.asSql() work correctly so auto-explain
- functionality would work with server-side prepared statements.
-
- - Made JDBC2-compliant wrappers public in order to allow access to
- vendor extensions.
-
- - Cleaned up logging of profiler events, moved code to dump a profiler
- event as a string to com.mysql.jdbc.log.LogUtils so that third
- parties can use it.
-
- - DatabaseMetaData.supportsMultipleOpenResults() now returns true. The
- driver has supported this for some time, DBMD just missed that fact.
-
- - Fixed BUG#10310 - Driver doesn't support {?=CALL(...)} for calling
- stored functions. This involved adding support for function retrieval
- to DatabaseMetaData.getProcedures() and getProcedureColumns() as well.
-
- - Fixed BUG#10485, SQLException thrown when retrieving YEAR(2)
- with ResultSet.getString(). The driver will now always treat YEAR types
- as java.sql.Dates and return the correct values for getString().
- Alternatively, the "yearIsDateType" connection property can be set to
- "false" and the values will be treated as SHORTs.
-
- - The datatype returned for TINYINT(1) columns when "tinyInt1isBit=true"
- (the default) can be switched between Types.BOOLEAN and Types.BIT
- using the new configuration property "transformedBitIsBoolean", which
- defaults to "false". If set to "false" (the default),
- DatabaseMetaData.getColumns() and ResultSetMetaData.getColumnType()
- will return Types.BOOLEAN for TINYINT(1) columns. If "true",
- Types.BOOLEAN will be returned instead. Irregardless of this configuration
- property, if "tinyInt1isBit" is enabled, columns with the type TINYINT(1)
- will be returned as java.lang.Boolean instances from
- ResultSet.getObject(..), and ResultSetMetaData.getColumnClassName()
- will return "java.lang.Boolean".
+ <listitem>
+ <para>
+ Fixed Bug#10144 - Memory leak in ServerPreparedStatement if
+ serverPrepare() fails.
+ </para>
+ </listitem>
- - Fixed BUG#10496 - SQLException is thrown when using property
- "characterSetResults" with cp932 or eucjpms.
-
- - Reorganized directory layout, sources now in "src" folder,
- don't pollute parent directory when building, now output goes
- to "./build", distribution goes to "./dist".
-
- - Added support/bug hunting feature that generates .sql test
- scripts to STDERR when "autoGenerateTestcaseScript" is set
- to "true".
-
- - Fixed BUG#10850 - 0-length streams not sent to server when
- using server-side prepared statements.
-
- - Setting "cachePrepStmts=true" now causes the Connection to also
- cache the check the driver performs to determine if a prepared
- statement can be server-side or not, as well as caches server-side
- prepared statements for the lifetime of a connection. As before,
- the "prepStmtCacheSize" parameter controls the size of these
- caches.
-
- - Try to handle OutOfMemoryErrors more gracefully. Although not
- much can be done, they will in most cases close the connection
- they happened on so that further operations don't run into
- a connection in some unknown state. When an OOM has happened,
- any further operations on the connection will fail with a
- "Connection closed" exception that will also list the OOM exception
- as the reason for the implicit connection close event.
-
- - Don't send COM_RESET_STMT for each execution of a server-side
- prepared statement if it isn't required.
-
- - Driver detects if you're running MySQL-5.0.7 or later, and does
- not scan for "LIMIT ?[,?]" in statements being prepared, as the
- server supports those types of queries now.
-
- - Fixed BUG#11115, Varbinary data corrupted when using server-side
- prepared statements and ResultSet.getBytes().
-
- - Connection.setCatalog() is now aware of the "useLocalSessionState"
- configuration property, which when set to true will prevent
- the driver from sending "USE ..." to the server if the requested
- catalog is the same as the current catalog.
-
- - Added the following configuration bundles, use one or many via
- the "useConfigs" configuration property:
-
- * maxPerformance -- maximum performance without being reckless
- * solarisMaxPerformance -- maximum performance for Solaris,
- avoids syscalls where it can
- * 3-0-Compat -- Compatibility with Connector/J 3.0.x functionality
-
- - Added "maintainTimeStats" configuration property (defaults to "true"),
- which tells the driver whether or not to keep track of the last query time
- and the last successful packet sent to the server's time. If set to
- false, removes two syscalls per query.
-
- - Fixed BUG#11259, autoReconnect ping causes exception on connection
- startup.
-
- - Fixed BUG#11360 Connector/J dumping query into SQLException twice
-
- - Fixed PreparedStatement.setClob() not accepting null as a parameter.
-
- - Fixed BUG#11411 - Production package doesn't include JBoss integration
- classes.
-
- - Removed nonsensical "costly type conversion" warnings when using
- usage advisor.
-</programlisting>
+ <listitem>
+ <para>
+ Actually write manifest file to correct place so it ends up in
+ the binary jar file.
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ Added "createDatabaseIfNotExist" property (default is
+ "false"), which will cause the driver to ask the server to
+ create the database specified in the URL if it doesn't exist.
+ You must have the appropriate privileges for database creation
+ for this to work.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Fixed BUG#10156 - Unsigned SMALLINT treated as signed for
+ ResultSet.getInt(), fixed all cases for UNSIGNED integer
+ values and server-side prepared statements, as well as
+ ResultSet.getObject() for UNSIGNED TINYINT.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Fixed BUG#10155, double quotes not recognized when parsing
+ client-side prepared statements.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Made enableStreamingResults() visible on
+ com.mysql.jdbc.jdbc2.optional.StatementWrapper.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Made ServerPreparedStatement.asSql() work correctly so
+ auto-explain functionality would work with server-side
+ prepared statements.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Made JDBC2-compliant wrappers public in order to allow access
+ to vendor extensions.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Cleaned up logging of profiler events, moved code to dump a
+ profiler event as a string to com.mysql.jdbc.log.LogUtils so
+ that third parties can use it.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ DatabaseMetaData.supportsMultipleOpenResults() now returns
+ true. The driver has supported this for some time, DBMD just
+ missed that fact.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Fixed BUG#10310 - Driver doesn't support {?=CALL(...)} for
+ calling stored functions. This involved adding support for
+ function retrieval to DatabaseMetaData.getProcedures() and
+ getProcedureColumns() as well.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Fixed BUG#10485, SQLException thrown when retrieving YEAR(2)
+ with ResultSet.getString(). The driver will now always treat
+ YEAR types as java.sql.Dates and return the correct values for
+ getString(). Alternatively, the "yearIsDateType" connection
+ property can be set to "false" and the values will be treated
+ as SHORTs.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ The datatype returned for TINYINT(1) columns when
+ "tinyInt1isBit=true" (the default) can be switched between
+ Types.BOOLEAN and Types.BIT using the new configuration
+ property "transformedBitIsBoolean", which defaults to "false".
+ If set to "false" (the default), DatabaseMetaData.getColumns()
+ and ResultSetMetaData.getColumnType() will return
+ Types.BOOLEAN for TINYINT(1) columns. If "true", Types.BOOLEAN
+ will be returned instead. Irregardless of this configuration
+ property, if "tinyInt1isBit" is enabled, columns with the type
+ TINYINT(1) will be returned as java.lang.Boolean instances
+ from ResultSet.getObject(..), and
+ ResultSetMetaData.getColumnClassName() will return
+ "java.lang.Boolean".
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Fixed BUG#10496 - SQLException is thrown when using property
+ "characterSetResults" with cp932 or eucjpms.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Reorganized directory layout, sources now in "src" folder,
+ don't pollute parent directory when building, now output goes
+ to "./build", distribution goes to "./dist".
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Added support/bug hunting feature that generates .sql test
+ scripts to STDERR when "autoGenerateTestcaseScript" is set to
+ "true".
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Fixed BUG#10850 - 0-length streams not sent to server when
+ using server-side prepared statements.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Setting "cachePrepStmts=true" now causes the Connection to
+ also cache the check the driver performs to determine if a
+ prepared statement can be server-side or not, as well as
+ caches server-side prepared statements for the lifetime of a
+ connection. As before, the "prepStmtCacheSize" parameter
+ controls the size of these caches.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Try to handle OutOfMemoryErrors more gracefully. Although not
+ much can be done, they will in most cases close the connection
+ they happened on so that further operations don't run into a
+ connection in some unknown state. When an OOM has happened,
+ any further operations on the connection will fail with a
+ "Connection closed" exception that will also list the OOM
+ exception as the reason for the implicit connection close
+ event.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Don't send COM_RESET_STMT for each execution of a server-side
+ prepared statement if it isn't required.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Driver detects if you're running MySQL-5.0.7 or later, and
+ does not scan for "LIMIT ?[,?]" in statements being prepared,
+ as the server supports those types of queries now.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Fixed BUG#11115, Varbinary data corrupted when using
+ server-side prepared statements and ResultSet.getBytes().
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Connection.setCatalog() is now aware of the
+ "useLocalSessionState" configuration property, which when set
+ to true will prevent the driver from sending "USE ..." to the
+ server if the requested catalog is the same as the current
+ catalog.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Added the following configuration bundles, use one or many via
+ the "useConfigs" configuration property:
+ </para>
+
+ <itemizedlist>
+
+ <listitem>
+ <para>
+ maxPerformance -- maximum performance without being
+ reckless
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ solarisMaxPerformance -- maximum performance for Solaris,
+ avoids syscalls where it can
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ 3-0-Compat -- Compatibility with Connector/J 3.0.x
+ functionality
+ </para>
+ </listitem>
+
+ </itemizedlist>
+ </listitem>
+
+ <listitem>
+ <para>
+ Added "maintainTimeStats" configuration property (defaults to
+ "true"), which tells the driver whether or not to keep track
+ of the last query time and the last successful packet sent to
+ the server's time. If set to false, removes two syscalls per
+ query.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Fixed BUG#11259, autoReconnect ping causes exception on
+ connection startup.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Fixed BUG#11360 Connector/J dumping query into SQLException
+ twice
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Fixed PreparedStatement.setClob() not accepting null as a
+ parameter.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Fixed BUG#11411 - Production package doesn't include JBoss
+ integration classes.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Removed nonsensical "costly type conversion" warnings when
+ using usage advisor.
+ </para>
+ </listitem>
+
+ </itemizedlist>
+
</section>
<section id="cj-news-3-1-8">
<title>&title-cj-news-3-1-8;</title>
-<programlisting>
- - Fixed DatabaseMetaData.getTables() returning views when they were
- not asked for as one of the requested table types.
+ <itemizedlist>
- - Added support for new precision-math DECIMAL type in MySQL >= 5.0.3.
+ <listitem>
+ <para>
+ Fixed DatabaseMetaData.getTables() returning views when they
+ were not asked for as one of the requested table types.
+ </para>
+ </listitem>
- - Fixed ResultSet.getTime() on a NULL value for server-side prepared
- statements throws NPE.
+ <listitem>
+ <para>
+ Added support for new precision-math DECIMAL type in MySQL
+ >= 5.0.3.
+ </para>
+ </listitem>
- - Made Connection.ping() a public method.
+ <listitem>
+ <para>
+ Fixed ResultSet.getTime() on a NULL value for server-side
+ prepared statements throws NPE.
+ </para>
+ </listitem>
- - Fixed Bug#8868, DATE_FORMAT() queries returned as BLOBs from getObject().
+ <listitem>
+ <para>
+ Made Connection.ping() a public method.
+ </para>
+ </listitem>
- - ServerPreparedStatements now correctly 'stream' BLOB/CLOB data to the
- server. You can configure the threshold chunk size using the
- JDBC URL property 'blobSendChunkSize' (the default is one megabyte).
+ <listitem>
+ <para>
+ Fixed Bug#8868, DATE_FORMAT() queries returned as BLOBs from
+ getObject().
+ </para>
+ </listitem>
- - BlobFromLocator now uses correct identifier quoting when generating
- prepared statements.
+ <listitem>
+ <para>
+ ServerPreparedStatements now correctly 'stream' BLOB/CLOB data
+ to the server. You can configure the threshold chunk size
+ using the JDBC URL property 'blobSendChunkSize' (the default
+ is one megabyte).
+ </para>
+ </listitem>
- - Server-side session variables can be preset at connection time by
- passing them as a comma-delimited list for the connection property
- 'sessionVariables'.
+ <listitem>
+ <para>
+ BlobFromLocator now uses correct identifier quoting when
+ generating prepared statements.
+ </para>
+ </listitem>
- - Fixed regression in ping() for users using autoReconnect=true.
+ <listitem>
+ <para>
+ Server-side session variables can be preset at connection time
+ by passing them as a comma-delimited list for the connection
+ property 'sessionVariables'.
+ </para>
+ </listitem>
- - Fixed BUG#9040 - PreparedStatement.addBatch() doesn't work with server-side
- prepared statements and streaming BINARY data.
+ <listitem>
+ <para>
+ Fixed regression in ping() for users using autoReconnect=true.
+ </para>
+ </listitem>
- - Fixed BUG#8800 - DBMD.supportsMixedCase*Identifiers() returns wrong
- value on servers running on case-sensitive filesystems.
+ <listitem>
+ <para>
+ Fixed BUG#9040 - PreparedStatement.addBatch() doesn't work
+ with server-side prepared statements and streaming BINARY
+ data.
+ </para>
+ </listitem>
- - Fixed BUG#9206, can not use 'UTF-8' for characterSetResults
- configuration property.
+ <listitem>
+ <para>
+ Fixed BUG#8800 - DBMD.supportsMixedCase*Identifiers() returns
+ wrong value on servers running on case-sensitive filesystems.
+ </para>
+ </listitem>
- - Fixed BUG#9236, a continuation of BUG#8868, where functions used in queries
- that should return non-string types when resolved by temporary tables suddenly
- become opaque binary strings (work-around for server limitation). Also fixed
- fields with type of CHAR(n) CHARACTER SET BINARY to return correct/matching
- classes for RSMD.getColumnClassName() and ResultSet.getObject().
+ <listitem>
+ <para>
+ Fixed BUG#9206, can not use 'UTF-8' for characterSetResults
+ configuration property.
+ </para>
+ </listitem>
- - Fixed BUG#8792 - DBMD.supportsResultSetConcurrency() not returning
- true for forward-only/read-only result sets (we obviously support this).
+ <listitem>
+ <para>
+ Fixed BUG#9236, a continuation of BUG#8868, where functions
+ used in queries that should return non-string types when
+ resolved by temporary tables suddenly become opaque binary
+ strings (work-around for server limitation). Also fixed fields
+ with type of CHAR(n) CHARACTER SET BINARY to return
+ correct/matching classes for RSMD.getColumnClassName() and
+ ResultSet.getObject().
+ </para>
+ </listitem>
- - Fixed BUG#8803, 'DATA_TYPE' column from DBMD.getBestRowIdentifier()
- causes ArrayIndexOutOfBoundsException when accessed (and in fact, didn't
- return any value).
+ <listitem>
+ <para>
+ Fixed BUG#8792 - DBMD.supportsResultSetConcurrency() not
+ returning true for forward-only/read-only result sets (we
+ obviously support this).
+ </para>
+ </listitem>
- - Check for empty strings ('') when converting char/varchar column data to numbers,
- throw exception if 'emptyStringsConvertToZero' configuration property is set
- to 'false' (for backward-compatibility with 3.0, it is now set to 'true'
- by default, but will most likely default to 'false' in 3.2).
+ <listitem>
+ <para>
+ Fixed BUG#8803, 'DATA_TYPE' column from
+ DBMD.getBestRowIdentifier() causes
+ ArrayIndexOutOfBoundsException when accessed (and in fact,
+ didn't return any value).
+ </para>
+ </listitem>
- - Fixed BUG#9320 - PreparedStatement.getMetaData() inserts blank row in database
- under certain conditions when not using server-side prepared statements.
+ <listitem>
+ <para>
+ Check for empty strings ('') when converting char/varchar
+ column data to numbers, throw exception if
+ 'emptyStringsConvertToZero' configuration property is set to
+ 'false' (for backward-compatibility with 3.0, it is now set to
+ 'true' by default, but will most likely default to 'false' in
+ 3.2).
+ </para>
+ </listitem>
- - Connection.canHandleAsPreparedStatement() now makes 'best effort' to distinguish
- LIMIT clauses with placeholders in them from ones without in order to have fewer
- false positives when generating work-arounds for statements the server cannot
- currently handle as server-side prepared statements.
+ <listitem>
+ <para>
+ Fixed BUG#9320 - PreparedStatement.getMetaData() inserts blank
+ row in database under certain conditions when not using
+ server-side prepared statements.
+ </para>
+ </listitem>
- - Fixed build.xml to not compile log4j logging if log4j not available.
+ <listitem>
+ <para>
+ Connection.canHandleAsPreparedStatement() now makes 'best
+ effort' to distinguish LIMIT clauses with placeholders in them
+ from ones without in order to have fewer false positives when
+ generating work-arounds for statements the server cannot
+ currently handle as server-side prepared statements.
+ </para>
+ </listitem>
- - Added support for the c3p0 connection pool's (http://c3p0.sf.net/)
- validation/connection checker interface which uses the lightweight
- 'COM_PING' call to the server if available. To use it, configure your
- c3p0 connection pool's 'connectionTesterClassName' property to use
- 'com.mysql.jdbc.integration.c3p0.MysqlConnectionTester'.
+ <listitem>
+ <para>
+ Fixed build.xml to not compile log4j logging if log4j not
+ available.
+ </para>
+ </listitem>
- - Better detection of LIMIT inside/outside of quoted strings so that
- the driver can more correctly determine whether a prepared statement
- can be prepared on the server or not.
+ <listitem>
+ <para>
+ Added support for the c3p0 connection pool's
+ (http://c3p0.sf.net/) validation/connection checker interface
+ which uses the lightweight 'COM_PING' call to the server if
+ available. To use it, configure your c3p0 connection pool's
+ 'connectionTesterClassName' property to use
+ 'com.mysql.jdbc.integration.c3p0.MysqlConnectionTester'.
+ </para>
+ </listitem>
- - Fixed BUG#9319 - Stored procedures with same name in
- different databases confuse the driver when it tries to determine
- parameter counts/types.
+ <listitem>
+ <para>
+ Better detection of LIMIT inside/outside of quoted strings so
+ that the driver can more correctly determine whether a
+ prepared statement can be prepared on the server or not.
+ </para>
+ </listitem>
- - Added finalizers to ResultSet and Statement implementations to be JDBC
- spec-compliant, which requires that if not explicitly closed, these
- resources should be closed upon garbage collection.
+ <listitem>
+ <para>
+ Fixed BUG#9319 - Stored procedures with same name in different
+ databases confuse the driver when it tries to determine
+ parameter counts/types.
+ </para>
+ </listitem>
- - Fixed BUG#9682 - Stored procedures with DECIMAL parameters with
- storage specifications that contained "," in them would fail.
+ <listitem>
+ <para>
+ Added finalizers to ResultSet and Statement implementations to
+ be JDBC spec-compliant, which requires that if not explicitly
+ closed, these resources should be closed upon garbage
+ collection.
+ </para>
+ </listitem>
- - PreparedStatement.setObject(int, Object, int type, int scale) now
- uses scale value for BigDecimal instances.
+ <listitem>
+ <para>
+ Fixed BUG#9682 - Stored procedures with DECIMAL parameters
+ with storage specifications that contained "," in them would
+ fail.
+ </para>
+ </listitem>
- - Fixed BUG#9704 - Statement.getMoreResults() could throw NPE when
- existing result set was .close()d.
+ <listitem>
+ <para>
+ PreparedStatement.setObject(int, Object, int type, int scale)
+ now uses scale value for BigDecimal instances.
+ </para>
+ </listitem>
- - The performance metrics feature now gathers information about
- number of tables referenced in a SELECT.
+ <listitem>
+ <para>
+ Fixed BUG#9704 - Statement.getMoreResults() could throw NPE
+ when existing result set was .close()d.
+ </para>
+ </listitem>
- - The logging system is now automatically configured. If the value has
- been set by the user, via the URL property "logger" or the system
- property "com.mysql.jdbc.logger", then use that, otherwise, autodetect
- it using the following steps:
+ <listitem>
+ <para>
+ The performance metrics feature now gathers information about
+ number of tables referenced in a SELECT.
+ </para>
+ </listitem>
- Log4j, if it's available,
- Then JDK1.4 logging,
- Then fallback to our STDERR logging.
+ <listitem>
+ <para>
+ The logging system is now automatically configured. If the
+ value has been set by the user, via the URL property "logger"
+ or the system property "com.mysql.jdbc.logger", then use that,
+ otherwise, autodetect it using the following steps:
+ </para>
- - Fixed BUG#9778, DBMD.getTables() shouldn't return tables if views
- are asked for, even if the database version doesn't support views.
+ <orderedlist>
- - Fixed driver not returning 'true' for '-1' when ResultSet.getBoolean()
- was called on result sets returned from server-side prepared statements.
+ <listitem>
+ <para>
+ Log4j, if it's available,
+ </para>
+ </listitem>
- - Added a Manifest.MF file with implementation information to the .jar
- file.
+ <listitem>
+ <para>
+ Then JDK1.4 logging,
+ </para>
+ </listitem>
- - More tests in Field.isOpaqueBinary() to distinguish opaque binary (i.e.
- fields with type CHAR(n) and CHARACTER SET BINARY) from output of
- various scalar and aggregate functions that return strings.
+ <listitem>
+ <para>
+ Then fallback to our STDERR logging.
+ </para>
+ </listitem>
- - Fixed BUG#9917 - Should accept null for catalog (meaning use current)
- in DBMD methods, even though it's not JDBC-compliant for legacy's sake.
- Disable by setting connection property "nullCatalogMeansCurrent" to "false"
- (which will be the default value in C/J 3.2.x).
+ </orderedlist>
+ </listitem>
- - Fixed BUG#9769 - Should accept null for name patterns in DBMD (meaning "%"),
- even though it isn't JDBC compliant, for legacy's sake. Disable by setting
- connection property "nullNamePatternMatchesAll" to "false" (which will be
- the default value in C/J 3.2.x).
-</programlisting>
+ <listitem>
+ <para>
+ Fixed BUG#9778, DBMD.getTables() shouldn't return tables if
+ views are asked for, even if the database version doesn't
+ support views.
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ Fixed driver not returning 'true' for '-1' when
+ ResultSet.getBoolean() was called on result sets returned from
+ server-side prepared statements.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Added a Manifest.MF file with implementation information to
+ the .jar file.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ More tests in Field.isOpaqueBinary() to distinguish opaque
+ binary (i.e. fields with type CHAR(n) and CHARACTER SET
+ BINARY) from output of various scalar and aggregate functions
+ that return strings.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Fixed BUG#9917 - Should accept null for catalog (meaning use
+ current) in DBMD methods, even though it's not JDBC-compliant
+ for legacy's sake. Disable by setting connection property
+ "nullCatalogMeansCurrent" to "false" (which will be the
+ default value in C/J 3.2.x).
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Fixed BUG#9769 - Should accept null for name patterns in DBMD
+ (meaning "%"), even though it isn't JDBC compliant, for
+ legacy's sake. Disable by setting connection property
+ "nullNamePatternMatchesAll" to "false" (which will be the
+ default value in C/J 3.2.x).
+ </para>
+ </listitem>
+
+ </itemizedlist>
+
</section>
<section id="cj-news-3-1-7">
<title>&title-cj-news-3-1-7;</title>
-<programlisting>
- - Fixed BUG#7686, Timestamp key column data needed "_binary'"
- stripped for UpdatableResultSet.refreshRow().
+ <itemizedlist>
- - Fixed BUG#7715 - Timestamps converted incorrectly to strings
- with Server-side prepared statements and updatable result sets.
+ <listitem>
+ <para>
+ Fixed BUG#7686, Timestamp key column data needed "_binary'"
+ stripped for UpdatableResultSet.refreshRow().
+ </para>
+ </listitem>
- - Detect new sql_mode variable in string form (it used to be
- integer) and adjust quoting method for strings appropriately.
+ <listitem>
+ <para>
+ Fixed BUG#7715 - Timestamps converted incorrectly to strings
+ with Server-side prepared statements and updatable result
+ sets.
+ </para>
+ </listitem>
- - Added 'holdResultsOpenOverStatementClose' property (default is
- false), that keeps result sets open over statement.close() or new
- execution on same statement (suggested by Kevin Burton).
+ <listitem>
+ <para>
+ Detect new sql_mode variable in string form (it used to be
+ integer) and adjust quoting method for strings appropriately.
+ </para>
+ </listitem>
- - Fixed BUG#7952 -- Infinite recursion when 'falling back' to master
- in failover configuration.
+ <listitem>
+ <para>
+ Added 'holdResultsOpenOverStatementClose' property (default is
+ false), that keeps result sets open over statement.close() or
+ new execution on same statement (suggested by Kevin Burton).
+ </para>
+ </listitem>
- - Disable multi-statements (if enabled) for MySQL-4.1 versions prior
- to version 4.1.10 if the query cache is enabled, as the server
- returns wrong results in this configuration.
+ <listitem>
+ <para>
+ Fixed BUG#7952 -- Infinite recursion when 'falling back' to
+ master in failover configuration.
+ </para>
+ </listitem>
- - Fixed duplicated code in configureClientCharset() that prevented
- useOldUTF8Behavior=true from working properly.
+ <listitem>
+ <para>
+ Disable multi-statements (if enabled) for MySQL-4.1 versions
+ prior to version 4.1.10 if the query cache is enabled, as the
+ server returns wrong results in this configuration.
+ </para>
+ </listitem>
- - Removed 'dontUnpackBinaryResults' functionality, the driver now
- always stores results from server-side prepared statements as-is
- from the server and unpacks them on demand.
+ <listitem>
+ <para>
+ Fixed duplicated code in configureClientCharset() that
+ prevented useOldUTF8Behavior=true from working properly.
+ </para>
+ </listitem>
- - Fixed BUG#8096 where emulated locators corrupt binary data
- when using server-side prepared statements.
+ <listitem>
+ <para>
+ Removed 'dontUnpackBinaryResults' functionality, the driver
+ now always stores results from server-side prepared statements
+ as-is from the server and unpacks them on demand.
+ </para>
+ </listitem>
- - Fixed synchronization issue with
- ServerPreparedStatement.serverPrepare() that could cause
- deadlocks/crashes if connection was shared between threads.
+ <listitem>
+ <para>
+ Fixed BUG#8096 where emulated locators corrupt binary data
+ when using server-side prepared statements.
+ </para>
+ </listitem>
- - By default, the driver now scans SQL you are preparing via all
- variants of Connection.prepareStatement() to determine if it is a
- supported type of statement to prepare on the server side, and if
- it is not supported by the server, it instead prepares it as a
- client-side emulated prepared statement (BUG#4718). You can
- disable this by passing 'emulateUnsupportedPstmts=false' in your
- JDBC URL.
+ <listitem>
+ <para>
+ Fixed synchronization issue with
+ ServerPreparedStatement.serverPrepare() that could cause
+ deadlocks/crashes if connection was shared between threads.
+ </para>
+ </listitem>
- - Remove _binary introducer from parameters used as in/out
- parameters in CallableStatement.
+ <listitem>
+ <para>
+ By default, the driver now scans SQL you are preparing via all
+ variants of Connection.prepareStatement() to determine if it
+ is a supported type of statement to prepare on the server
+ side, and if it is not supported by the server, it instead
+ prepares it as a client-side emulated prepared statement
+ (BUG#4718). You can disable this by passing
+ 'emulateUnsupportedPstmts=false' in your JDBC URL.
+ </para>
+ </listitem>
- - Always return byte[]s for output parameters registered as *BINARY.
+ <listitem>
+ <para>
+ Remove _binary introducer from parameters used as in/out
+ parameters in CallableStatement.
+ </para>
+ </listitem>
- - Send correct value for 'boolean' "true" to server for
- PreparedStatement.setObject(n, "true", Types.BIT).
+ <listitem>
+ <para>
+ Always return byte[]s for output parameters registered as
+ *BINARY.
+ </para>
+ </listitem>
- - Fixed bug with Connection not caching statements from
- prepareStatement() when the statement wasn't a server-side
- prepared statement.
+ <listitem>
+ <para>
+ Send correct value for 'boolean' "true" to server for
+ PreparedStatement.setObject(n, "true", Types.BIT).
+ </para>
+ </listitem>
- - Choose correct 'direction' to apply time adjustments when both
- client and server are in GMT timezone when using
- ResultSet.get(..., cal) and PreparedStatement.set(...., cal).
+ <listitem>
+ <para>
+ Fixed bug with Connection not caching statements from
+ prepareStatement() when the statement wasn't a server-side
+ prepared statement.
+ </para>
+ </listitem>
- - Added 'dontTrackOpenResources' option (default is false, to be
- JDBC compliant), which helps with memory use for non-well-behaved
- apps (i.e applications which don't close Statements when they
- should).
+ <listitem>
+ <para>
+ Choose correct 'direction' to apply time adjustments when both
+ client and server are in GMT time zone when using
+ ResultSet.get(..., cal) and PreparedStatement.set(...., cal).
+ </para>
+ </listitem>
- - Fixed BUG#8428 - ResultSet.getString() doesn't maintain format
- stored on server, bug fix only enabled when 'noDatetimeStringSync'
- property is set to 'true' (the default is 'false').
+ <listitem>
+ <para>
+ Added 'dontTrackOpenResources' option (default is false, to be
+ JDBC compliant), which helps with memory use for
+ non-well-behaved apps (i.e applications which don't close
+ Statements when they should).
+ </para>
+ </listitem>
- - Fixed NPE in ResultSet.realClose() when using usage advisor and
- result set was already closed.
+ <listitem>
+ <para>
+ Fixed BUG#8428 - ResultSet.getString() doesn't maintain format
+ stored on server, bug fix only enabled when
+ 'noDatetimeStringSync' property is set to 'true' (the default
+ is 'false').
+ </para>
+ </listitem>
- - Fixed BUG#8487 - PreparedStatements not creating streaming result
- sets.
+ <listitem>
+ <para>
+ Fixed NPE in ResultSet.realClose() when using usage advisor
+ and result set was already closed.
+ </para>
+ </listitem>
- - Don't pass NULL to String.valueOf() in
- ResultSet.getNativeConvertToString(), as it stringifies it (i.e.
- returns "null"), which is not correct for the method in question.
+ <listitem>
+ <para>
+ Fixed BUG#8487 - PreparedStatements not creating streaming
+ result sets.
+ </para>
+ </listitem>
- - Fixed BUG#8484 - ResultSet.getBigDecimal() throws exception
- when rounding would need to occur to set scale. The driver now
- chooses a rounding mode of 'half up' if non-rounding
- BigDecimal.setScale() fails.
+ <listitem>
+ <para>
+ Don't pass NULL to String.valueOf() in
+ ResultSet.getNativeConvertToString(), as it stringifies it
+ (i.e. returns "null"), which is not correct for the method in
+ question.
+ </para>
+ </listitem>
- - Added 'useLocalSessionState' configuration property, when set to
- 'true' the JDBC driver trusts that the application is well-behaved
- and only sets autocommit and transaction isolation levels using
- the methods provided on java.sql.Connection, and therefore can
- manipulate these values in many cases without incurring
- round-trips to the database server.
+ <listitem>
+ <para>
+ Fixed BUG#8484 - ResultSet.getBigDecimal() throws exception
+ when rounding would need to occur to set scale. The driver now
+ chooses a rounding mode of 'half up' if non-rounding
+ BigDecimal.setScale() fails.
+ </para>
+ </listitem>
- - Added enableStreamingResults() to Statement for connection pool
- implementations that check Statement.setFetchSize() for
- specification-compliant values. Call Statement.setFetchSize(>=0)
- to disable the streaming results for that statement.
+ <listitem>
+ <para>
+ Added 'useLocalSessionState' configuration property, when set
+ to 'true' the JDBC driver trusts that the application is
+ well-behaved and only sets autocommit and transaction
+ isolation levels using the methods provided on
+ java.sql.Connection, and therefore can manipulate these values
+ in many cases without incurring round-trips to the database
+ server.
+ </para>
+ </listitem>
- - Added support for BIT type in MySQL-5.0.3. The driver will treat
- BIT(1-8) as the JDBC standard BIT type (which maps to
- java.lang.Boolean), as the server does not currently send enough
- information to determine the size of a bitfield when < 9 bits are
- declared. BIT(>9) will be treated as VARBINARY, and will return
- byte[] when getObject() is called.
-</programlisting>
+ <listitem>
+ <para>
+ Added enableStreamingResults() to Statement for connection
+ pool implementations that check Statement.setFetchSize() for
+ specification-compliant values. Call
+ Statement.setFetchSize(>=0) to disable the streaming
+ results for that statement.
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ Added support for BIT type in MySQL-5.0.3. The driver will
+ treat BIT(1-8) as the JDBC standard BIT type (which maps to
+ java.lang.Boolean), as the server does not currently send
+ enough information to determine the size of a bitfield when
+ < 9 bits are declared. BIT(>9) will be treated as
+ VARBINARY, and will return byte[] when getObject() is called.
+ </para>
+ </listitem>
+
+ </itemizedlist>
+
</section>
<section id="cj-news-3-1-6">
<title>&title-cj-news-3-1-6;</title>
-<programlisting>
- - Fixed hang on SocketInputStream.read() with Statement.setMaxRows() and
- multiple result sets when driver has to truncate result set directly,
- rather than tacking a 'LIMIT n' on the end of it.
+ <itemizedlist>
- - Fixed BUG#7026 - DBMD.getProcedures() doesn't respect catalog parameter.
-</programlisting>
+ <listitem>
+ <para>
+ Fixed hang on SocketInputStream.read() with
+ Statement.setMaxRows() and multiple result sets when driver
+ has to truncate result set directly, rather than tacking a
+ 'LIMIT n' on the end of it.
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ Fixed BUG#7026 - DBMD.getProcedures() doesn't respect catalog
+ parameter.
+ </para>
+ </listitem>
+
+ </itemizedlist>
+
</section>
<section id="cj-news-3-1-5">
<title>&title-cj-news-3-1-5;</title>
-<programlisting>
- - Fix comparisons made between string constants and dynamic strings that
- are either toUpperCase()d or toLowerCase()d to use Locale.ENGLISH, as
- some locales 'override' case rules for English. Also use
- StringUtils.indexOfIgnoreCase() instead of .toUpperCase().indexOf(),
- avoids creating a very short-lived transient String instance.
+ <itemizedlist>
- - Fixed BUG#5235 - Server-side prepared statements did not honor
- 'zeroDateTimeBehavior' property, and would cause class-cast
- exceptions when using ResultSet.getObject(), as the all-zero string
- was always returned.
+ <listitem>
+ <para>
+ Fix comparisons made between string constants and dynamic
+ strings that are either toUpperCase()d or toLowerCase()d to
+ use Locale.ENGLISH, as some locales 'override' case rules for
+ English. Also use StringUtils.indexOfIgnoreCase() instead of
+ .toUpperCase().indexOf(), avoids creating a very short-lived
+ transient String instance.
+ </para>
+ </listitem>
- - Fixed batched updates with server prepared statements weren't looking if
- the types had changed for a given batched set of parameters compared
- to the previous set, causing the server to return the error
- 'Wrong arguments to mysql_stmt_execute()'.
+ <listitem>
+ <para>
+ Fixed BUG#5235 - Server-side prepared statements did not honor
+ 'zeroDateTimeBehavior' property, and would cause class-cast
+ exceptions when using ResultSet.getObject(), as the all-zero
+ string was always returned.
+ </para>
+ </listitem>
- - Handle case when string representation of timestamp contains trailing '.'
- with no numbers following it.
+ <listitem>
+ <para>
+ Fixed batched updates with server prepared statements weren't
+ looking if the types had changed for a given batched set of
+ parameters compared to the previous set, causing the server to
+ return the error 'Wrong arguments to mysql_stmt_execute()'.
+ </para>
+ </listitem>
- - Fixed BUG#5706 - Inefficient detection of pre-existing string instances
- in ResultSet.getNativeString().
+ <listitem>
+ <para>
+ Handle case when string representation of timestamp contains
+ trailing '.' with no numbers following it.
+ </para>
+ </listitem>
- - Don't throw exceptions for Connection.releaseSavepoint().
+ <listitem>
+ <para>
+ Fixed BUG#5706 - Inefficient detection of pre-existing string
+ instances in ResultSet.getNativeString().
+ </para>
+ </listitem>
- - Use a per-session Calendar instance by default when decoding dates
- from ServerPreparedStatements (set to old, less performant behavior by
- setting property 'dynamicCalendars=true').
+ <listitem>
+ <para>
+ Don't throw exceptions for Connection.releaseSavepoint().
+ </para>
+ </listitem>
- - Added experimental configuration property 'dontUnpackBinaryResults',
- which delays unpacking binary result set values until they're asked for,
- and only creates object instances for non-numerical values (it is set
- to 'false' by default). For some usecase/jvm combinations, this is
- friendlier on the garbage collector.
+ <listitem>
+ <para>
+ Use a per-session Calendar instance by default when decoding
+ dates from ServerPreparedStatements (set to old, less
+ performant behavior by setting property
+ 'dynamicCalendars=true').
+ </para>
+ </listitem>
- - Fixed BUG#5729 - UNSIGNED BIGINT unpacked incorrectly from
- server-side prepared statement result sets.
+ <listitem>
+ <para>
+ Added experimental configuration property
+ 'dontUnpackBinaryResults', which delays unpacking binary
+ result set values until they're asked for, and only creates
+ object instances for non-numerical values (it is set to
+ 'false' by default). For some usecase/jvm combinations, this
+ is friendlier on the garbage collector.
+ </para>
+ </listitem>
- - Fixed BUG#6225 - ServerSidePreparedStatement allocating short-lived
- objects un-necessarily.
+ <listitem>
+ <para>
+ Fixed BUG#5729 - UNSIGNED BIGINT unpacked incorrectly from
+ server-side prepared statement result sets.
+ </para>
+ </listitem>
- - Removed un-wanted new Throwable() in ResultSet constructor due to bad
- merge (caused a new object instance that was never used for every result
- set created) - Found while profiling for BUG#6359.
+ <listitem>
+ <para>
+ Fixed BUG#6225 - ServerSidePreparedStatement allocating
+ short-lived objects un-necessarily.
+ </para>
+ </listitem>
- - Fixed too-early creation of StringBuffer in EscapeProcessor.escapeSQL(),
- also return String when escaping not needed (to avoid unnecssary object
- allocations). Found while profiling for BUG#6359.
+ <listitem>
+ <para>
+ Removed un-wanted new Throwable() in ResultSet constructor due
+ to bad merge (caused a new object instance that was never used
+ for every result set created) - Found while profiling for
+ BUG#6359.
+ </para>
+ </listitem>
- - Use null-safe-equals for key comparisons in updatable result sets.
+ <listitem>
+ <para>
+ Fixed too-early creation of StringBuffer in
+ EscapeProcessor.escapeSQL(), also return String when escaping
+ not needed (to avoid unnecssary object allocations). Found
+ while profiling for BUG#6359.
+ </para>
+ </listitem>
- - Fixed BUG#6537, SUM() on Decimal with server-side prepared statement ignores
- scale if zero-padding is needed (this ends up being due to conversion to DOUBLE
- by server, which when converted to a string to parse into BigDecimal, loses all
- 'padding' zeros).
+ <listitem>
+ <para>
+ Use null-safe-equals for key comparisons in updatable result
+ sets.
+ </para>
+ </listitem>
- - Use DatabaseMetaData.getIdentifierQuoteString() when building DBMD
- queries.
+ <listitem>
+ <para>
+ Fixed BUG#6537, SUM() on Decimal with server-side prepared
+ statement ignores scale if zero-padding is needed (this ends
+ up being due to conversion to DOUBLE by server, which when
+ converted to a string to parse into BigDecimal, loses all
+ 'padding' zeros).
+ </para>
+ </listitem>
- - Use 1MB packet for sending file for LOAD DATA LOCAL INFILE if that
- is < 'max_allowed_packet' on server.
+ <listitem>
+ <para>
+ Use DatabaseMetaData.getIdentifierQuoteString() when building
+ DBMD queries.
+ </para>
+ </listitem>
- - Fixed BUG#6399, ResultSetMetaData.getColumnDisplaySize() returns incorrect
- values for multi-byte charsets.
+ <listitem>
+ <para>
+ Use 1MB packet for sending file for LOAD DATA LOCAL INFILE if
+ that is < 'max_allowed_packet' on server.
+ </para>
+ </listitem>
- - Make auto-deserialization of java.lang.Objects stored in BLOBs
- configurable via 'autoDeserialize' property (defaults to 'false').
+ <listitem>
+ <para>
+ Fixed BUG#6399, ResultSetMetaData.getColumnDisplaySize()
+ returns incorrect values for multi-byte charsets.
+ </para>
+ </listitem>
- - Re-work Field.isOpaqueBinary() to detect 'CHAR(n) CHARACTER SET BINARY'
- to support fixed-length binary fields for ResultSet.getObject().
+ <listitem>
+ <para>
+ Make auto-deserialization of java.lang.Objects stored in BLOBs
+ configurable via 'autoDeserialize' property (defaults to
+ 'false').
+ </para>
+ </listitem>
- - Use our own implementation of buffered input streams to get around
- blocking behavior of java.io.BufferedInputStream. Disable this with
- 'useReadAheadInput=false'.
+ <listitem>
+ <para>
+ Re-work Field.isOpaqueBinary() to detect 'CHAR(n) CHARACTER
+ SET BINARY' to support fixed-length binary fields for
+ ResultSet.getObject().
+ </para>
+ </listitem>
- - Fixed BUG#6348, failing to connect to the server when one of the
- addresses for the given host name is IPV6 (which the server does
- not yet bind on). The driver now loops through _all_ IP addresses
- for a given host, and stops on the first one that accepts() a
- socket.connect().
-</programlisting>
+ <listitem>
+ <para>
+ Use our own implementation of buffered input streams to get
+ around blocking behavior of java.io.BufferedInputStream.
+ Disable this with 'useReadAheadInput=false'.
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ Fixed BUG#6348, failing to connect to the server when one of
+ the addresses for the given host name is IPV6 (which the
+ server does not yet bind on). The driver now loops through
+ _all_ IP addresses for a given host, and stops on the first
+ one that accepts() a socket.connect().
+ </para>
+ </listitem>
+
+ </itemizedlist>
+
</section>
<section id="cj-news-3-1-4">
<title>&title-cj-news-3-1-4;</title>
-<programlisting>
- - Fixed BUG#4510 - connector/j 3.1.3 beta does not handle integers
- correctly (caused by changes to support unsigned reads in
- Buffer.readInt() -> Buffer.readShort()).
+ <itemizedlist>
- - Added support in DatabaseMetaData.getTables() and getTableTypes()
- for VIEWs which are now available in MySQL server version 5.0.x.
+ <listitem>
+ <para>
+ Fixed BUG#4510 - connector/j 3.1.3 beta does not handle
+ integers correctly (caused by changes to support unsigned
+ reads in Buffer.readInt() -> Buffer.readShort()).
+ </para>
+ </listitem>
- - Fixed BUG#4642 -- ServerPreparedStatement.execute*() sometimes
- threw ArrayIndexOutOfBoundsException when unpacking field metadata.
+ <listitem>
+ <para>
+ Added support in DatabaseMetaData.getTables() and
+ getTableTypes() for VIEWs which are now available in MySQL
+ server version 5.0.x.
+ </para>
+ </listitem>
- - Optimized integer number parsing, enable 'old' slower integer parsing
- using JDK classes via 'useFastIntParsing=false' property.
+ <listitem>
+ <para>
+ Fixed BUG#4642 -- ServerPreparedStatement.execute*() sometimes
+ threw ArrayIndexOutOfBoundsException when unpacking field
+ metadata.
+ </para>
+ </listitem>
- - Added 'useOnlyServerErrorMessages' property, which causes message text
- in exceptions generated by the server to only contain the text sent by
- the server (as opposed to the SQLState's 'standard' description, followed
- by the server's error message). This property is set to 'true' by default.
+ <listitem>
+ <para>
+ Optimized integer number parsing, enable 'old' slower integer
+ parsing using JDK classes via 'useFastIntParsing=false'
+ property.
+ </para>
+ </listitem>
- - Fixed BUG#4689 - ResultSet.wasNull() does not work for primatives if a
- previous null was returned.
+ <listitem>
+ <para>
+ Added 'useOnlyServerErrorMessages' property, which causes
+ message text in exceptions generated by the server to only
+ contain the text sent by the server (as opposed to the
+ SQLState's 'standard' description, followed by the server's
+ error message). This property is set to 'true' by default.
+ </para>
+ </listitem>
- - Track packet sequence numbers if enablePacketDebug=true, and throw an
- exception if packets received out-of-order.
+ <listitem>
+ <para>
+ Fixed BUG#4689 - ResultSet.wasNull() does not work for
+ primatives if a previous null was returned.
+ </para>
+ </listitem>
- - Fixed BUG#4482, ResultSet.getObject() returns wrong type for strings
- when using prepared statements.
+ <listitem>
+ <para>
+ Track packet sequence numbers if enablePacketDebug=true, and
+ throw an exception if packets received out-of-order.
+ </para>
+ </listitem>
- - Calling MysqlPooledConnection.close() twice (even though an application
- error), caused NPE. Fixed.
+ <listitem>
+ <para>
+ Fixed BUG#4482, ResultSet.getObject() returns wrong type for
+ strings when using prepared statements.
+ </para>
+ </listitem>
- - Fixed BUG#5012 -- ServerPreparedStatements dealing with return of
- DECIMAL type don't work.
+ <listitem>
+ <para>
+ Calling MysqlPooledConnection.close() twice (even though an
+ application error), caused NPE. Fixed.
+ </para>
+ </listitem>
- - Fixed BUG#5032 -- ResultSet.getObject() doesn't return
- type Boolean for pseudo-bit types from prepared statements on 4.1.x
- (shortcut for avoiding extra type conversion when using binary-encoded
- result sets obscurred test in getObject() for 'pseudo' bit type)
+ <listitem>
+ <para>
+ Fixed BUG#5012 -- ServerPreparedStatements dealing with return
+ of DECIMAL type don't work.
+ </para>
+ </listitem>
- - You can now use URLs in 'LOAD DATA LOCAL INFILE' statements, and the
- driver will use Java's built-in handlers for retreiving the data and
- sending it to the server. This feature is not enabled by default,
- you must set the 'allowUrlInLocalInfile' connection property to 'true'.
+ <listitem>
+ <para>
+ Fixed BUG#5032 -- ResultSet.getObject() doesn't return type
+ Boolean for pseudo-bit types from prepared statements on 4.1.x
+ (shortcut for avoiding extra type conversion when using
+ binary-encoded result sets obscurred test in getObject() for
+ 'pseudo' bit type)
+ </para>
+ </listitem>
- - The driver is more strict about truncation of numerics on
- ResultSet.get*(), and will throw an SQLException when truncation is
- detected. You can disable this by setting 'jdbcCompliantTruncation' to
- false (it is enabled by default, as this functionality is required
- for JDBC compliance).
+ <listitem>
+ <para>
+ You can now use URLs in 'LOAD DATA LOCAL INFILE' statements,
+ and the driver will use Java's built-in handlers for
+ retreiving the data and sending it to the server. This feature
+ is not enabled by default, you must set the
+ 'allowUrlInLocalInfile' connection property to 'true'.
+ </para>
+ </listitem>
- - Added three ways to deal with all-zero datetimes when reading them from
- a ResultSet, 'exception' (the default), which throws an SQLException
- with an SQLState of 'S1009', 'convertToNull', which returns NULL instead of
- the date, and 'round', which rounds the date to the nearest closest value
- which is '0001-01-01'.
+ <listitem>
+ <para>
+ The driver is more strict about truncation of numerics on
+ ResultSet.get*(), and will throw an SQLException when
+ truncation is detected. You can disable this by setting
+ 'jdbcCompliantTruncation' to false (it is enabled by default,
+ as this functionality is required for JDBC compliance).
+ </para>
+ </listitem>
- - Fixed ServerPreparedStatement to read prepared statement metadata off
- the wire, even though it's currently a placeholder instead of using
- MysqlIO.clearInputStream() which didn't work at various times because
- data wasn't available to read from the server yet. This fixes sporadic
- errors users were having with ServerPreparedStatements throwing
- ArrayIndexOutOfBoundExceptions.
+ <listitem>
+ <para>
+ Added three ways to deal with all-zero datetimes when reading
+ them from a ResultSet, 'exception' (the default), which throws
+ an SQLException with an SQLState of 'S1009', 'convertToNull',
+ which returns NULL instead of the date, and 'round', which
+ rounds the date to the nearest closest value which is
+ '0001-01-01'.
+ </para>
+ </listitem>
- - Use com.mysql.jdbc.Message's classloader when loading resource bundle,
- should fix sporadic issues when the caller's classloader can't locate
- the resource bundle.
-</programlisting>
+ <listitem>
+ <para>
+ Fixed ServerPreparedStatement to read prepared statement
+ metadata off the wire, even though it's currently a
+ placeholder instead of using MysqlIO.clearInputStream() which
+ didn't work at various times because data wasn't available to
+ read from the server yet. This fixes sporadic errors users
+ were having with ServerPreparedStatements throwing
+ ArrayIndexOutOfBoundExceptions.
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ Use com.mysql.jdbc.Message's classloader when loading resource
+ bundle, should fix sporadic issues when the caller's
+ classloader can't locate the resource bundle.
+ </para>
+ </listitem>
+
+ </itemizedlist>
+
</section>
<section id="cj-news-3-1-3">
<title>&title-cj-news-3-1-3;</title>
-<programlisting>
- - Mangle output parameter names for CallableStatements so they
- will not clash with user variable names.
+ <itemizedlist>
- - Added support for INOUT parameters in CallableStatements.
+ <listitem>
+ <para>
+ Mangle output parameter names for CallableStatements so they
+ will not clash with user variable names.
+ </para>
+ </listitem>
- - Fix for BUG#4119, null bitmask sent for server-side prepared
- statements was incorrect.
+ <listitem>
+ <para>
+ Added support for INOUT parameters in CallableStatements.
+ </para>
+ </listitem>
- - Use SQL Standard SQL states by default, unless 'useSqlStateCodes'
- property is set to 'false'.
+ <listitem>
+ <para>
+ Fix for BUG#4119, null bitmask sent for server-side prepared
+ statements was incorrect.
+ </para>
+ </listitem>
- - Added packet debuging code (see the 'enablePacketDebug' property
- documentation).
+ <listitem>
+ <para>
+ Use SQL Standard SQL states by default, unless
+ 'useSqlStateCodes' property is set to 'false'.
+ </para>
+ </listitem>
- - Added constants for MySQL error numbers (publicly-accessible,
- see com.mysql.jdbc.MysqlErrorNumbers), and the ability to
- generate the mappings of vendor error codes to SQLStates
- that the driver uses (for documentation purposes).
+ <listitem>
+ <para>
+ Added packet debuging code (see the 'enablePacketDebug'
+ property documentation).
+ </para>
+ </listitem>
- - Externalized more messages (on-going effort).
+ <listitem>
+ <para>
+ Added constants for MySQL error numbers (publicly-accessible,
+ see com.mysql.jdbc.MysqlErrorNumbers), and the ability to
+ generate the mappings of vendor error codes to SQLStates that
+ the driver uses (for documentation purposes).
+ </para>
+ </listitem>
- - Fix for BUG#4311 - Error in retrieval of mediumint column with
- prepared statements and binary protocol.
+ <listitem>
+ <para>
+ Externalized more messages (on-going effort).
+ </para>
+ </listitem>
- - Support new timezone variables in MySQL-4.1.3 when
- 'useTimezone=true'
+ <listitem>
+ <para>
+ Fix for BUG#4311 - Error in retrieval of mediumint column with
+ prepared statements and binary protocol.
+ </para>
+ </listitem>
- - Support for unsigned numerics as return types from prepared statements.
- This also causes a change in ResultSet.getObject() for the 'bigint unsigned'
- type, which used to return BigDecimal instances, it now returns instances
- of java.lang.BigInteger.
-</programlisting>
+ <listitem>
+ <para>
+ Support new time zone variables in MySQL-4.1.3 when
+ 'useTimezone=true'
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ Support for unsigned numerics as return types from prepared
+ statements. This also causes a change in ResultSet.getObject()
+ for the 'bigint unsigned' type, which used to return
+ BigDecimal instances, it now returns instances of
+ java.lang.BigInteger.
+ </para>
+ </listitem>
+
+ </itemizedlist>
+
</section>
<section id="cj-news-3-1-2">
<title>&title-cj-news-3-1-2;</title>
-<programlisting>
- - Fixed stored procedure parameter parsing info when size was
- specified for a parameter (i.e. char(), varchar()).
+ <itemizedlist>
- - Enabled callable statement caching via 'cacheCallableStmts'
- property.
+ <listitem>
+ <para>
+ Fixed stored procedure parameter parsing info when size was
+ specified for a parameter (i.e. char(), varchar()).
+ </para>
+ </listitem>
- - Fixed case when no output parameters specified for a
- stored procedure caused a bogus query to be issued
- to retrieve out parameters, leading to a syntax error
- from the server.
+ <listitem>
+ <para>
+ Enabled callable statement caching via 'cacheCallableStmts'
+ property.
+ </para>
+ </listitem>
- - Fixed case when no parameters could cause a NullPointerException
- in CallableStatement.setOutputParameters().
+ <listitem>
+ <para>
+ Fixed case when no output parameters specified for a stored
+ procedure caused a bogus query to be issued to retrieve out
+ parameters, leading to a syntax error from the server.
+ </para>
+ </listitem>
- - Removed wrapping of exceptions in MysqlIO.changeUser().
+ <listitem>
+ <para>
+ Fixed case when no parameters could cause a
+ NullPointerException in
+ CallableStatement.setOutputParameters().
+ </para>
+ </listitem>
- - Fixed sending of split packets for large queries, enabled nio
- ability to send large packets as well.
+ <listitem>
+ <para>
+ Removed wrapping of exceptions in MysqlIO.changeUser().
+ </para>
+ </listitem>
- - Added .toString() functionality to ServerPreparedStatement,
- which should help if you're trying to debug a query that is
- a prepared statement (it shows SQL as the server would process).
+ <listitem>
+ <para>
+ Fixed sending of split packets for large queries, enabled nio
+ ability to send large packets as well.
+ </para>
+ </listitem>
- - Added 'gatherPerformanceMetrics' property, along with properties
- to control when/where this info gets logged (see docs for more
- info).
+ <listitem>
+ <para>
+ Added .toString() functionality to ServerPreparedStatement,
+ which should help if you're trying to debug a query that is a
+ prepared statement (it shows SQL as the server would process).
+ </para>
+ </listitem>
- - ServerPreparedStatements weren't actually de-allocating
- server-side resources when .close() was called.
+ <listitem>
+ <para>
+ Added 'gatherPerformanceMetrics' property, along with
+ properties to control when/where this info gets logged (see
+ docs for more info).
+ </para>
+ </listitem>
- - Added 'logSlowQueries' property, along with property
- 'slowQueriesThresholdMillis' to control when a query should
- be considered 'slow'.
+ <listitem>
+ <para>
+ ServerPreparedStatements weren't actually de-allocating
+ server-side resources when .close() was called.
+ </para>
+ </listitem>
- - Correctly map output parameters to position given in
- prepareCall() vs. order implied during registerOutParameter() -
- fixes BUG#3146.
+ <listitem>
+ <para>
+ Added 'logSlowQueries' property, along with property
+ 'slowQueriesThresholdMillis' to control when a query should be
+ considered 'slow'.
+ </para>
+ </listitem>
- - Correctly detect initial character set for servers >= 4.1.0
+ <listitem>
+ <para>
+ Correctly map output parameters to position given in
+ prepareCall() vs. order implied during registerOutParameter()
+ - fixes BUG#3146.
+ </para>
+ </listitem>
- - Cleaned up detection of server properties.
+ <listitem>
+ <para>
+ Correctly detect initial character set for servers >= 4.1.0
+ </para>
+ </listitem>
- - Support placeholder for parameter metadata for server >= 4.1.2
+ <listitem>
+ <para>
+ Cleaned up detection of server properties.
+ </para>
+ </listitem>
- - Fix for BUG#3539 getProcedures() does not return any procedures in
- result set
+ <listitem>
+ <para>
+ Support placeholder for parameter metadata for server >=
+ 4.1.2
+ </para>
+ </listitem>
- - Fix for BUG#3540 getProcedureColumns() doesn't work with wildcards
- for procedure name
+ <listitem>
+ <para>
+ Fix for BUG#3539 getProcedures() does not return any
+ procedures in result set
+ </para>
+ </listitem>
- - Fixed BUG#3520 -- DBMD.getSQLStateType() returns incorrect value.
+ <listitem>
+ <para>
+ Fix for BUG#3540 getProcedureColumns() doesn't work with
+ wildcards for procedure name
+ </para>
+ </listitem>
- - Added 'connectionCollation' property to cause driver to issue
- 'set collation_connection=...' query on connection init if default
- collation for given charset is not appropriate.
+ <listitem>
+ <para>
+ Fixed BUG#3520 -- DBMD.getSQLStateType() returns incorrect
+ value.
+ </para>
+ </listitem>
- - Fixed DatabaseMetaData.getProcedures() when run on MySQL-5.0.0 (output of
- 'show procedure status' changed between 5.0.1 and 5.0.0.
+ <listitem>
+ <para>
+ Added 'connectionCollation' property to cause driver to issue
+ 'set collation_connection=...' query on connection init if
+ default collation for given charset is not appropriate.
+ </para>
+ </listitem>
- - Fixed BUG#3804 -- getWarnings() returns SQLWarning instead of DataTruncation
+ <listitem>
+ <para>
+ Fixed DatabaseMetaData.getProcedures() when run on MySQL-5.0.0
+ (output of 'show procedure status' changed between 5.0.1 and
+ 5.0.0.
+ </para>
+ </listitem>
- - Don't enable server-side prepared statements for server version 5.0.0 or 5.0.1,
- as they aren't compatible with the '4.1.2+' style that the driver uses (the driver
- expects information to come back that isn't there, so it hangs).
-</programlisting>
+ <listitem>
+ <para>
+ Fixed BUG#3804 -- getWarnings() returns SQLWarning instead of
+ DataTruncation
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ Don't enable server-side prepared statements for server
+ version 5.0.0 or 5.0.1, as they aren't compatible with the
+ '4.1.2+' style that the driver uses (the driver expects
+ information to come back that isn't there, so it hangs).
+ </para>
+ </listitem>
+
+ </itemizedlist>
+
</section>
<section id="cj-news-3-1-1">
<title>&title-cj-news-3-1-1;</title>
-<programlisting>
- - Fixed bug with UpdatableResultSets not using client-side
- prepared statements.
+ <itemizedlist>
- - Fixed character encoding issues when converting bytes to
- ASCII when MySQL doesn't provide the character set, and
- the JVM is set to a multi-byte encoding (usually affecting
- retrieval of numeric values).
+ <listitem>
+ <para>
+ Fixed bug with UpdatableResultSets not using client-side
+ prepared statements.
+ </para>
+ </listitem>
- - Unpack 'unknown' data types from server prepared statements
- as Strings.
+ <listitem>
+ <para>
+ Fixed character encoding issues when converting bytes to ASCII
+ when MySQL doesn't provide the character set, and the JVM is
+ set to a multi-byte encoding (usually affecting retrieval of
+ numeric values).
+ </para>
+ </listitem>
- - Implemented long data (Blobs, Clobs, InputStreams, Readers)
- for server prepared statements.
+ <listitem>
+ <para>
+ Unpack 'unknown' data types from server prepared statements as
+ Strings.
+ </para>
+ </listitem>
- - Implemented Statement.getWarnings() for MySQL-4.1 and newer
- (using 'SHOW WARNINGS').
+ <listitem>
+ <para>
+ Implemented long data (Blobs, Clobs, InputStreams, Readers)
+ for server prepared statements.
+ </para>
+ </listitem>
- - Default result set type changed to TYPE_FORWARD_ONLY
- (JDBC compliance).
+ <listitem>
+ <para>
+ Implemented Statement.getWarnings() for MySQL-4.1 and newer
+ (using 'SHOW WARNINGS').
+ </para>
+ </listitem>
- - Centralized setting of result set type and concurrency.
+ <listitem>
+ <para>
+ Default result set type changed to TYPE_FORWARD_ONLY (JDBC
+ compliance).
+ </para>
+ </listitem>
- - Re-factored how connection properties are set and exposed
- as DriverPropertyInfo as well as Connection and DataSource
- properties.
+ <listitem>
+ <para>
+ Centralized setting of result set type and concurrency.
+ </para>
+ </listitem>
- - Support for NIO. Use 'useNIO=true' on platforms that support
- NIO.
+ <listitem>
+ <para>
+ Re-factored how connection properties are set and exposed as
+ DriverPropertyInfo as well as Connection and DataSource
+ properties.
+ </para>
+ </listitem>
- - Support for SAVEPOINTs (MySQL >= 4.0.14 or 4.1.1).
+ <listitem>
+ <para>
+ Support for NIO. Use 'useNIO=true' on platforms that support
+ NIO.
+ </para>
+ </listitem>
- - Support for mysql_change_user()...See the changeUser() method
- in com.mysql.jdbc.Connection.
+ <listitem>
+ <para>
+ Support for SAVEPOINTs (MySQL >= 4.0.14 or 4.1.1).
+ </para>
+ </listitem>
- - Reduced number of methods called in average query to be more
- efficient.
+ <listitem>
+ <para>
+ Support for mysql_change_user()...See the changeUser() method
+ in com.mysql.jdbc.Connection.
+ </para>
+ </listitem>
- - Prepared Statements will be re-prepared on auto-reconnect. Any errors
- encountered are postponed until first attempt to re-execute the
- re-prepared statement.
+ <listitem>
+ <para>
+ Reduced number of methods called in average query to be more
+ efficient.
+ </para>
+ </listitem>
- - Ensure that warnings are cleared before executing queries
- on prepared statements, as-per JDBC spec (now that we support
- warnings).
+ <listitem>
+ <para>
+ Prepared Statements will be re-prepared on auto-reconnect. Any
+ errors encountered are postponed until first attempt to
+ re-execute the re-prepared statement.
+ </para>
+ </listitem>
- - Support 'old' profileSql capitalization in ConnectionProperties.
- This property is deprecated, you should use 'profileSQL' if possible.
+ <listitem>
+ <para>
+ Ensure that warnings are cleared before executing queries on
+ prepared statements, as-per JDBC spec (now that we support
+ warnings).
+ </para>
+ </listitem>
- - Optimized Buffer.readLenByteArray() to return shared empty byte array
- when length is 0.
+ <listitem>
+ <para>
+ Support 'old' profileSql capitalization in
+ ConnectionProperties. This property is deprecated, you should
+ use 'profileSQL' if possible.
+ </para>
+ </listitem>
- - Allow contents of PreparedStatement.setBlob() to be retained
- between calls to .execute*().
+ <listitem>
+ <para>
+ Optimized Buffer.readLenByteArray() to return shared empty
+ byte array when length is 0.
+ </para>
+ </listitem>
- - Deal with 0-length tokens in EscapeProcessor (caused by callable
- statement escape syntax).
+ <listitem>
+ <para>
+ Allow contents of PreparedStatement.setBlob() to be retained
+ between calls to .execute*().
+ </para>
+ </listitem>
- - Check for closed connection on delete/update/insert row operations in
- UpdatableResultSet.
+ <listitem>
+ <para>
+ Deal with 0-length tokens in EscapeProcessor (caused by
+ callable statement escape syntax).
+ </para>
+ </listitem>
- - Fix support for table aliases when checking for all primary keys in
- UpdatableResultSet.
+ <listitem>
+ <para>
+ Check for closed connection on delete/update/insert row
+ operations in UpdatableResultSet.
+ </para>
+ </listitem>
- - Removed useFastDates connection property.
+ <listitem>
+ <para>
+ Fix support for table aliases when checking for all primary
+ keys in UpdatableResultSet.
+ </para>
+ </listitem>
- - Correctly initialize datasource properties from JNDI Refs, including
- explicitly specified URLs.
+ <listitem>
+ <para>
+ Removed useFastDates connection property.
+ </para>
+ </listitem>
- - DatabaseMetaData now reports supportsStoredProcedures() for
- MySQL versions >= 5.0.0
+ <listitem>
+ <para>
+ Correctly initialize datasource properties from JNDI Refs,
+ including explicitly specified URLs.
+ </para>
+ </listitem>
- - Fixed stack overflow in Connection.prepareCall() (bad merge).
+ <listitem>
+ <para>
+ DatabaseMetaData now reports supportsStoredProcedures() for
+ MySQL versions >= 5.0.0
+ </para>
+ </listitem>
- - Fixed IllegalAccessError to Calendar.getTimeInMillis() in DateTimeValue
- (for JDK < 1.4).
+ <listitem>
+ <para>
+ Fixed stack overflow in Connection.prepareCall() (bad merge).
+ </para>
+ </listitem>
- - Fix for BUG#1673, where DatabaseMetaData.getColumns() is not
- returning correct column ordinal info for non '%' column name patterns.
+ <listitem>
+ <para>
+ Fixed IllegalAccessError to Calendar.getTimeInMillis() in
+ DateTimeValue (for JDK < 1.4).
+ </para>
+ </listitem>
- - Merged fix of datatype mapping from MySQL type 'FLOAT' to
- java.sql.Types.REAL from 3.0 branch.
+ <listitem>
+ <para>
+ Fix for BUG#1673, where DatabaseMetaData.getColumns() is not
+ returning correct column ordinal info for non '%' column name
+ patterns.
+ </para>
+ </listitem>
- - Detect collation of column for RSMD.isCaseSensitive().
+ <listitem>
+ <para>
+ Merged fix of datatype mapping from MySQL type 'FLOAT' to
+ java.sql.Types.REAL from 3.0 branch.
+ </para>
+ </listitem>
- - Fixed sending of queries > 16M.
+ <listitem>
+ <para>
+ Detect collation of column for RSMD.isCaseSensitive().
+ </para>
+ </listitem>
- - Added named and indexed input/output parameter support to CallableStatement.
- MySQL-5.0.x or newer.
+ <listitem>
+ <para>
+ Fixed sending of queries > 16M.
+ </para>
+ </listitem>
- - Fixed NullPointerException in ServerPreparedStatement.setTimestamp(),
- as well as year and month descrepencies in
- ServerPreparedStatement.setTimestamp(), setDate().
+ <listitem>
+ <para>
+ Added named and indexed input/output parameter support to
+ CallableStatement. MySQL-5.0.x or newer.
+ </para>
+ </listitem>
- - Added ability to have multiple database/JVM targets for compliance
- and regression/unit tests in build.xml.
+ <listitem>
+ <para>
+ Fixed NullPointerException in
+ ServerPreparedStatement.setTimestamp(), as well as year and
+ month descrepencies in ServerPreparedStatement.setTimestamp(),
+ setDate().
+ </para>
+ </listitem>
- - Fixed NPE and year/month bad conversions when accessing some
- datetime functionality in ServerPreparedStatements and their
- resultant result sets.
+ <listitem>
+ <para>
+ Added ability to have multiple database/JVM targets for
+ compliance and regression/unit tests in build.xml.
+ </para>
+ </listitem>
- - Display where/why a connection was implicitly closed (to
- aid debugging).
+ <listitem>
+ <para>
+ Fixed NPE and year/month bad conversions when accessing some
+ datetime functionality in ServerPreparedStatements and their
+ resultant result sets.
+ </para>
+ </listitem>
- - CommunicationsException implemented, that tries to determine
- why communications was lost with a server, and displays
- possible reasons when .getMessage() is called.
+ <listitem>
+ <para>
+ Display where/why a connection was implicitly closed (to aid
+ debugging).
+ </para>
+ </listitem>
- - Fixed BUG#2359, NULL values for numeric types in binary
- encoded result sets causing NullPointerExceptions.
+ <listitem>
+ <para>
+ CommunicationsException implemented, that tries to determine
+ why communications was lost with a server, and displays
+ possible reasons when .getMessage() is called.
+ </para>
+ </listitem>
- - Implemented Connection.prepareCall(), and DatabaseMetaData.
- getProcedures() and getProcedureColumns().
+ <listitem>
+ <para>
+ Fixed BUG#2359, NULL values for numeric types in binary
+ encoded result sets causing NullPointerExceptions.
+ </para>
+ </listitem>
- - Reset 'long binary' parameters in ServerPreparedStatement when
- clearParameters() is called, by sending COM_RESET_STMT to the
- server.
+ <listitem>
+ <para>
+ Implemented Connection.prepareCall(), and DatabaseMetaData.
+ getProcedures() and getProcedureColumns().
+ </para>
+ </listitem>
- - Merged prepared statement caching, and .getMetaData() support
- from 3.0 branch.
+ <listitem>
+ <para>
+ Reset 'long binary' parameters in ServerPreparedStatement when
+ clearParameters() is called, by sending COM_RESET_STMT to the
+ server.
+ </para>
+ </listitem>
- - Fixed off-by-1900 error in some cases for
- years in TimeUtil.fastDate/TimeCreate() when unpacking results
- from server-side prepared statements.
+ <listitem>
+ <para>
+ Merged prepared statement caching, and .getMetaData() support
+ from 3.0 branch.
+ </para>
+ </listitem>
- - Fixed BUG#2502 -- charset conversion issue in getTables().
+ <listitem>
+ <para>
+ Fixed off-by-1900 error in some cases for years in
+ TimeUtil.fastDate/TimeCreate() when unpacking results from
+ server-side prepared statements.
+ </para>
+ </listitem>
- - Implemented multiple result sets returned from a statement
- or stored procedure.
+ <listitem>
+ <para>
+ Fixed BUG#2502 -- charset conversion issue in getTables().
+ </para>
+ </listitem>
- - Fixed BUG#2606 -- Server side prepared statements not returning
- datatype 'YEAR' correctly.
+ <listitem>
+ <para>
+ Implemented multiple result sets returned from a statement or
+ stored procedure.
+ </para>
+ </listitem>
- - Enabled streaming of result sets from server-side prepared
- statements.
+ <listitem>
+ <para>
+ Fixed BUG#2606 -- Server side prepared statements not
+ returning datatype 'YEAR' correctly.
+ </para>
+ </listitem>
- - Fixed BUG#2623 -- Class-cast exception when using
- scrolling result sets and server-side prepared statements.
+ <listitem>
+ <para>
+ Enabled streaming of result sets from server-side prepared
+ statements.
+ </para>
+ </listitem>
- - Merged unbuffered input code from 3.0.
+ <listitem>
+ <para>
+ Fixed BUG#2623 -- Class-cast exception when using scrolling
+ result sets and server-side prepared statements.
+ </para>
+ </listitem>
- - Fixed ConnectionProperties that weren't properly exposed
- via accessors, cleaned up ConnectionProperties code.
+ <listitem>
+ <para>
+ Merged unbuffered input code from 3.0.
+ </para>
+ </listitem>
- - Fixed BUG#2671, NULL fields not being encoded correctly in
- all cases in server side prepared statements.
+ <listitem>
+ <para>
+ Fixed ConnectionProperties that weren't properly exposed via
+ accessors, cleaned up ConnectionProperties code.
+ </para>
+ </listitem>
- - Fixed rare buffer underflow when writing numbers into buffers
- for sending prepared statement execution requests.
+ <listitem>
+ <para>
+ Fixed BUG#2671, NULL fields not being encoded correctly in all
+ cases in server side prepared statements.
+ </para>
+ </listitem>
- - Use DocBook version of docs for shipped versions of drivers.
-</programlisting>
+ <listitem>
+ <para>
+ Fixed rare buffer underflow when writing numbers into buffers
+ for sending prepared statement execution requests.
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ Use DocBook version of docs for shipped versions of drivers.
+ </para>
+ </listitem>
+
+ </itemizedlist>
+
</section>
<section id="cj-news-3-1-0">
<title>&title-cj-news-3-1-0;</title>
-<programlisting>
- - Added 'requireSSL' property.
+ <itemizedlist>
- - Added 'useServerPrepStmts' property (default 'false'). The
- driver will use server-side prepared statements when the
- server version supports them (4.1 and newer) when this
- property is set to 'true'. It is currently set to 'false'
- by default until all bind/fetch functionality has been
- implemented. Currently only DML prepared statements are
- implemented for 4.1 server-side prepared statements.
+ <listitem>
+ <para>
+ Added 'requireSSL' property.
+ </para>
+ </listitem>
- - Track open Statements, close all when Connection.close()
- is called (JDBC compliance).
-</programlisting>
+ <listitem>
+ <para>
+ Added 'useServerPrepStmts' property (default 'false'). The
+ driver will use server-side prepared statements when the
+ server version supports them (4.1 and newer) when this
+ property is set to 'true'. It is currently set to 'false' by
+ default until all bind/fetch functionality has been
+ implemented. Currently only DML prepared statements are
+ implemented for 4.1 server-side prepared statements.
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ Track open Statements, close all when Connection.close() is
+ called (JDBC compliance).
+ </para>
+ </listitem>
+
+ </itemizedlist>
+
</section>
<section id="cj-news-3-0-17">
<title>&title-cj-news-3-0-17;</title>
-<programlisting>
- - Fixed BUG#5874, Timestamp/Time conversion goes in the wrong 'direction'
- when useTimeZone='true' and server timezone differs from client timezone.
+ <itemizedlist>
- - Fixed BUG#7081, DatabaseMetaData.getIndexInfo() ignoring 'unique'
- parameter.
+ <listitem>
+ <para>
+ Fixed BUG#5874, Timestamp/Time conversion goes in the wrong
+ 'direction' when useTimeZone='true' and server time zone
+ differs from client time zone.
+ </para>
+ </listitem>
- - Support new protocol type 'MYSQL_TYPE_VARCHAR'.
+ <listitem>
+ <para>
+ Fixed BUG#7081, DatabaseMetaData.getIndexInfo() ignoring
+ 'unique' parameter.
+ </para>
+ </listitem>
- - Added 'useOldUTF8Behavoior' configuration property, which causes
- JDBC driver to act like it did with MySQL-4.0.x and earlier when
- the character encoding is 'utf-8' when connected to MySQL-4.1 or
- newer.
+ <listitem>
+ <para>
+ Support new protocol type 'MYSQL_TYPE_VARCHAR'.
+ </para>
+ </listitem>
- - Fixed BUG#7316 - Statements created from a pooled connection were
- returning physical connection instead of logical connection when
- getConnection() was called.
+ <listitem>
+ <para>
+ Added 'useOldUTF8Behavoior' configuration property, which
+ causes JDBC driver to act like it did with MySQL-4.0.x and
+ earlier when the character encoding is 'utf-8' when connected
+ to MySQL-4.1 or newer.
+ </para>
+ </listitem>
- - Fixed BUG#7033 - PreparedStatements don't encode Big5 (and other
- multi-byte) character sets correctly in static SQL strings.
+ <listitem>
+ <para>
+ Fixed BUG#7316 - Statements created from a pooled connection
+ were returning physical connection instead of logical
+ connection when getConnection() was called.
+ </para>
+ </listitem>
- - Fixed BUG#6966, connections starting up failed-over (due to down master)
- never retry master.
+ <listitem>
+ <para>
+ Fixed BUG#7033 - PreparedStatements don't encode Big5 (and
+ other multi-byte) character sets correctly in static SQL
+ strings.
+ </para>
+ </listitem>
- - Fixed BUG#7061, PreparedStatement.fixDecimalExponent() adding extra
- '+', making number unparseable by MySQL server.
+ <listitem>
+ <para>
+ Fixed BUG#6966, connections starting up failed-over (due to
+ down master) never retry master.
+ </para>
+ </listitem>
- - Fixed BUG#7686, Timestamp key column data needed "_binary'" stripped for
- UpdatableResultSet.refreshRow().
+ <listitem>
+ <para>
+ Fixed BUG#7061, PreparedStatement.fixDecimalExponent() adding
+ extra '+', making number unparseable by MySQL server.
+ </para>
+ </listitem>
- - Backported SQLState codes mapping from Connector/J 3.1, enable with
- 'useSqlStateCodes=true' as a connection property, it defaults to
- 'false' in this release, so that we don't break legacy applications (it
- defaults to 'true' starting with Connector/J 3.1).
+ <listitem>
+ <para>
+ Fixed BUG#7686, Timestamp key column data needed "_binary'"
+ stripped for UpdatableResultSet.refreshRow().
+ </para>
+ </listitem>
- - Fixed BUG#7601, PreparedStatement.fixDecimalExponent() adding extra
- '+', making number unparseable by MySQL server.
+ <listitem>
+ <para>
+ Backported SQLState codes mapping from Connector/J 3.1, enable
+ with 'useSqlStateCodes=true' as a connection property, it
+ defaults to 'false' in this release, so that we don't break
+ legacy applications (it defaults to 'true' starting with
+ Connector/J 3.1).
+ </para>
+ </listitem>
- - Escape sequence {fn convert(..., type)} now supports ODBC-style types
- that are prepended by 'SQL_'.
+ <listitem>
+ <para>
+ Fixed BUG#7601, PreparedStatement.fixDecimalExponent() adding
+ extra '+', making number unparseable by MySQL server.
+ </para>
+ </listitem>
- - Fixed duplicated code in configureClientCharset() that prevented
- useOldUTF8Behavior=true from working properly.
+ <listitem>
+ <para>
+ Escape sequence {fn convert(..., type)} now supports
+ ODBC-style types that are prepended by 'SQL_'.
+ </para>
+ </listitem>
- - Handle streaming result sets with > 2 billion rows properly by fixing
- wraparound of row number counter.
+ <listitem>
+ <para>
+ Fixed duplicated code in configureClientCharset() that
+ prevented useOldUTF8Behavior=true from working properly.
+ </para>
+ </listitem>
- - Fixed BUG#7607 - MS932, SHIFT_JIS and Windows_31J not recog. as
- aliases for sjis.
+ <listitem>
+ <para>
+ Handle streaming result sets with > 2 billion rows properly
+ by fixing wraparound of row number counter.
+ </para>
+ </listitem>
- - Fixed BUG#6549 (while fixing #7607), adding 'CP943' to aliases for
- sjis.
+ <listitem>
+ <para>
+ Fixed BUG#7607 - MS932, SHIFT_JIS and Windows_31J not recog.
+ as aliases for sjis.
+ </para>
+ </listitem>
- - Fixed BUG#8064, which requires hex escaping of binary data when using
- multi-byte charsets with prepared statements.
+ <listitem>
+ <para>
+ Fixed BUG#6549 (while fixing #7607), adding 'CP943' to aliases
+ for sjis.
+ </para>
+ </listitem>
- - Fixed BUG#8812, NON_UNIQUE column from DBMD.getIndexInfo() returned
- inverted value.
+ <listitem>
+ <para>
+ Fixed BUG#8064, which requires hex escaping of binary data
+ when using multi-byte charsets with prepared statements.
+ </para>
+ </listitem>
- - Workaround for server BUG#9098 - default values of CURRENT_* for
- DATE/TIME/TIMESTAMP/TIMESTAMP columns can't be distinguished from
- 'string' values, so UpdatableResultSet.moveToInsertRow() generates
- bad SQL for inserting default values.
+ <listitem>
+ <para>
+ Fixed BUG#8812, NON_UNIQUE column from DBMD.getIndexInfo()
+ returned inverted value.
+ </para>
+ </listitem>
- - Fixed BUG#8629 - 'EUCKR' charset is sent as 'SET NAMES euc_kr' which
- MySQL-4.1 and newer doesn't understand.
+ <listitem>
+ <para>
+ Workaround for server BUG#9098 - default values of CURRENT_*
+ for DATE/TIME/TIMESTAMP/TIMESTAMP columns can't be
+ distinguished from 'string' values, so
+ UpdatableResultSet.moveToInsertRow() generates bad SQL for
+ inserting default values.
+ </para>
+ </listitem>
- - DatabaseMetaData.supportsSelectForUpdate() returns correct value based
- on server version.
+ <listitem>
+ <para>
+ Fixed BUG#8629 - 'EUCKR' charset is sent as 'SET NAMES euc_kr'
+ which MySQL-4.1 and newer doesn't understand.
+ </para>
+ </listitem>
- - Use hex escapes for PreparedStatement.setBytes() for double-byte charsets
- including 'aliases' Windows-31J, CP934, MS932.
+ <listitem>
+ <para>
+ DatabaseMetaData.supportsSelectForUpdate() returns correct
+ value based on server version.
+ </para>
+ </listitem>
- - Added support for the "EUC_JP_Solaris" character encoding, which maps
- to a MySQL encoding of "eucjpms" (backported from 3.1 branch). This only
- works on servers that support eucjpms, namely 5.0.3 or later.
-</programlisting>
+ <listitem>
+ <para>
+ Use hex escapes for PreparedStatement.setBytes() for
+ double-byte charsets including 'aliases' Windows-31J, CP934,
+ MS932.
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ Added support for the "EUC_JP_Solaris" character encoding,
+ which maps to a MySQL encoding of "eucjpms" (backported from
+ 3.1 branch). This only works on servers that support eucjpms,
+ namely 5.0.3 or later.
+ </para>
+ </listitem>
+
+ </itemizedlist>
+
</section>
<section id="cj-news-3-0-16">
<title>&title-cj-news-3-0-16;</title>
-<programlisting>
- - Re-issue character set configuration commands when re-using pooled
- connections and/or Connection.changeUser() when connected to MySQL-4.1
- or newer.
+ <itemizedlist>
- - Fixed ResultSetMetaData.isReadOnly() to detect non-writable columns
- when connected to MySQL-4.1 or newer, based on existence of 'original'
- table and column names.
+ <listitem>
+ <para>
+ Re-issue character set configuration commands when re-using
+ pooled connections and/or Connection.changeUser() when
+ connected to MySQL-4.1 or newer.
+ </para>
+ </listitem>
- - Fixed BUG#5664, ResultSet.updateByte() when on insert row
- throws ArrayOutOfBoundsException.
+ <listitem>
+ <para>
+ Fixed ResultSetMetaData.isReadOnly() to detect non-writable
+ columns when connected to MySQL-4.1 or newer, based on
+ existence of 'original' table and column names.
+ </para>
+ </listitem>
- - Fixed DatabaseMetaData.getTypes() returning incorrect (i.e. non-negative)
- scale for the 'NUMERIC' type.
+ <listitem>
+ <para>
+ Fixed BUG#5664, ResultSet.updateByte() when on insert row
+ throws ArrayOutOfBoundsException.
+ </para>
+ </listitem>
- - Fixed BUG#6198, off-by-one bug in Buffer.readString(string).
+ <listitem>
+ <para>
+ Fixed DatabaseMetaData.getTypes() returning incorrect (i.e.
+ non-negative) scale for the 'NUMERIC' type.
+ </para>
+ </listitem>
- - Made TINYINT(1) -> BIT/Boolean conversion configurable via 'tinyInt1isBit'
- property (default 'true' to be JDBC compliant out of the box).
+ <listitem>
+ <para>
+ Fixed BUG#6198, off-by-one bug in Buffer.readString(string).
+ </para>
+ </listitem>
- - Only set 'character_set_results' during connection establishment if
- server version >= 4.1.1.
+ <listitem>
+ <para>
+ Made TINYINT(1) -> BIT/Boolean conversion configurable via
+ 'tinyInt1isBit' property (default 'true' to be JDBC compliant
+ out of the box).
+ </para>
+ </listitem>
- - Fixed regression where useUnbufferedInput was defaulting to 'false'.
+ <listitem>
+ <para>
+ Only set 'character_set_results' during connection
+ establishment if server version >= 4.1.1.
+ </para>
+ </listitem>
- - Fixed BUG#6231, ResultSet.getTimestamp() on a column with TIME in it
- fails.
-</programlisting>
+ <listitem>
+ <para>
+ Fixed regression where useUnbufferedInput was defaulting to
+ 'false'.
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ Fixed BUG#6231, ResultSet.getTimestamp() on a column with TIME
+ in it fails.
+ </para>
+ </listitem>
+
+ </itemizedlist>
+
</section>
<section id="cj-news-3-0-15">
<title>&title-cj-news-3-0-15;</title>
-<programlisting>
- - Fixed BUG#4010 - StringUtils.escapeEasternUnicodeByteStream is still
- broken for GBK
+ <itemizedlist>
- - Fixed BUG#4334 - Failover for autoReconnect not using port #'s for any
- hosts, and not retrying all hosts. (WARN: This required a change to
- the SocketFactory connect() method signature, which is now
+ <listitem>
+ <para>
+ Fixed BUG#4010 - StringUtils.escapeEasternUnicodeByteStream is
+ still broken for GBK
+ </para>
+ </listitem>
- public Socket connect(String host, int portNumber, Properties props)
+ <listitem>
+ <para>
+ Fixed BUG#4334 - Failover for autoReconnect not using port #'s
+ for any hosts, and not retrying all hosts. (WARN: This
+ required a change to the SocketFactory connect() method
+ signature, which is now public Socket connect(String host, int
+ portNumber, Properties props) therefore any third-party socket
+ factories will have to be changed to support this signature.
+ </para>
+ </listitem>
- therefore any third-party socket factories will have to be changed
- to support this signature.
+ <listitem>
+ <para>
+ Logical connections created by MysqlConnectionPoolDataSource
+ will now issue a rollback() when they are closed and sent back
+ to the pool. If your application server/connection pool
+ already does this for you, you can set the
+ 'rollbackOnPooledClose' property to false to avoid the
+ overhead of an extra rollback().
+ </para>
+ </listitem>
- - Logical connections created by MysqlConnectionPoolDataSource will
- now issue a rollback() when they are closed and sent back to the pool.
- If your application server/connection pool already does this for you, you
- can set the 'rollbackOnPooledClose' property to false to avoid the
- overhead of an extra rollback().
+ <listitem>
+ <para>
+ Removed redundant calls to checkRowPos() in ResultSet.
+ </para>
+ </listitem>
- - Removed redundant calls to checkRowPos() in ResultSet.
+ <listitem>
+ <para>
+ Fixed BUG#4742, 'DOUBLE' mapped twice in DBMD.getTypeInfo().
+ </para>
+ </listitem>
- - Fixed BUG#4742, 'DOUBLE' mapped twice in DBMD.getTypeInfo().
+ <listitem>
+ <para>
+ Added FLOSS license exemption.
+ </para>
+ </listitem>
- - Added FLOSS license exemption.
+ <listitem>
+ <para>
+ Fixed BUG#4808, calling .close() twice on a PooledConnection
+ causes NPE.
+ </para>
+ </listitem>
- - Fixed BUG#4808, calling .close() twice on a PooledConnection causes NPE.
+ <listitem>
+ <para>
+ Fixed BUG#4138 and BUG#4860, DBMD.getColumns() returns
+ incorrect JDBC type for unsigned columns. This affects type
+ mappings for all numeric types in the RSMD.getColumnType() and
+ RSMD.getColumnTypeNames() methods as well, to ensure that
+ 'like' types from DBMD.getColumns() match up with what
+ RSMD.getColumnType() and getColumnTypeNames() return.
+ </para>
+ </listitem>
- - Fixed BUG#4138 and BUG#4860, DBMD.getColumns() returns incorrect JDBC
- type for unsigned columns. This affects type mappings for all numeric
- types in the RSMD.getColumnType() and RSMD.getColumnTypeNames() methods
- as well, to ensure that 'like' types from DBMD.getColumns() match up
- with what RSMD.getColumnType() and getColumnTypeNames() return.
+ <listitem>
+ <para>
+ 'Production' - 'GA' in naming scheme of distributions.
+ </para>
+ </listitem>
- - 'Production' - 'GA' in naming scheme of distributions.
+ <listitem>
+ <para>
+ Fix for BUG#4880, RSMD.getPrecision() returning 0 for
+ non-numeric types (should return max length in chars for
+ non-binary types, max length in bytes for binary types). This
+ fix also fixes mapping of RSMD.getColumnType() and
+ RSMD.getColumnTypeName() for the BLOB types based on the
+ length sent from the server (the server doesn't distinguish
+ between TINYBLOB, BLOB, MEDIUMBLOB or LONGBLOB at the network
+ protocol level).
+ </para>
+ </listitem>
- - Fix for BUG#4880, RSMD.getPrecision() returning 0 for non-numeric types
- (should return max length in chars for non-binary types, max length
- in bytes for binary types). This fix also fixes mapping of
- RSMD.getColumnType() and RSMD.getColumnTypeName() for the BLOB types based
- on the length sent from the server (the server doesn't distinguish between
- TINYBLOB, BLOB, MEDIUMBLOB or LONGBLOB at the network protocol level).
+ <listitem>
+ <para>
+ Fixed BUG#5022 - ResultSet should release Field[] instance in
+ .close().
+ </para>
+ </listitem>
- - Fixed BUG#5022 - ResultSet should release Field[] instance in .close().
+ <listitem>
+ <para>
+ Fixed BUG#5069 -- ResultSet.getMetaData() should not return
+ incorrectly-initialized metadata if the result set has been
+ closed, but should instead throw an SQLException. Also fixed
+ for getRow() and getWarnings() and traversal methods by
+ calling checkClosed() before operating on instance-level
+ fields that are nullified during .close().
+ </para>
+ </listitem>
- - Fixed BUG#5069 -- ResultSet.getMetaData() should not return
- incorrectly-initialized metadata if the result set has been closed, but
- should instead throw an SQLException. Also fixed for getRow() and
- getWarnings() and traversal methods by calling checkClosed() before
- operating on instance-level fields that are nullified during .close().
+ <listitem>
+ <para>
+ Parse new time zone variables from 4.1.x servers.
+ </para>
+ </listitem>
- - Parse new timezone variables from 4.1.x servers.
+ <listitem>
+ <para>
+ Use _binary introducer for PreparedStatement.setBytes() and
+ set*Stream() when connected to MySQL-4.1.x or newer to avoid
+ misinterpretation during character conversion.
+ </para>
+ </listitem>
- - Use _binary introducer for PreparedStatement.setBytes() and
- set*Stream() when connected to MySQL-4.1.x or newer to avoid
- misinterpretation during character conversion.
-</programlisting>
+ </itemizedlist>
</section>
@@ -1969,1635 +3167,3473 @@
<title>&title-cj-news-3-0-14;</title>
-<programlisting>
- - Fixed URL parsing error
-</programlisting>
+ <itemizedlist>
+ <listitem>
+ <para>
+ Fixed URL parsing error
+ </para>
+ </listitem>
+
+ </itemizedlist>
+
</section>
<section id="cj-news-3-0-13">
<title>&title-cj-news-3-0-13;</title>
-<programlisting>
- - Fixed BUG#3848 - Using a MySQLDatasource without server name fails
+ <itemizedlist>
- - Fixed BUG#3920 - "No Database Selected" when using
- MysqlConnectionPoolDataSource.
+ <listitem>
+ <para>
+ Fixed BUG#3848 - Using a MySQLDatasource without server name
+ fails
+ </para>
+ </listitem>
- - Fixed BUG#3873 - PreparedStatement.getGeneratedKeys() method returns only
- 1 result for batched insertions
-</programlisting>
+ <listitem>
+ <para>
+ Fixed BUG#3920 - "No Database Selected" when using
+ MysqlConnectionPoolDataSource.
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ Fixed BUG#3873 - PreparedStatement.getGeneratedKeys() method
+ returns only 1 result for batched insertions
+ </para>
+ </listitem>
+
+ </itemizedlist>
+
</section>
<section id="cj-news-3-0-12">
<title>&title-cj-news-3-0-12;</title>
-<programlisting>
- - Add unsigned attribute to DatabaseMetaData.getColumns() output
- in the TYPE_NAME column.
+ <itemizedlist>
- - Added 'failOverReadOnly' property, to allow end-user to configure
- state of connection (read-only/writable) when failed over.
+ <listitem>
+ <para>
+ Add unsigned attribute to DatabaseMetaData.getColumns() output
+ in the TYPE_NAME column.
+ </para>
+ </listitem>
- - Backported 'change user' and 'reset server state' functionality
- from 3.1 branch, to allow clients of MysqlConnectionPoolDataSource
- to reset server state on getConnection() on a pooled connection.
+ <listitem>
+ <para>
+ Added 'failOverReadOnly' property, to allow end-user to
+ configure state of connection (read-only/writable) when failed
+ over.
+ </para>
+ </listitem>
- - Don't escape SJIS/GBK/BIG5 when using MySQL-4.1 or newer.
+ <listitem>
+ <para>
+ Backported 'change user' and 'reset server state'
+ functionality from 3.1 branch, to allow clients of
+ MysqlConnectionPoolDataSource to reset server state on
+ getConnection() on a pooled connection.
+ </para>
+ </listitem>
- - Allow 'url' parameter for MysqlDataSource and MysqlConnectionPool
- DataSource so that passing of other properties is possible from
- inside appservers.
+ <listitem>
+ <para>
+ Don't escape SJIS/GBK/BIG5 when using MySQL-4.1 or newer.
+ </para>
+ </listitem>
- - Map duplicate key and foreign key errors to SQLState of
- '23000'.
+ <listitem>
+ <para>
+ Allow 'url' parameter for MysqlDataSource and
+ MysqlConnectionPool DataSource so that passing of other
+ properties is possible from inside appservers.
+ </para>
+ </listitem>
- - Backport documentation tooling from 3.1 branch.
+ <listitem>
+ <para>
+ Map duplicate key and foreign key errors to SQLState of
+ '23000'.
+ </para>
+ </listitem>
- - Return creating statement for ResultSets created by
- getGeneratedKeys() (BUG#2957)
+ <listitem>
+ <para>
+ Backport documentation tooling from 3.1 branch.
+ </para>
+ </listitem>
- - Allow java.util.Date to be sent in as parameter to
- PreparedStatement.setObject(), converting it to a Timestamp
- to maintain full precision (BUG#3103).
+ <listitem>
+ <para>
+ Return creating statement for ResultSets created by
+ getGeneratedKeys() (BUG#2957)
+ </para>
+ </listitem>
- - Don't truncate BLOBs/CLOBs when using setBytes() and/or
- setBinary/CharacterStream() (BUG#2670).
+ <listitem>
+ <para>
+ Allow java.util.Date to be sent in as parameter to
+ PreparedStatement.setObject(), converting it to a Timestamp to
+ maintain full precision (BUG#3103).
+ </para>
+ </listitem>
- - Dynamically configure character set mappings for field-level
- character sets on MySQL-4.1.0 and newer using 'SHOW COLLATION'
- when connecting.
+ <listitem>
+ <para>
+ Don't truncate BLOBs/CLOBs when using setBytes() and/or
+ setBinary/CharacterStream() (BUG#2670).
+ </para>
+ </listitem>
- - Map 'binary' character set to 'US-ASCII' to support DATETIME
- charset recognition for servers >= 4.1.2
+ <listitem>
+ <para>
+ Dynamically configure character set mappings for field-level
+ character sets on MySQL-4.1.0 and newer using 'SHOW COLLATION'
+ when connecting.
+ </para>
+ </listitem>
- - Use 'SET character_set_results" during initialization to allow any
- charset to be returned to the driver for result sets.
+ <listitem>
+ <para>
+ Map 'binary' character set to 'US-ASCII' to support DATETIME
+ charset recognition for servers >= 4.1.2
+ </para>
+ </listitem>
- - Use charsetnr returned during connect to encode queries before
- issuing 'SET NAMES' on MySQL >= 4.1.0.
+ <listitem>
+ <para>
+ Use 'SET character_set_results" during initialization to allow
+ any charset to be returned to the driver for result sets.
+ </para>
+ </listitem>
- - Add helper methods to ResultSetMetaData (getColumnCharacterEncoding()
- and getColumnCharacterSet()) to allow end-users to see what charset
- the driver thinks it should be using for the column.
+ <listitem>
+ <para>
+ Use charsetnr returned during connect to encode queries before
+ issuing 'SET NAMES' on MySQL >= 4.1.0.
+ </para>
+ </listitem>
- - Only set character_set_results for MySQL >= 4.1.0.
+ <listitem>
+ <para>
+ Add helper methods to ResultSetMetaData
+ (getColumnCharacterEncoding() and getColumnCharacterSet()) to
+ allow end-users to see what charset the driver thinks it
+ should be using for the column.
+ </para>
+ </listitem>
- - Fixed BUG#3511, StringUtils.escapeSJISByteStream() not covering all
- eastern double-byte charsets correctly.
+ <listitem>
+ <para>
+ Only set character_set_results for MySQL >= 4.1.0.
+ </para>
+ </listitem>
- - Renamed StringUtils.escapeSJISByteStream() to more appropriate
- escapeEasternUnicodeByteStream().
+ <listitem>
+ <para>
+ Fixed BUG#3511, StringUtils.escapeSJISByteStream() not
+ covering all eastern double-byte charsets correctly.
+ </para>
+ </listitem>
- - Fixed BUG#3554 - Not specifying database in URL caused MalformedURL
- exception.
+ <listitem>
+ <para>
+ Renamed StringUtils.escapeSJISByteStream() to more appropriate
+ escapeEasternUnicodeByteStream().
+ </para>
+ </listitem>
- - Auto-convert MySQL encoding names to Java encoding names if used
- for characterEncoding property.
+ <listitem>
+ <para>
+ Fixed BUG#3554 - Not specifying database in URL caused
+ MalformedURL exception.
+ </para>
+ </listitem>
- - Added encoding names that are recognized on some JVMs to fix case
- where they were reverse-mapped to MySQL encoding names incorrectly.
+ <listitem>
+ <para>
+ Auto-convert MySQL encoding names to Java encoding names if
+ used for characterEncoding property.
+ </para>
+ </listitem>
- - Use junit.textui.TestRunner for all unit tests (to allow them to be
- run from the command line outside of Ant or Eclipse).
+ <listitem>
+ <para>
+ Added encoding names that are recognized on some JVMs to fix
+ case where they were reverse-mapped to MySQL encoding names
+ incorrectly.
+ </para>
+ </listitem>
- - Fixed BUG#3557 - UpdatableResultSet not picking up default values
- for moveToInsertRow().
+ <listitem>
+ <para>
+ Use junit.textui.TestRunner for all unit tests (to allow them
+ to be run from the command line outside of Ant or Eclipse).
+ </para>
+ </listitem>
- - Fixed BUG#3570 - inconsistent reporting of data type. The server
- still doesn't return all types for *BLOBs *TEXT correctly, so the
- driver won't return those correctly.
+ <listitem>
+ <para>
+ Fixed BUG#3557 - UpdatableResultSet not picking up default
+ values for moveToInsertRow().
+ </para>
+ </listitem>
- - Fixed BUG#3520 -- DBMD.getSQLStateType() returns incorrect value.
+ <listitem>
+ <para>
+ Fixed BUG#3570 - inconsistent reporting of data type. The
+ server still doesn't return all types for *BLOBs *TEXT
+ correctly, so the driver won't return those correctly.
+ </para>
+ </listitem>
- - Fixed regression in PreparedStatement.setString() and eastern character
- encodings.
+ <listitem>
+ <para>
+ Fixed BUG#3520 -- DBMD.getSQLStateType() returns incorrect
+ value.
+ </para>
+ </listitem>
- - Made StringRegressionTest 4.1-unicode aware.
-</programlisting>
+ <listitem>
+ <para>
+ Fixed regression in PreparedStatement.setString() and eastern
+ character encodings.
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ Made StringRegressionTest 4.1-unicode aware.
+ </para>
+ </listitem>
+
+ </itemizedlist>
+
</section>
<section id="cj-news-3-0-11">
<title>&title-cj-news-3-0-11;</title>
-<programlisting>
- - Trigger a 'SET NAMES utf8' when encoding is forced to 'utf8' _or_
- 'utf-8' via the 'characterEncoding' property. Previously, only the
- Java-style encoding name of 'utf-8' would trigger this.
+ <itemizedlist>
- - AutoReconnect time was growing faster than exponentially (BUG#2447).
+ <listitem>
+ <para>
+ Trigger a 'SET NAMES utf8' when encoding is forced to 'utf8'
+ _or_ 'utf-8' via the 'characterEncoding' property. Previously,
+ only the Java-style encoding name of 'utf-8' would trigger
+ this.
+ </para>
+ </listitem>
- - Fixed failover always going to last host in list (BUG#2578)
+ <listitem>
+ <para>
+ AutoReconnect time was growing faster than exponentially
+ (BUG#2447).
+ </para>
+ </listitem>
- - Added 'useUnbufferedInput' parameter, and now use it by default
- (due to JVM issue
- http://developer.java.sun.com/developer/bugParade/bugs/4401235.html)
+ <listitem>
+ <para>
+ Fixed failover always going to last host in list (BUG#2578)
+ </para>
+ </listitem>
- - Detect 'on/off' or '1','2','3' form of lower_case_table_names on
- server.
+ <listitem>
+ <para>
+ Added 'useUnbufferedInput' parameter, and now use it by
+ default (due to JVM issue
+ http://developer.java.sun.com/developer/bugParade/bugs/4401235.html)
+ </para>
+ </listitem>
- - Return 'java.lang.Integer' for TINYINT and SMALLINT types from
- ResultSetMetaData.getColumnClassName() (fix for BUG#2852).
+ <listitem>
+ <para>
+ Detect 'on/off' or '1','2','3' form of lower_case_table_names
+ on server.
+ </para>
+ </listitem>
- - Return 'java.lang.Double' for FLOAT type from ResultSetMetaData.
- getColumnClassName() (fix for BUG#2855).
+ <listitem>
+ <para>
+ Return 'java.lang.Integer' for TINYINT and SMALLINT types from
+ ResultSetMetaData.getColumnClassName() (fix for BUG#2852).
+ </para>
+ </listitem>
- - Return '[B' instead of java.lang.Object for BINARY, VARBINARY and
- LONGVARBINARY types from ResultSetMetaData.getColumnClassName()
- (JDBC compliance).
+ <listitem>
+ <para>
+ Return 'java.lang.Double' for FLOAT type from
+ ResultSetMetaData. getColumnClassName() (fix for BUG#2855).
+ </para>
+ </listitem>
- - Issue connection events on all instances created from a
- ConnectionPoolDataSource.
-</programlisting>
+ <listitem>
+ <para>
+ Return '[B' instead of java.lang.Object for BINARY, VARBINARY
+ and LONGVARBINARY types from
+ ResultSetMetaData.getColumnClassName() (JDBC compliance).
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ Issue connection events on all instances created from a
+ ConnectionPoolDataSource.
+ </para>
+ </listitem>
+
+ </itemizedlist>
+
</section>
<section id="cj-news-3-0-10">
<title>&title-cj-news-3-0-10;</title>
-<programlisting>
- - Don't count quoted id's when inside a 'string' in PreparedStatement
- parsing (fix for BUG#1511).
+ <itemizedlist>
- - 'Friendlier' exception message for PacketTooLargeException
- (BUG#1534).
+ <listitem>
+ <para>
+ Don't count quoted id's when inside a 'string' in
+ PreparedStatement parsing (fix for BUG#1511).
+ </para>
+ </listitem>
- - Backported fix for aliased tables and UpdatableResultSets in
- checkUpdatability() method from 3.1 branch.
+ <listitem>
+ <para>
+ 'Friendlier' exception message for PacketTooLargeException
+ (BUG#1534).
+ </para>
+ </listitem>
- - Fix for ArrayIndexOutOfBounds exception when using Statement.setMaxRows()
- (BUG#1695).
+ <listitem>
+ <para>
+ Backported fix for aliased tables and UpdatableResultSets in
+ checkUpdatability() method from 3.1 branch.
+ </para>
+ </listitem>
- - Fixed BUG#1576, dealing with large blobs and split packets not being
- read correctly.
+ <listitem>
+ <para>
+ Fix for ArrayIndexOutOfBounds exception when using
+ Statement.setMaxRows() (BUG#1695).
+ </para>
+ </listitem>
- - Fixed regression of Statement.getGeneratedKeys() and REPLACE statements.
+ <listitem>
+ <para>
+ Fixed BUG#1576, dealing with large blobs and split packets not
+ being read correctly.
+ </para>
+ </listitem>
- - Fixed BUG#1630, subsequent call to ResultSet.updateFoo() causes NPE if
- result set is not updatable.
+ <listitem>
+ <para>
+ Fixed regression of Statement.getGeneratedKeys() and REPLACE
+ statements.
+ </para>
+ </listitem>
- - Fix for 4.1.1-style auth with no password.
+ <listitem>
+ <para>
+ Fixed BUG#1630, subsequent call to ResultSet.updateFoo()
+ causes NPE if result set is not updatable.
+ </para>
+ </listitem>
- - Fix for BUG#1731, Foreign Keys column sequence is not consistent in
- DatabaseMetaData.getImported/Exported/CrossReference().
+ <listitem>
+ <para>
+ Fix for 4.1.1-style auth with no password.
+ </para>
+ </listitem>
- - Fix for BUG#1775 - DatabaseMetaData.getSystemFunction() returning
- bad function 'VResultsSion'.
+ <listitem>
+ <para>
+ Fix for BUG#1731, Foreign Keys column sequence is not
+ consistent in
+ DatabaseMetaData.getImported/Exported/CrossReference().
+ </para>
+ </listitem>
- - Fix for BUG#1592 -- cross-database updatable result sets
- are not checked for updatability correctly.
+ <listitem>
+ <para>
+ Fix for BUG#1775 - DatabaseMetaData.getSystemFunction()
+ returning bad function 'VResultsSion'.
+ </para>
+ </listitem>
- - DatabaseMetaData.getColumns() should return Types.LONGVARCHAR for
- MySQL LONGTEXT type.
+ <listitem>
+ <para>
+ Fix for BUG#1592 -- cross-database updatable result sets are
+ not checked for updatability correctly.
+ </para>
+ </listitem>
- - ResultSet.getObject() on TINYINT and SMALLINT columns should return
- Java type 'Integer' (BUG#1913)
+ <listitem>
+ <para>
+ DatabaseMetaData.getColumns() should return Types.LONGVARCHAR
+ for MySQL LONGTEXT type.
+ </para>
+ </listitem>
- - Added 'alwaysClearStream' connection property, which causes the driver
- to always empty any remaining data on the input stream before
- each query.
+ <listitem>
+ <para>
+ ResultSet.getObject() on TINYINT and SMALLINT columns should
+ return Java type 'Integer' (BUG#1913)
+ </para>
+ </listitem>
- - Added more descriptive error message 'Server Configuration Denies
- Access to DataSource', as well as retrieval of message from server.
+ <listitem>
+ <para>
+ Added 'alwaysClearStream' connection property, which causes
+ the driver to always empty any remaining data on the input
+ stream before each query.
+ </para>
+ </listitem>
- - Autoreconnect code didn't set catalog upon reconnect if it had been
- changed.
+ <listitem>
+ <para>
+ Added more descriptive error message 'Server Configuration
+ Denies Access to DataSource', as well as retrieval of message
+ from server.
+ </para>
+ </listitem>
- - Implement ResultSet.updateClob().
+ <listitem>
+ <para>
+ Autoreconnect code didn't set catalog upon reconnect if it had
+ been changed.
+ </para>
+ </listitem>
- - ResultSetMetaData.isCaseSensitive() returned wrong value for CHAR/VARCHAR
- columns.
+ <listitem>
+ <para>
+ Implement ResultSet.updateClob().
+ </para>
+ </listitem>
- - Fix for BUG#1933 -- Connection property "maxRows" not honored.
+ <listitem>
+ <para>
+ ResultSetMetaData.isCaseSensitive() returned wrong value for
+ CHAR/VARCHAR columns.
+ </para>
+ </listitem>
- - Fix for BUG#1925 -- Statements being created too many times in
- DBMD.extractForeignKeyFromCreateTable().
+ <listitem>
+ <para>
+ Fix for BUG#1933 -- Connection property "maxRows" not honored.
+ </para>
+ </listitem>
- - Fix for BUG#1914 -- Support escape sequence {fn convert ... }
+ <listitem>
+ <para>
+ Fix for BUG#1925 -- Statements being created too many times in
+ DBMD.extractForeignKeyFromCreateTable().
+ </para>
+ </listitem>
- - Fix for BUG#1958 -- ArrayIndexOutOfBounds when parameter number ==
- number of parameters + 1.
+ <listitem>
+ <para>
+ Fix for BUG#1914 -- Support escape sequence {fn convert ... }
+ </para>
+ </listitem>
- - Fix for BUG#2006 -- ResultSet.findColumn() should use first matching
- column name when there are duplicate column names in SELECT query
- (JDBC-compliance).
+ <listitem>
+ <para>
+ Fix for BUG#1958 -- ArrayIndexOutOfBounds when parameter
+ number == number of parameters + 1.
+ </para>
+ </listitem>
- - Removed static synchronization bottleneck from
- PreparedStatement.setTimestamp().
+ <listitem>
+ <para>
+ Fix for BUG#2006 -- ResultSet.findColumn() should use first
+ matching column name when there are duplicate column names in
+ SELECT query (JDBC-compliance).
+ </para>
+ </listitem>
- - Removed static synchronization bottleneck from instance factory
- method of SingleByteCharsetConverter.
+ <listitem>
+ <para>
+ Removed static synchronization bottleneck from
+ PreparedStatement.setTimestamp().
+ </para>
+ </listitem>
- - Enable caching of the parsing stage of prepared statements via
- the 'cachePrepStmts', 'prepStmtCacheSize' and 'prepStmtCacheSqlLimit'
- properties (disabled by default).
+ <listitem>
+ <para>
+ Removed static synchronization bottleneck from instance
+ factory method of SingleByteCharsetConverter.
+ </para>
+ </listitem>
- - Speed up parsing of PreparedStatements, try to use one-pass whenever
- possible.
+ <listitem>
+ <para>
+ Enable caching of the parsing stage of prepared statements via
+ the 'cachePrepStmts', 'prepStmtCacheSize' and
+ 'prepStmtCacheSqlLimit' properties (disabled by default).
+ </para>
+ </listitem>
- - Fixed security exception when used in Applets (applets can't
- read the system property 'file.encoding' which is needed
- for LOAD DATA LOCAL INFILE).
+ <listitem>
+ <para>
+ Speed up parsing of PreparedStatements, try to use one-pass
+ whenever possible.
+ </para>
+ </listitem>
- - Use constants for SQLStates.
+ <listitem>
+ <para>
+ Fixed security exception when used in Applets (applets can't
+ read the system property 'file.encoding' which is needed for
+ LOAD DATA LOCAL INFILE).
+ </para>
+ </listitem>
- - Map charset 'ko18_ru' to 'ko18r' when connected to MySQL-4.1.0 or
- newer.
+ <listitem>
+ <para>
+ Use constants for SQLStates.
+ </para>
+ </listitem>
- - Ensure that Buffer.writeString() saves room for the \0.
+ <listitem>
+ <para>
+ Map charset 'ko18_ru' to 'ko18r' when connected to MySQL-4.1.0
+ or newer.
+ </para>
+ </listitem>
- - Fixed exception 'Unknown character set 'danish' on connect w/ JDK-1.4.0
+ <listitem>
+ <para>
+ Ensure that Buffer.writeString() saves room for the \0.
+ </para>
+ </listitem>
- - Fixed mappings in SQLError to report deadlocks with SQLStates of '41000'.
+ <listitem>
+ <para>
+ Fixed exception 'Unknown character set 'danish' on connect w/
+ JDK-1.4.0
+ </para>
+ </listitem>
- - 'maxRows' property would affect internal statements, so check it for all
- statement creation internal to the driver, and set to 0 when it is not.
-</programlisting>
+ <listitem>
+ <para>
+ Fixed mappings in SQLError to report deadlocks with SQLStates
+ of '41000'.
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ 'maxRows' property would affect internal statements, so check
+ it for all statement creation internal to the driver, and set
+ to 0 when it is not.
+ </para>
+ </listitem>
+
+ </itemizedlist>
+
</section>
<section id="cj-news-3-0-9">
<title>&title-cj-news-3-0-9;</title>
-<programlisting>
- - Faster date handling code in ResultSet and PreparedStatement (no longer
- uses Date methods that synchronize on static calendars).
+ <itemizedlist>
- - Fixed test for end of buffer in Buffer.readString().
+ <listitem>
+ <para>
+ Faster date handling code in ResultSet and PreparedStatement
+ (no longer uses Date methods that synchronize on static
+ calendars).
+ </para>
+ </listitem>
- - Fixed ResultSet.previous() behavior to move current
- position to before result set when on first row
- of result set (bugs.mysql.com BUG#496)
+ <listitem>
+ <para>
+ Fixed test for end of buffer in Buffer.readString().
+ </para>
+ </listitem>
- - Fixed Statement and PreparedStatement issuing bogus queries
- when setMaxRows() had been used and a LIMIT clause was present
- in the query.
+ <listitem>
+ <para>
+ Fixed ResultSet.previous() behavior to move current position
+ to before result set when on first row of result set
+ (bugs.mysql.com BUG#496)
+ </para>
+ </listitem>
- - Fixed BUG#661 - refreshRow didn't work when primary key values
- contained values that needed to be escaped (they ended up being
- doubly-escaped).
+ <listitem>
+ <para>
+ Fixed Statement and PreparedStatement issuing bogus queries
+ when setMaxRows() had been used and a LIMIT clause was present
+ in the query.
+ </para>
+ </listitem>
- - Support InnoDB contraint names when extracting foreign key info
- in DatabaseMetaData BUG#517 and BUG#664
- (impl. ideas from Parwinder Sekhon)
+ <listitem>
+ <para>
+ Fixed BUG#661 - refreshRow didn't work when primary key values
+ contained values that needed to be escaped (they ended up
+ being doubly-escaped).
+ </para>
+ </listitem>
- - Backported 4.1 protocol changes from 3.1 branch (server-side SQL
- states, new field info, larger client capability flags,
- connect-with-database, and so forth).
+ <listitem>
+ <para>
+ Support InnoDB contraint names when extracting foreign key
+ info in DatabaseMetaData BUG#517 and BUG#664 (impl. ideas from
+ Parwinder Sekhon)
+ </para>
+ </listitem>
- - Fix UpdatableResultSet to return values for getXXX() when on
- insert row (BUG#675).
+ <listitem>
+ <para>
+ Backported 4.1 protocol changes from 3.1 branch (server-side
+ SQL states, new field info, larger client capability flags,
+ connect-with-database, and so forth).
+ </para>
+ </listitem>
- - The insertRow in an UpdatableResultSet is now loaded with
- the default column values when moveToInsertRow() is called
- (BUG#688)
+ <listitem>
+ <para>
+ Fix UpdatableResultSet to return values for getXXX() when on
+ insert row (BUG#675).
+ </para>
+ </listitem>
- - DatabaseMetaData.getColumns() wasn't returning NULL for
- default values that are specified as NULL.
+ <listitem>
+ <para>
+ The insertRow in an UpdatableResultSet is now loaded with the
+ default column values when moveToInsertRow() is called
+ (BUG#688)
+ </para>
+ </listitem>
- - Change default statement type/concurrency to TYPE_FORWARD_ONLY
- and CONCUR_READ_ONLY (spec compliance).
+ <listitem>
+ <para>
+ DatabaseMetaData.getColumns() wasn't returning NULL for
+ default values that are specified as NULL.
+ </para>
+ </listitem>
- - Don't try and reset isolation level on reconnect if MySQL doesn't
- support them.
+ <listitem>
+ <para>
+ Change default statement type/concurrency to TYPE_FORWARD_ONLY
+ and CONCUR_READ_ONLY (spec compliance).
+ </para>
+ </listitem>
- - Don't wrap SQLExceptions in RowDataDynamic.
+ <listitem>
+ <para>
+ Don't try and reset isolation level on reconnect if MySQL
+ doesn't support them.
+ </para>
+ </listitem>
- - Don't change timestamp TZ twice if useTimezone==true (BUG#774)
+ <listitem>
+ <para>
+ Don't wrap SQLExceptions in RowDataDynamic.
+ </para>
+ </listitem>
- - Fixed regression in large split-packet handling (BUG#848).
+ <listitem>
+ <para>
+ Don't change timestamp TZ twice if useTimezone==true (BUG#774)
+ </para>
+ </listitem>
- - Better diagnostic error messages in exceptions for 'streaming'
- result sets.
+ <listitem>
+ <para>
+ Fixed regression in large split-packet handling (BUG#848).
+ </para>
+ </listitem>
- - Issue exception on ResultSet.getXXX() on empty result set (wasn't
- caught in some cases).
+ <listitem>
+ <para>
+ Better diagnostic error messages in exceptions for 'streaming'
+ result sets.
+ </para>
+ </listitem>
- - Don't hide messages from exceptions thrown in I/O layers.
+ <listitem>
+ <para>
+ Issue exception on ResultSet.getXXX() on empty result set
+ (wasn't caught in some cases).
+ </para>
+ </listitem>
- - Don't fire connection closed events when closing pooled connections, or
- on PooledConnection.getConnection() with already open connections (BUG#884).
+ <listitem>
+ <para>
+ Don't hide messages from exceptions thrown in I/O layers.
+ </para>
+ </listitem>
- - Clip +/- INF (to smallest and largest representative values for the type in
- MySQL) and NaN (to 0) for setDouble/setFloat(), and issue a warning on the
- statement when the server does not support +/- INF or NaN.
+ <listitem>
+ <para>
+ Don't fire connection closed events when closing pooled
+ connections, or on PooledConnection.getConnection() with
+ already open connections (BUG#884).
+ </para>
+ </listitem>
- - Fix for BUG#879, double-escaping of '\' when charset is SJIS or GBK and '\'
- appears in non-escaped input.
+ <listitem>
+ <para>
+ Clip +/- INF (to smallest and largest representative values
+ for the type in MySQL) and NaN (to 0) for
+ setDouble/setFloat(), and issue a warning on the statement
+ when the server does not support +/- INF or NaN.
+ </para>
+ </listitem>
- - When emptying input stream of unused rows for 'streaming' result sets,
- have the current thread yield() every 100 rows in order to not monopolize
- CPU time.
+ <listitem>
+ <para>
+ Fix for BUG#879, double-escaping of '\' when charset is SJIS
+ or GBK and '\' appears in non-escaped input.
+ </para>
+ </listitem>
- - Fixed BUG#1099, DatabaseMetaData.getColumns() getting confused about the
- keyword 'set' in character columns.
+ <listitem>
+ <para>
+ When emptying input stream of unused rows for 'streaming'
+ result sets, have the current thread yield() every 100 rows in
+ order to not monopolize CPU time.
+ </para>
+ </listitem>
- - Fixed deadlock issue with Statement.setMaxRows().
+ <listitem>
+ <para>
+ Fixed BUG#1099, DatabaseMetaData.getColumns() getting confused
+ about the keyword 'set' in character columns.
+ </para>
+ </listitem>
- - Fixed CLOB.truncate(), BUG#1130
+ <listitem>
+ <para>
+ Fixed deadlock issue with Statement.setMaxRows().
+ </para>
+ </listitem>
- - Optimized CLOB.setChracterStream(), BUG#1131
+ <listitem>
+ <para>
+ Fixed CLOB.truncate(), BUG#1130
+ </para>
+ </listitem>
- - Made databaseName, portNumber and serverName optional parameters
- for MysqlDataSourceFactory (BUG#1246)
+ <listitem>
+ <para>
+ Optimized CLOB.setChracterStream(), BUG#1131
+ </para>
+ </listitem>
- - Fix for BUG#1247 -- ResultSet.get/setString mashing char 127
+ <listitem>
+ <para>
+ Made databaseName, portNumber and serverName optional
+ parameters for MysqlDataSourceFactory (BUG#1246)
+ </para>
+ </listitem>
- - Backported auth. changes for 4.1.1 and newer from 3.1 branch.
+ <listitem>
+ <para>
+ Fix for BUG#1247 -- ResultSet.get/setString mashing char 127
+ </para>
+ </listitem>
- - Added com.mysql.jdbc.util.BaseBugReport to help creation of testcases
- for bug reports.
+ <listitem>
+ <para>
+ Backported auth. changes for 4.1.1 and newer from 3.1 branch.
+ </para>
+ </listitem>
- - Added property to 'clobber' streaming results, by setting the
- 'clobberStreamingResults' property to 'true' (the default is 'false').
- This will cause a 'streaming' ResultSet to be automatically
- closed, and any oustanding data still streaming from the server to
- be discarded if another query is executed before all the data has been
- read from the server.
-</programlisting>
+ <listitem>
+ <para>
+ Added com.mysql.jdbc.util.BaseBugReport to help creation of
+ testcases for bug reports.
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ Added property to 'clobber' streaming results, by setting the
+ 'clobberStreamingResults' property to 'true' (the default is
+ 'false'). This will cause a 'streaming' ResultSet to be
+ automatically closed, and any oustanding data still streaming
+ from the server to be discarded if another query is executed
+ before all the data has been read from the server.
+ </para>
+ </listitem>
+
+ </itemizedlist>
+
</section>
<section id="cj-news-3-0-8">
<title>&title-cj-news-3-0-8;</title>
-<programlisting>
- - Allow bogus URLs in Driver.getPropertyInfo().
+ <itemizedlist>
- - Return list of generated keys when using multi-value INSERTS
- with Statement.getGeneratedKeys().
+ <listitem>
+ <para>
+ Allow bogus URLs in Driver.getPropertyInfo().
+ </para>
+ </listitem>
- - Use JVM charset with filenames and 'LOAD DATA [LOCAL] INFILE'
+ <listitem>
+ <para>
+ Return list of generated keys when using multi-value INSERTS
+ with Statement.getGeneratedKeys().
+ </para>
+ </listitem>
- - Fix infinite loop with Connection.cleanup().
+ <listitem>
+ <para>
+ Use JVM charset with filenames and 'LOAD DATA [LOCAL] INFILE'
+ </para>
+ </listitem>
- - Changed Ant target 'compile-core' to 'compile-driver', and
- made testsuite compilation a separate target.
+ <listitem>
+ <para>
+ Fix infinite loop with Connection.cleanup().
+ </para>
+ </listitem>
- - Fixed result set not getting set for Statement.executeUpdate(),
- which affected getGeneratedKeys() and getUpdateCount() in
- some cases.
+ <listitem>
+ <para>
+ Changed Ant target 'compile-core' to 'compile-driver', and
+ made testsuite compilation a separate target.
+ </para>
+ </listitem>
- - Unicode character 0xFFFF in a string would cause the driver to
- throw an ArrayOutOfBoundsException (Bug #378)
+ <listitem>
+ <para>
+ Fixed result set not getting set for
+ Statement.executeUpdate(), which affected getGeneratedKeys()
+ and getUpdateCount() in some cases.
+ </para>
+ </listitem>
- - Return correct amount of generated keys when using 'REPLACE'
- statements.
+ <listitem>
+ <para>
+ Unicode character 0xFFFF in a string would cause the driver to
+ throw an ArrayOutOfBoundsException (Bug #378)
+ </para>
+ </listitem>
- - Fix problem detecting server character set in some cases.
+ <listitem>
+ <para>
+ Return correct amount of generated keys when using 'REPLACE'
+ statements.
+ </para>
+ </listitem>
- - Fix row data decoding error when using _very_ large packets.
+ <listitem>
+ <para>
+ Fix problem detecting server character set in some cases.
+ </para>
+ </listitem>
- - Optimized row data decoding.
+ <listitem>
+ <para>
+ Fix row data decoding error when using _very_ large packets.
+ </para>
+ </listitem>
- - Issue exception when operating on an already-closed
- prepared statement.
+ <listitem>
+ <para>
+ Optimized row data decoding.
+ </para>
+ </listitem>
- - Fixed SJIS encoding bug, thanks to Naoto Sato.
+ <listitem>
+ <para>
+ Issue exception when operating on an already-closed prepared
+ statement.
+ </para>
+ </listitem>
- - Optimized usage of EscapeProcessor.
+ <listitem>
+ <para>
+ Fixed SJIS encoding bug, thanks to Naoto Sato.
+ </para>
+ </listitem>
- - Allow multiple calls to Statement.close()
-</programlisting>
+ <listitem>
+ <para>
+ Optimized usage of EscapeProcessor.
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ Allow multiple calls to Statement.close()
+ </para>
+ </listitem>
+
+ </itemizedlist>
+
</section>
<section id="cj-news-3-0-7">
<title>&title-cj-news-3-0-7;</title>
-<programlisting>
- - Fixed MysqlPooledConnection.close() calling wrong event type.
+ <itemizedlist>
- - Fixed StringIndexOutOfBoundsException in PreparedStatement.
- setClob().
+ <listitem>
+ <para>
+ Fixed MysqlPooledConnection.close() calling wrong event type.
+ </para>
+ </listitem>
- - 4.1 Column Metadata fixes
+ <listitem>
+ <para>
+ Fixed StringIndexOutOfBoundsException in PreparedStatement.
+ setClob().
+ </para>
+ </listitem>
- - Remove synchronization from Driver.connect() and
- Driver.acceptsUrl().
+ <listitem>
+ <para>
+ 4.1 Column Metadata fixes
+ </para>
+ </listitem>
- - IOExceptions during a transaction now cause the Connection to
- be closed.
+ <listitem>
+ <para>
+ Remove synchronization from Driver.connect() and
+ Driver.acceptsUrl().
+ </para>
+ </listitem>
- - Fixed missing conversion for 'YEAR' type in ResultSetMetaData.
- getColumnTypeName().
+ <listitem>
+ <para>
+ IOExceptions during a transaction now cause the Connection to
+ be closed.
+ </para>
+ </listitem>
- - Don't pick up indexes that start with 'pri' as primary keys
- for DBMD.getPrimaryKeys().
+ <listitem>
+ <para>
+ Fixed missing conversion for 'YEAR' type in ResultSetMetaData.
+ getColumnTypeName().
+ </para>
+ </listitem>
- - Throw SQLExceptions when trying to do operations on a forcefully
- closed Connection (i.e. when a communication link failure occurs).
+ <listitem>
+ <para>
+ Don't pick up indexes that start with 'pri' as primary keys
+ for DBMD.getPrimaryKeys().
+ </para>
+ </listitem>
- - You can now toggle profiling on/off using
- Connection.setProfileSql(boolean).
+ <listitem>
+ <para>
+ Throw SQLExceptions when trying to do operations on a
+ forcefully closed Connection (i.e. when a communication link
+ failure occurs).
+ </para>
+ </listitem>
- - Fixed charset issues with database metadata (charset was not
- getting set correctly).
+ <listitem>
+ <para>
+ You can now toggle profiling on/off using
+ Connection.setProfileSql(boolean).
+ </para>
+ </listitem>
- - Updatable ResultSets can now be created for aliased tables/columns
- when connected to MySQL-4.1 or newer.
+ <listitem>
+ <para>
+ Fixed charset issues with database metadata (charset was not
+ getting set correctly).
+ </para>
+ </listitem>
- - Fixed 'LOAD DATA LOCAL INFILE' bug when file > max_allowed_packet.
+ <listitem>
+ <para>
+ Updatable ResultSets can now be created for aliased
+ tables/columns when connected to MySQL-4.1 or newer.
+ </para>
+ </listitem>
- - Fixed escaping of 0x5c ('\') character for GBK and Big5 charsets.
+ <listitem>
+ <para>
+ Fixed 'LOAD DATA LOCAL INFILE' bug when file >
+ max_allowed_packet.
+ </para>
+ </listitem>
- - Fixed ResultSet.getTimestamp() when underlying field is of type DATE.
+ <listitem>
+ <para>
+ Fixed escaping of 0x5c ('\') character for GBK and Big5
+ charsets.
+ </para>
+ </listitem>
- - Ensure that packet size from alignPacketSize() does not
- exceed MAX_ALLOWED_PACKET (JVM bug)
+ <listitem>
+ <para>
+ Fixed ResultSet.getTimestamp() when underlying field is of
+ type DATE.
+ </para>
+ </listitem>
- - Don't reset Connection.isReadOnly() when autoReconnecting.
-</programlisting>
+ <listitem>
+ <para>
+ Ensure that packet size from alignPacketSize() does not exceed
+ MAX_ALLOWED_PACKET (JVM bug)
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ Don't reset Connection.isReadOnly() when autoReconnecting.
+ </para>
+ </listitem>
+
+ </itemizedlist>
+
</section>
<section id="cj-news-3-0-6">
<title>&title-cj-news-3-0-6;</title>
-<programlisting>
- - Fixed ResultSetMetaData to return "" when catalog not known.
- Fixes NullPointerExceptions with Sun's CachedRowSet.
+ <itemizedlist>
- - Fixed DBMD.getTypeInfo() and DBMD.getColumns() returning
- different value for precision in TEXT/BLOB types.
+ <listitem>
+ <para>
+ Fixed ResultSetMetaData to return "" when catalog not known.
+ Fixes NullPointerExceptions with Sun's CachedRowSet.
+ </para>
+ </listitem>
- - Allow ignoring of warning for 'non transactional tables' during
- rollback (compliance/usability) by setting 'ignoreNonTxTables'
- property to 'true'.
+ <listitem>
+ <para>
+ Fixed DBMD.getTypeInfo() and DBMD.getColumns() returning
+ different value for precision in TEXT/BLOB types.
+ </para>
+ </listitem>
- - Fixed SQLExceptions getting swallowed on initial connect.
+ <listitem>
+ <para>
+ Allow ignoring of warning for 'non transactional tables'
+ during rollback (compliance/usability) by setting
+ 'ignoreNonTxTables' property to 'true'.
+ </para>
+ </listitem>
- - Fixed Statement.setMaxRows() to stop sending 'LIMIT' type queries
- when not needed (performance)
+ <listitem>
+ <para>
+ Fixed SQLExceptions getting swallowed on initial connect.
+ </para>
+ </listitem>
- - Clean up Statement query/method mismatch tests (i.e. INSERT not
- allowed with .executeQuery()).
+ <listitem>
+ <para>
+ Fixed Statement.setMaxRows() to stop sending 'LIMIT' type
+ queries when not needed (performance)
+ </para>
+ </listitem>
- - More checks added in ResultSet traversal method to catch
- when in closed state.
+ <listitem>
+ <para>
+ Clean up Statement query/method mismatch tests (i.e. INSERT
+ not allowed with .executeQuery()).
+ </para>
+ </listitem>
- - Fixed ResultSetMetaData.isWritable() to return correct value.
+ <listitem>
+ <para>
+ More checks added in ResultSet traversal method to catch when
+ in closed state.
+ </para>
+ </listitem>
- - Add 'window' of different NULL sorting behavior to
- DBMD.nullsAreSortedAtStart (4.0.2 to 4.0.10, true, otherwise,
- no).
+ <listitem>
+ <para>
+ Fixed ResultSetMetaData.isWritable() to return correct value.
+ </para>
+ </listitem>
- - Implemented Blob.setBytes(). You still need to pass the
- resultant Blob back into an updatable ResultSet or
- PreparedStatement to persist the changes, as MySQL does
- not support 'locators'.
+ <listitem>
+ <para>
+ Add 'window' of different NULL sorting behavior to
+ DBMD.nullsAreSortedAtStart (4.0.2 to 4.0.10, true, otherwise,
+ no).
+ </para>
+ </listitem>
- - Backported 4.1 charset field info changes from Connector/J 3.1
-</programlisting>
+ <listitem>
+ <para>
+ Implemented Blob.setBytes(). You still need to pass the
+ resultant Blob back into an updatable ResultSet or
+ PreparedStatement to persist the changes, as MySQL does not
+ support 'locators'.
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ Backported 4.1 charset field info changes from Connector/J 3.1
+ </para>
+ </listitem>
+
+ </itemizedlist>
+
</section>
<section id="cj-news-3-0-5">
<title>&title-cj-news-3-0-5;</title>
-<programlisting>
- - Fixed Buffer.fastSkipLenString() causing ArrayIndexOutOfBounds
- exceptions with some queries when unpacking fields.
+ <itemizedlist>
- - Implemented an empty TypeMap for Connection.getTypeMap() so that
- some third-party apps work with MySQL (IBM WebSphere 5.0 Connection
- pool).
+ <listitem>
+ <para>
+ Fixed Buffer.fastSkipLenString() causing ArrayIndexOutOfBounds
+ exceptions with some queries when unpacking fields.
+ </para>
+ </listitem>
- - Added missing LONGTEXT type to DBMD.getColumns().
+ <listitem>
+ <para>
+ Implemented an empty TypeMap for Connection.getTypeMap() so
+ that some third-party apps work with MySQL (IBM WebSphere 5.0
+ Connection pool).
+ </para>
+ </listitem>
- - Retrieve TX_ISOLATION from database for
- Connection.getTransactionIsolation() when the MySQL version
- supports it, instead of an instance variable.
+ <listitem>
+ <para>
+ Added missing LONGTEXT type to DBMD.getColumns().
+ </para>
+ </listitem>
- - Quote table names in DatabaseMetaData.getColumns(),
- getPrimaryKeys(), getIndexInfo(), getBestRowIdentifier()
+ <listitem>
+ <para>
+ Retrieve TX_ISOLATION from database for
+ Connection.getTransactionIsolation() when the MySQL version
+ supports it, instead of an instance variable.
+ </para>
+ </listitem>
- - Greatly reduce memory required for setBinaryStream() in
- PreparedStatements.
+ <listitem>
+ <para>
+ Quote table names in DatabaseMetaData.getColumns(),
+ getPrimaryKeys(), getIndexInfo(), getBestRowIdentifier()
+ </para>
+ </listitem>
- - Fixed ResultSet.isBeforeFirst() for empty result sets.
+ <listitem>
+ <para>
+ Greatly reduce memory required for setBinaryStream() in
+ PreparedStatements.
+ </para>
+ </listitem>
- - Added update options for foreign key metadata.
-</programlisting>
+ <listitem>
+ <para>
+ Fixed ResultSet.isBeforeFirst() for empty result sets.
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ Added update options for foreign key metadata.
+ </para>
+ </listitem>
+
+ </itemizedlist>
+
</section>
<section id="cj-news-3-0-4">
<title>&title-cj-news-3-0-4;</title>
-<programlisting>
- - Added quoted identifiers to database names for
- Connection.setCatalog.
+ <itemizedlist>
- - Added support for quoted identifiers in PreparedStatement
- parser.
+ <listitem>
+ <para>
+ Added quoted identifiers to database names for
+ Connection.setCatalog.
+ </para>
+ </listitem>
- - Streamlined character conversion and byte[] handling in
- PreparedStatements for setByte().
+ <listitem>
+ <para>
+ Added support for quoted identifiers in PreparedStatement
+ parser.
+ </para>
+ </listitem>
- - Reduce memory footprint of PreparedStatements by sharing
- outbound packet with MysqlIO.
+ <listitem>
+ <para>
+ Streamlined character conversion and byte[] handling in
+ PreparedStatements for setByte().
+ </para>
+ </listitem>
- - Added 'strictUpdates' property to allow control of amount
- of checking for 'correctness' of updatable result sets. Set this
- to 'false' if you want faster updatable result sets and you know
- that you create them from SELECTs on tables with primary keys and
- that you have selected all primary keys in your query.
+ <listitem>
+ <para>
+ Reduce memory footprint of PreparedStatements by sharing
+ outbound packet with MysqlIO.
+ </para>
+ </listitem>
- - Added support for 4.0.8-style large packets.
+ <listitem>
+ <para>
+ Added 'strictUpdates' property to allow control of amount of
+ checking for 'correctness' of updatable result sets. Set this
+ to 'false' if you want faster updatable result sets and you
+ know that you create them from SELECTs on tables with primary
+ keys and that you have selected all primary keys in your
+ query.
+ </para>
+ </listitem>
- - Fixed PreparedStatement.executeBatch() parameter overwriting.
-</programlisting>
+ <listitem>
+ <para>
+ Added support for 4.0.8-style large packets.
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ Fixed PreparedStatement.executeBatch() parameter overwriting.
+ </para>
+ </listitem>
+
+ </itemizedlist>
+
</section>
<section id="cj-news-3-0-3">
<title>&title-cj-news-3-0-3;</title>
-<programlisting>
- - Changed charsToByte in SingleByteCharConverter to be non-static
+ <itemizedlist>
- - Changed SingleByteCharConverter to use lazy initialization of each
- converter.
+ <listitem>
+ <para>
+ Changed charsToByte in SingleByteCharConverter to be
+ non-static
+ </para>
+ </listitem>
- - Fixed charset handling in Fields.java
+ <listitem>
+ <para>
+ Changed SingleByteCharConverter to use lazy initialization of
+ each converter.
+ </para>
+ </listitem>
- - Implemented Connection.nativeSQL()
+ <listitem>
+ <para>
+ Fixed charset handling in Fields.java
+ </para>
+ </listitem>
- - More robust escape tokenizer -- recognize '--' comments, and allow
- nested escape sequences (see testsuite.EscapeProcessingTest)
+ <listitem>
+ <para>
+ Implemented Connection.nativeSQL()
+ </para>
+ </listitem>
- - DBMD.getImported/ExportedKeys() now handles multiple foreign keys
- per table.
+ <listitem>
+ <para>
+ More robust escape tokenizer -- recognize '--' comments, and
+ allow nested escape sequences (see
+ testsuite.EscapeProcessingTest)
+ </para>
+ </listitem>
- - Fixed ResultSetMetaData.getPrecision() returning incorrect values
- for some floating point types.
+ <listitem>
+ <para>
+ DBMD.getImported/ExportedKeys() now handles multiple foreign
+ keys per table.
+ </para>
+ </listitem>
- - Fixed ResultSetMetaData.getColumnTypeName() returning BLOB for
- TEXT and TEXT for BLOB types.
+ <listitem>
+ <para>
+ Fixed ResultSetMetaData.getPrecision() returning incorrect
+ values for some floating point types.
+ </para>
+ </listitem>
- - Fixed Buffer.isLastDataPacket() for 4.1 and newer servers.
+ <listitem>
+ <para>
+ Fixed ResultSetMetaData.getColumnTypeName() returning BLOB for
+ TEXT and TEXT for BLOB types.
+ </para>
+ </listitem>
- - Added CLIENT_LONG_FLAG to be able to get more column flags
- (isAutoIncrement() being the most important)
+ <listitem>
+ <para>
+ Fixed Buffer.isLastDataPacket() for 4.1 and newer servers.
+ </para>
+ </listitem>
- - Because of above, implemented ResultSetMetaData.isAutoIncrement()
- to use Field.isAutoIncrement().
+ <listitem>
+ <para>
+ Added CLIENT_LONG_FLAG to be able to get more column flags
+ (isAutoIncrement() being the most important)
+ </para>
+ </listitem>
- - Honor 'lower_case_table_names' when enabled in the server when
- doing table name comparisons in DatabaseMetaData methods.
+ <listitem>
+ <para>
+ Because of above, implemented
+ ResultSetMetaData.isAutoIncrement() to use
+ Field.isAutoIncrement().
+ </para>
+ </listitem>
- - Some MySQL-4.1 protocol support (extended field info from selects)
+ <listitem>
+ <para>
+ Honor 'lower_case_table_names' when enabled in the server when
+ doing table name comparisons in DatabaseMetaData methods.
+ </para>
+ </listitem>
- - Use non-aliased table/column names and database names to fullly
- qualify tables and columns in UpdatableResultSet (requires
- MySQL-4.1 or newer)
+ <listitem>
+ <para>
+ Some MySQL-4.1 protocol support (extended field info from
+ selects)
+ </para>
+ </listitem>
- - Allow user to alter behavior of Statement/
- PreparedStatement.executeBatch() via 'continueBatchOnError' property
- (defaults to 'true').
+ <listitem>
+ <para>
+ Use non-aliased table/column names and database names to
+ fullly qualify tables and columns in UpdatableResultSet
+ (requires MySQL-4.1 or newer)
+ </para>
+ </listitem>
- - Check for connection closed in more Connection methods
- (createStatement, prepareStatement, setTransactionIsolation,
- setAutoCommit).
+ <listitem>
+ <para>
+ Allow user to alter behavior of Statement/
+ PreparedStatement.executeBatch() via 'continueBatchOnError'
+ property (defaults to 'true').
+ </para>
+ </listitem>
- - More robust implementation of updatable result sets. Checks that
- _all_ primary keys of the table have been selected.
+ <listitem>
+ <para>
+ Check for connection closed in more Connection methods
+ (createStatement, prepareStatement, setTransactionIsolation,
+ setAutoCommit).
+ </para>
+ </listitem>
- - 'LOAD DATA LOCAL INFILE ...' now works, if your server is configured
- to allow it. Can be turned off with the 'allowLoadLocalInfile'
- property (see the README).
+ <listitem>
+ <para>
+ More robust implementation of updatable result sets. Checks
+ that _all_ primary keys of the table have been selected.
+ </para>
+ </listitem>
- - Substitute '?' for unknown character conversions in single-byte
- character sets instead of '\0'.
+ <listitem>
+ <para>
+ 'LOAD DATA LOCAL INFILE ...' now works, if your server is
+ configured to allow it. Can be turned off with the
+ 'allowLoadLocalInfile' property (see the README).
+ </para>
+ </listitem>
- - NamedPipeSocketFactory now works (only intended for Windows), see
- README for instructions.
-</programlisting>
+ <listitem>
+ <para>
+ Substitute '?' for unknown character conversions in
+ single-byte character sets instead of '\0'.
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ NamedPipeSocketFactory now works (only intended for Windows),
+ see README for instructions.
+ </para>
+ </listitem>
+
+ </itemizedlist>
+
</section>
<section id="cj-news-3-0-2">
<title>&title-cj-news-3-0-2;</title>
-<programlisting>
- - Fixed issue with updatable result sets and PreparedStatements not
- working
+ <itemizedlist>
- - Fixed ResultSet.setFetchDirection(FETCH_UNKNOWN)
+ <listitem>
+ <para>
+ Fixed issue with updatable result sets and PreparedStatements
+ not working
+ </para>
+ </listitem>
- - Fixed issue when calling Statement.setFetchSize() when using
- arbitrary values
+ <listitem>
+ <para>
+ Fixed ResultSet.setFetchDirection(FETCH_UNKNOWN)
+ </para>
+ </listitem>
- - Fixed incorrect conversion in ResultSet.getLong()
+ <listitem>
+ <para>
+ Fixed issue when calling Statement.setFetchSize() when using
+ arbitrary values
+ </para>
+ </listitem>
- - Implemented ResultSet.updateBlob().
+ <listitem>
+ <para>
+ Fixed incorrect conversion in ResultSet.getLong()
+ </para>
+ </listitem>
- - Removed duplicate code from UpdatableResultSet (it can be inherited
- from ResultSet, the extra code for each method to handle updatability
- I thought might someday be necessary has not been needed).
+ <listitem>
+ <para>
+ Implemented ResultSet.updateBlob().
+ </para>
+ </listitem>
- - Fixed "UnsupportedEncodingException" thrown when "forcing" a
- character encoding via properties.
+ <listitem>
+ <para>
+ Removed duplicate code from UpdatableResultSet (it can be
+ inherited from ResultSet, the extra code for each method to
+ handle updatability I thought might someday be necessary has
+ not been needed).
+ </para>
+ </listitem>
- - Fixed various non-ASCII character encoding issues.
+ <listitem>
+ <para>
+ Fixed "UnsupportedEncodingException" thrown when "forcing" a
+ character encoding via properties.
+ </para>
+ </listitem>
- - Added driver property 'useHostsInPrivileges'. Defaults to true.
- Affects whether or not '@hostname' will be used in
- DBMD.getColumn/TablePrivileges.
+ <listitem>
+ <para>
+ Fixed various non-ASCII character encoding issues.
+ </para>
+ </listitem>
- - All DBMD result set columns describing schemas now return NULL
- to be more compliant with the behavior of other JDBC drivers
- for other database systems (MySQL does not support schemas).
+ <listitem>
+ <para>
+ Added driver property 'useHostsInPrivileges'. Defaults to
+ true. Affects whether or not '@hostname' will be used in
+ DBMD.getColumn/TablePrivileges.
+ </para>
+ </listitem>
- - Added SSL support. See README for information on how to use it.
+ <listitem>
+ <para>
+ All DBMD result set columns describing schemas now return NULL
+ to be more compliant with the behavior of other JDBC drivers
+ for other database systems (MySQL does not support schemas).
+ </para>
+ </listitem>
- - Properly restore connection properties when autoReconnecting
- or failing-over, including autoCommit state, and isolation level.
+ <listitem>
+ <para>
+ Added SSL support. See README for information on how to use
+ it.
+ </para>
+ </listitem>
- - Use 'SHOW CREATE TABLE' when possible for determining foreign key
- information for DatabaseMetaData...also allows cascade options for
- DELETE information to be returned
+ <listitem>
+ <para>
+ Properly restore connection properties when autoReconnecting
+ or failing-over, including autoCommit state, and isolation
+ level.
+ </para>
+ </listitem>
- - Escape 0x5c character in strings for the SJIS charset.
+ <listitem>
+ <para>
+ Use 'SHOW CREATE TABLE' when possible for determining foreign
+ key information for DatabaseMetaData...also allows cascade
+ options for DELETE information to be returned
+ </para>
+ </listitem>
- - Fixed start position off-by-1 error in Clob.getSubString()
+ <listitem>
+ <para>
+ Escape 0x5c character in strings for the SJIS charset.
+ </para>
+ </listitem>
- - Implemented Clob.truncate()
+ <listitem>
+ <para>
+ Fixed start position off-by-1 error in Clob.getSubString()
+ </para>
+ </listitem>
- - Implemented Clob.setString()
+ <listitem>
+ <para>
+ Implemented Clob.truncate()
+ </para>
+ </listitem>
- - Implemented Clob.setAsciiStream()
+ <listitem>
+ <para>
+ Implemented Clob.setString()
+ </para>
+ </listitem>
- - Implemented Clob.setCharacterStream()
+ <listitem>
+ <para>
+ Implemented Clob.setAsciiStream()
+ </para>
+ </listitem>
- - Added com.mysql.jdbc.MiniAdmin class, which allows you to send
- 'shutdown' command to MySQL server...Intended to be used when 'embedding'
- Java and MySQL server together in an end-user application.
+ <listitem>
+ <para>
+ Implemented Clob.setCharacterStream()
+ </para>
+ </listitem>
- - Added 'connectTimeout' parameter that allows users of JDK-1.4 and newer
- to specify a maxium time to wait to establish a connection.
+ <listitem>
+ <para>
+ Added com.mysql.jdbc.MiniAdmin class, which allows you to send
+ 'shutdown' command to MySQL server...Intended to be used when
+ 'embedding' Java and MySQL server together in an end-user
+ application.
+ </para>
+ </listitem>
- - Failover and autoReconnect only work when the connection is in a
- autoCommit(false) state, in order to stay transaction safe
+ <listitem>
+ <para>
+ Added 'connectTimeout' parameter that allows users of JDK-1.4
+ and newer to specify a maxium time to wait to establish a
+ connection.
+ </para>
+ </listitem>
- - Added 'queriesBeforeRetryMaster' property that specifies how many
- queries to issue when failed over before attempting to reconnect
- to the master (defaults to 50)
+ <listitem>
+ <para>
+ Failover and autoReconnect only work when the connection is in
+ a autoCommit(false) state, in order to stay transaction safe
+ </para>
+ </listitem>
- - Fixed DBMD.supportsResultSetConcurrency() so that it returns true
- for ResultSet.TYPE_SCROLL_INSENSITIVE and ResultSet.CONCUR_READ_ONLY or
- ResultSet.CONCUR_UPDATABLE
+ <listitem>
+ <para>
+ Added 'queriesBeforeRetryMaster' property that specifies how
+ many queries to issue when failed over before attempting to
+ reconnect to the master (defaults to 50)
+ </para>
+ </listitem>
- - Fixed ResultSet.isLast() for empty result sets (should return false).
+ <listitem>
+ <para>
+ Fixed DBMD.supportsResultSetConcurrency() so that it returns
+ true for ResultSet.TYPE_SCROLL_INSENSITIVE and
+ ResultSet.CONCUR_READ_ONLY or ResultSet.CONCUR_UPDATABLE
+ </para>
+ </listitem>
- - PreparedStatement now honors stream lengths in setBinary/Ascii/Character
- Stream() unless you set the connection property
- 'useStreamLengthsInPrepStmts' to 'false'.
+ <listitem>
+ <para>
+ Fixed ResultSet.isLast() for empty result sets (should return
+ false).
+ </para>
+ </listitem>
- - Removed some not-needed temporary object creation by using Strings
- smarter in EscapeProcessor, Connection and DatabaseMetaData classes.
-</programlisting>
+ <listitem>
+ <para>
+ PreparedStatement now honors stream lengths in
+ setBinary/Ascii/Character Stream() unless you set the
+ connection property 'useStreamLengthsInPrepStmts' to 'false'.
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ Removed some not-needed temporary object creation by using
+ Strings smarter in EscapeProcessor, Connection and
+ DatabaseMetaData classes.
+ </para>
+ </listitem>
+
+ </itemizedlist>
+
</section>
<section id="cj-news-3-0-1">
<title>&title-cj-news-3-0-1;</title>
-<programlisting>
- - Fixed ResultSet.getRow() off-by-one bug.
+ <itemizedlist>
- - Fixed RowDataStatic.getAt() off-by-one bug.
+ <listitem>
+ <para>
+ Fixed ResultSet.getRow() off-by-one bug.
+ </para>
+ </listitem>
- - Added limited Clob functionality (ResultSet.getClob(),
- PreparedStatemtent.setClob(),
- PreparedStatement.setObject(Clob).
+ <listitem>
+ <para>
+ Fixed RowDataStatic.getAt() off-by-one bug.
+ </para>
+ </listitem>
- - Added socketTimeout parameter to URL.
+ <listitem>
+ <para>
+ Added limited Clob functionality (ResultSet.getClob(),
+ PreparedStatemtent.setClob(),
+ PreparedStatement.setObject(Clob).
+ </para>
+ </listitem>
- - Connection.isClosed() no longer "pings" the server.
+ <listitem>
+ <para>
+ Added socketTimeout parameter to URL.
+ </para>
+ </listitem>
- - Connection.close() issues rollback() when getAutoCommit() == false
+ <listitem>
+ <para>
+ Connection.isClosed() no longer "pings" the server.
+ </para>
+ </listitem>
- - Added "paranoid" parameter...sanitizes error messages removing
- "sensitive" information from them (such as hostnames, ports, or
- usernames), as well as clearing "sensitive" data structures
- when possible.
+ <listitem>
+ <para>
+ Connection.close() issues rollback() when getAutoCommit() ==
+ false
+ </para>
+ </listitem>
- - Fixed ResultSetMetaData.isSigned() for TINYINT and BIGINT.
+ <listitem>
+ <para>
+ Added "paranoid" parameter...sanitizes error messages removing
+ "sensitive" information from them (such as hostnames, ports,
+ or usernames), as well as clearing "sensitive" data structures
+ when possible.
+ </para>
+ </listitem>
- - Charsets now automatically detected. Optimized code for single-byte
- character set conversion.
+ <listitem>
+ <para>
+ Fixed ResultSetMetaData.isSigned() for TINYINT and BIGINT.
+ </para>
+ </listitem>
- - Implemented ResultSet.getCharacterStream()
+ <listitem>
+ <para>
+ Charsets now automatically detected. Optimized code for
+ single-byte character set conversion.
+ </para>
+ </listitem>
- - Added "LOCAL TEMPORARY" to table types in DatabaseMetaData.getTableTypes()
+ <listitem>
+ <para>
+ Implemented ResultSet.getCharacterStream()
+ </para>
+ </listitem>
- - Massive code clean-up to follow Java coding conventions (the time had come)
-</programlisting>
+ <listitem>
+ <para>
+ Added "LOCAL TEMPORARY" to table types in
+ DatabaseMetaData.getTableTypes()
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ Massive code clean-up to follow Java coding conventions (the
+ time had come)
+ </para>
+ </listitem>
+
+ </itemizedlist>
+
</section>
<section id="cj-news-3-0-0">
<title>&title-cj-news-3-0-0;</title>
-<programlisting>
- - !!! LICENSE CHANGE !!! The driver is now GPL. If you need
- non-GPL licenses, please contact me <mark@stripped>
+ <itemizedlist>
- - JDBC-3.0 functionality including
- Statement/PreparedStatement.getGeneratedKeys() and
- ResultSet.getURL()
+ <listitem>
+ <para>
+ !!! LICENSE CHANGE !!! The driver is now GPL. If you need
+ non-GPL licenses, please contact me <mark@stripped>
+ </para>
+ </listitem>
- - Performance enchancements - driver is now 50-100% faster
- in most situations, and creates fewer temporary objects
+ <listitem>
+ <para>
+ JDBC-3.0 functionality including
+ Statement/PreparedStatement.getGeneratedKeys() and
+ ResultSet.getURL()
+ </para>
+ </listitem>
- - Repackaging...new driver name is "com.mysql.jdbc.Driver",
- old name still works, though (the driver is now provided
- by MySQL-AB)
+ <listitem>
+ <para>
+ Performance enchancements - driver is now 50-100% faster in
+ most situations, and creates fewer temporary objects
+ </para>
+ </listitem>
- - Better checking for closed connections in Statement
- and PreparedStatement.
+ <listitem>
+ <para>
+ Repackaging...new driver name is "com.mysql.jdbc.Driver", old
+ name still works, though (the driver is now provided by
+ MySQL-AB)
+ </para>
+ </listitem>
- - Support for streaming (row-by-row) result sets (see README)
- Thanks to Doron.
+ <listitem>
+ <para>
+ Better checking for closed connections in Statement and
+ PreparedStatement.
+ </para>
+ </listitem>
- - Support for large packets (new addition to MySQL-4.0 protocol),
- see README for more information.
+ <listitem>
+ <para>
+ Support for streaming (row-by-row) result sets (see README)
+ Thanks to Doron.
+ </para>
+ </listitem>
- - JDBC Compliance -- Passes all tests besides stored procedure tests
+ <listitem>
+ <para>
+ Support for large packets (new addition to MySQL-4.0
+ protocol), see README for more information.
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ JDBC Compliance -- Passes all tests besides stored procedure
+ tests
+ </para>
+ </listitem>
- - Fix and sort primary key names in DBMetaData (SF bugs 582086 and 582086)
+ <listitem>
+ <para>
+ Fix and sort primary key names in DBMetaData (SF bugs 582086
+ and 582086)
+ </para>
+ </listitem>
- - Float types now reported as java.sql.Types.FLOAT (SF bug 579573)
+ <listitem>
+ <para>
+ Float types now reported as java.sql.Types.FLOAT (SF bug
+ 579573)
+ </para>
+ </listitem>
- - ResultSet.getTimestamp() now works for DATE types (SF bug 559134)
+ <listitem>
+ <para>
+ ResultSet.getTimestamp() now works for DATE types (SF bug
+ 559134)
+ </para>
+ </listitem>
- - ResultSet.getDate/Time/Timestamp now recognizes all forms of invalid
- values that have been set to all zeroes by MySQL (SF bug 586058)
+ <listitem>
+ <para>
+ ResultSet.getDate/Time/Timestamp now recognizes all forms of
+ invalid values that have been set to all zeroes by MySQL (SF
+ bug 586058)
+ </para>
+ </listitem>
- - Testsuite now uses Junit (which you can get from www.junit.org)
+ <listitem>
+ <para>
+ Testsuite now uses Junit (which you can get from
+ www.junit.org)
+ </para>
+ </listitem>
- - The driver now only works with JDK-1.2 or newer.
+ <listitem>
+ <para>
+ The driver now only works with JDK-1.2 or newer.
+ </para>
+ </listitem>
- - Added multi-host failover support (see README)
+ <listitem>
+ <para>
+ Added multi-host failover support (see README)
+ </para>
+ </listitem>
- - General source-code cleanup.
+ <listitem>
+ <para>
+ General source-code cleanup.
+ </para>
+ </listitem>
- - Overall speed improvements via controlling transient object
- creation in MysqlIO class when reading packets
+ <listitem>
+ <para>
+ Overall speed improvements via controlling transient object
+ creation in MysqlIO class when reading packets
+ </para>
+ </listitem>
- - Performance improvements in string handling and field
- metadata creation (lazily instantiated) contributed by
- Alex Twisleton-Wykeham-Fiennes
-</programlisting>
+ <listitem>
+ <para>
+ Performance improvements in string handling and field metadata
+ creation (lazily instantiated) contributed by Alex
+ Twisleton-Wykeham-Fiennes
+ </para>
+ </listitem>
+ </itemizedlist>
+
</section>
<section id="cj-news-2-0-14">
<title>&title-cj-news-2-0-14;</title>
-<programlisting>
- - More code cleanup
+ <itemizedlist>
- - PreparedStatement now releases resources on .close() (SF bug 553268)
+ <listitem>
+ <para>
+ More code cleanup
+ </para>
+ </listitem>
- - Quoted identifiers not used if server version does not support them. Also,
- if server started with --ansi or --sql-mode=ANSI_QUOTES then '"' will be
- used as an identifier quote, otherwise '`' will be used.
+ <listitem>
+ <para>
+ PreparedStatement now releases resources on .close() (SF bug
+ 553268)
+ </para>
+ </listitem>
- - ResultSet.getDouble() now uses code built into JDK to be more precise (but slower)
+ <listitem>
+ <para>
+ Quoted identifiers not used if server version does not support
+ them. Also, if server started with --ansi or
+ --sql-mode=ANSI_QUOTES then '"' will be used as an identifier
+ quote, otherwise '`' will be used.
+ </para>
+ </listitem>
- - LogicalHandle.isClosed() calls through to physical connection
+ <listitem>
+ <para>
+ ResultSet.getDouble() now uses code built into JDK to be more
+ precise (but slower)
+ </para>
+ </listitem>
- - Added SQL profiling (to STDERR). Set "profileSql=true" in your JDBC url.
- See README for more information.
+ <listitem>
+ <para>
+ LogicalHandle.isClosed() calls through to physical connection
+ </para>
+ </listitem>
- - Fixed typo for relaxAutoCommit parameter.
-</programlisting>
+ <listitem>
+ <para>
+ Added SQL profiling (to STDERR). Set "profileSql=true" in your
+ JDBC url. See README for more information.
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ Fixed typo for relaxAutoCommit parameter.
+ </para>
+ </listitem>
+
+ </itemizedlist>
+
</section>
<section id="cj-news-2-0-13">
<title>&title-cj-news-2-0-13;</title>
-<programlisting>
- - More code cleanup.
+ <itemizedlist>
- - Fixed unicode chars being read incorrectly (SF bug 541088)
+ <listitem>
+ <para>
+ More code cleanup.
+ </para>
+ </listitem>
- - Faster blob escaping for PrepStmt
+ <listitem>
+ <para>
+ Fixed unicode chars being read incorrectly (SF bug 541088)
+ </para>
+ </listitem>
- - Added set/getPortNumber() to DataSource(s) (SF bug 548167)
+ <listitem>
+ <para>
+ Faster blob escaping for PrepStmt
+ </para>
+ </listitem>
- - Added setURL() to MySQLXADataSource (SF bug 546019)
+ <listitem>
+ <para>
+ Added set/getPortNumber() to DataSource(s) (SF bug 548167)
+ </para>
+ </listitem>
- - PreparedStatement.toString() fixed (SF bug 534026)
+ <listitem>
+ <para>
+ Added setURL() to MySQLXADataSource (SF bug 546019)
+ </para>
+ </listitem>
- - ResultSetMetaData.getColumnClassName() now implemented
+ <listitem>
+ <para>
+ PreparedStatement.toString() fixed (SF bug 534026)
+ </para>
+ </listitem>
- - Rudimentary version of Statement.getGeneratedKeys() from JDBC-3.0
- now implemented (you need to be using JDK-1.4 for this to work, I
- believe)
+ <listitem>
+ <para>
+ ResultSetMetaData.getColumnClassName() now implemented
+ </para>
+ </listitem>
- - DBMetaData.getIndexInfo() - bad PAGES fixed (SF BUG 542201)
-</programlisting>
+ <listitem>
+ <para>
+ Rudimentary version of Statement.getGeneratedKeys() from
+ JDBC-3.0 now implemented (you need to be using JDK-1.4 for
+ this to work, I believe)
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ DBMetaData.getIndexInfo() - bad PAGES fixed (SF BUG 542201)
+ </para>
+ </listitem>
+
+ </itemizedlist>
+
</section>
<section id="cj-news-2-0-12">
<title>&title-cj-news-2-0-12;</title>
-<programlisting>
- - General code cleanup.
+ <itemizedlist>
- - Added getIdleFor() method to Connection and MysqlLogicalHandle.
+ <listitem>
+ <para>
+ General code cleanup.
+ </para>
+ </listitem>
- - Relaxed synchronization in all classes, should fix 520615 and 520393.
+ <listitem>
+ <para>
+ Added getIdleFor() method to Connection and
+ MysqlLogicalHandle.
+ </para>
+ </listitem>
- - Added getTable/ColumnPrivileges() to DBMD (fixes 484502).
+ <listitem>
+ <para>
+ Relaxed synchronization in all classes, should fix 520615 and
+ 520393.
+ </para>
+ </listitem>
- - Added new types to getTypeInfo(), fixed existing types thanks to
- Al Davis and Kid Kalanon.
+ <listitem>
+ <para>
+ Added getTable/ColumnPrivileges() to DBMD (fixes 484502).
+ </para>
+ </listitem>
- - Added support for BIT types (51870) to PreparedStatement.
+ <listitem>
+ <para>
+ Added new types to getTypeInfo(), fixed existing types thanks
+ to Al Davis and Kid Kalanon.
+ </para>
+ </listitem>
- - Fixed getRow() bug (527165) in ResultSet
+ <listitem>
+ <para>
+ Added support for BIT types (51870) to PreparedStatement.
+ </para>
+ </listitem>
- - Fixes for ResultSet updatability in PreparedStatement.
- - Fixed timezone off by 1-hour bug in PreparedStatement (538286, 528785).
+ <listitem>
+ <para>
+ Fixed getRow() bug (527165) in ResultSet
+ </para>
+ </listitem>
- - ResultSet: Fixed updatability (values being set to null
- if not updated).
+ <listitem>
+ <para>
+ Fixes for ResultSet updatability in PreparedStatement.
+ </para>
+ </listitem>
- - DataSources - fixed setUrl bug (511614, 525565),
- wrong datasource class name (532816, 528767)
+ <listitem>
+ <para>
+ Fixed time zone off by 1-hour bug in PreparedStatement
+ (538286, 528785).
+ </para>
+ </listitem>
- - Added identifier quoting to all DatabaseMetaData methods
- that need them (should fix 518108)
+ <listitem>
+ <para>
+ ResultSet: Fixed updatability (values being set to null if not
+ updated).
+ </para>
+ </listitem>
- - Added support for YEAR type (533556)
+ <listitem>
+ <para>
+ DataSources - fixed setUrl bug (511614, 525565), wrong
+ datasource class name (532816, 528767)
+ </para>
+ </listitem>
- - ResultSet.insertRow() should now detect auto_increment fields
- in most cases and use that value in the new row. This detection
- will not work in multi-valued keys, however, due to the fact that
- the MySQL protocol does not return this information.
+ <listitem>
+ <para>
+ Added identifier quoting to all DatabaseMetaData methods that
+ need them (should fix 518108)
+ </para>
+ </listitem>
- - ResultSet.refreshRow() implemented.
+ <listitem>
+ <para>
+ Added support for YEAR type (533556)
+ </para>
+ </listitem>
- - Fixed testsuite.Traversal afterLast() bug, thanks to Igor Lastric.
-</programlisting>
+ <listitem>
+ <para>
+ ResultSet.insertRow() should now detect auto_increment fields
+ in most cases and use that value in the new row. This
+ detection will not work in multi-valued keys, however, due to
+ the fact that the MySQL protocol does not return this
+ information.
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ ResultSet.refreshRow() implemented.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Fixed testsuite.Traversal afterLast() bug, thanks to Igor
+ Lastric.
+ </para>
+ </listitem>
+
+ </itemizedlist>
+
</section>
<section id="cj-news-2-0-11">
<title>&title-cj-news-2-0-11;</title>
-<programlisting>
- - Fixed missing DELETE_RULE value in
- DBMD.getImported/ExportedKeys() and getCrossReference().
+ <itemizedlist>
- - Full synchronization of Statement.java.
+ <listitem>
+ <para>
+ Fixed missing DELETE_RULE value in
+ DBMD.getImported/ExportedKeys() and getCrossReference().
+ </para>
+ </listitem>
- - More changes to fix "Unexpected end of input stream"
- errors when reading BLOBs. This should be the last fix.
-</programlisting>
+ <listitem>
+ <para>
+ Full synchronization of Statement.java.
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ More changes to fix "Unexpected end of input stream" errors
+ when reading BLOBs. This should be the last fix.
+ </para>
+ </listitem>
+
+ </itemizedlist>
+
</section>
<section id="cj-news-2-0-10">
<title>&title-cj-news-2-0-10;</title>
-<programlisting>
- - Fixed spurious "Unexpected end of input stream" errors in
- MysqlIO (bug 507456).
+ <itemizedlist>
- - Fixed null-pointer-exceptions when using
- MysqlConnectionPoolDataSource with Websphere 4 (bug 505839).
-</programlisting>
+ <listitem>
+ <para>
+ Fixed spurious "Unexpected end of input stream" errors in
+ MysqlIO (bug 507456).
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ Fixed null-pointer-exceptions when using
+ MysqlConnectionPoolDataSource with Websphere 4 (bug 505839).
+ </para>
+ </listitem>
+
+ </itemizedlist>
+
</section>
<section id="cj-news-2-0-9">
<title>&title-cj-news-2-0-9;</title>
-<programlisting>
- - Ant build was corrupting included jar files, fixed
- (bug 487669).
+ <itemizedlist>
- - Fixed extra memory allocation in MysqlIO.readPacket()
- (bug 488663).
+ <listitem>
+ <para>
+ Ant build was corrupting included jar files, fixed (bug
+ 487669).
+ </para>
+ </listitem>
- - Implementation of DatabaseMetaData.getExported/ImportedKeys() and
- getCrossReference().
+ <listitem>
+ <para>
+ Fixed extra memory allocation in MysqlIO.readPacket() (bug
+ 488663).
+ </para>
+ </listitem>
- - Full synchronization on methods modifying instance and class-shared
- references, driver should be entirely thread-safe now (please
- let me know if you have problems)
+ <listitem>
+ <para>
+ Implementation of DatabaseMetaData.getExported/ImportedKeys()
+ and getCrossReference().
+ </para>
+ </listitem>
- - DataSource implementations moved to org.gjt.mm.mysql.jdbc2.optional
- package, and (initial) implementations of PooledConnectionDataSource
- and XADataSource are in place (thanks to Todd Wolff for the
- implementation and testing of PooledConnectionDataSource with
- IBM WebSphere 4).
+ <listitem>
+ <para>
+ Full synchronization on methods modifying instance and
+ class-shared references, driver should be entirely thread-safe
+ now (please let me know if you have problems)
+ </para>
+ </listitem>
- - Added detection of network connection being closed when reading packets
- (thanks to Todd Lizambri).
+ <listitem>
+ <para>
+ DataSource implementations moved to
+ org.gjt.mm.mysql.jdbc2.optional package, and (initial)
+ implementations of PooledConnectionDataSource and XADataSource
+ are in place (thanks to Todd Wolff for the implementation and
+ testing of PooledConnectionDataSource with IBM WebSphere 4).
+ </para>
+ </listitem>
- - Fixed quoting error with escape processor (bug 486265).
+ <listitem>
+ <para>
+ Added detection of network connection being closed when
+ reading packets (thanks to Todd Lizambri).
+ </para>
+ </listitem>
- - Report batch update support through DatabaseMetaData (bug 495101).
+ <listitem>
+ <para>
+ Fixed quoting error with escape processor (bug 486265).
+ </para>
+ </listitem>
- - Fixed off-by-one-hour error in PreparedStatement.setTimestamp()
- (bug 491577).
+ <listitem>
+ <para>
+ Report batch update support through DatabaseMetaData (bug
+ 495101).
+ </para>
+ </listitem>
- - Removed concatenation support from driver (the '||' operator),
- as older versions of VisualAge seem to be the only thing that
- use it, and it conflicts with the logical '||' operator. You will
- need to start mysqld with the "--ansi" flag to use the '||'
- operator as concatenation (bug 491680)
+ <listitem>
+ <para>
+ Fixed off-by-one-hour error in
+ PreparedStatement.setTimestamp() (bug 491577).
+ </para>
+ </listitem>
- - Fixed casting bug in PreparedStatement (bug 488663).
-</programlisting>
+ <listitem>
+ <para>
+ Removed concatenation support from driver (the '||' operator),
+ as older versions of VisualAge seem to be the only thing that
+ use it, and it conflicts with the logical '||' operator. You
+ will need to start mysqld with the "--ansi" flag to use the
+ '||' operator as concatenation (bug 491680)
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ Fixed casting bug in PreparedStatement (bug 488663).
+ </para>
+ </listitem>
+
+ </itemizedlist>
+
</section>
<section id="cj-news-2-0-8">
<title>&title-cj-news-2-0-8;</title>
-<programlisting>
- - Batch updates now supported (thanks to some inspiration
- from Daniel Rall).
+ <itemizedlist>
- - XADataSource/ConnectionPoolDataSource code (experimental)
+ <listitem>
+ <para>
+ Batch updates now supported (thanks to some inspiration from
+ Daniel Rall).
+ </para>
+ </listitem>
- - PreparedStatement.setAnyNumericType() now handles positive
- exponents correctly (adds "+" so MySQL can understand it).
+ <listitem>
+ <para>
+ XADataSource/ConnectionPoolDataSource code (experimental)
+ </para>
+ </listitem>
- - DatabaseMetaData.getPrimaryKeys() and getBestRowIdentifier()
- are now more robust in identifying primary keys (matches
- regardless of case or abbreviation/full spelling of Primary Key
- in Key_type column).
-</programlisting>
+ <listitem>
+ <para>
+ PreparedStatement.setAnyNumericType() now handles positive
+ exponents correctly (adds "+" so MySQL can understand it).
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ DatabaseMetaData.getPrimaryKeys() and getBestRowIdentifier()
+ are now more robust in identifying primary keys (matches
+ regardless of case or abbreviation/full spelling of Primary
+ Key in Key_type column).
+ </para>
+ </listitem>
+
+ </itemizedlist>
+
</section>
<section id="cj-news-2-0-7">
<title>&title-cj-news-2-0-7;</title>
-<programlisting>
- - PreparedStatement.setCharacterStream() now implemented
+ <itemizedlist>
- - Fixed dangling socket problem when in high availability
- (autoReconnect=true) mode, and finalizer for Connection will
- close any dangling sockets on GC.
+ <listitem>
+ <para>
+ PreparedStatement.setCharacterStream() now implemented
+ </para>
+ </listitem>
- - Fixed ResultSetMetaData.getPrecision() returning one
- less than actual on newer versions of MySQL.
+ <listitem>
+ <para>
+ Fixed dangling socket problem when in high availability
+ (autoReconnect=true) mode, and finalizer for Connection will
+ close any dangling sockets on GC.
+ </para>
+ </listitem>
- - ResultSet.getBlob() now returns null if column value
- was null.
+ <listitem>
+ <para>
+ Fixed ResultSetMetaData.getPrecision() returning one less than
+ actual on newer versions of MySQL.
+ </para>
+ </listitem>
- - Character sets read from database if useUnicode=true
- and characterEncoding is not set. (thanks to
- Dmitry Vereshchagin)
+ <listitem>
+ <para>
+ ResultSet.getBlob() now returns null if column value was null.
+ </para>
+ </listitem>
- - Initial transaction isolation level read from
- database (if avaialable) (thanks to Dmitry Vereshchagin)
+ <listitem>
+ <para>
+ Character sets read from database if useUnicode=true and
+ characterEncoding is not set. (thanks to Dmitry Vereshchagin)
+ </para>
+ </listitem>
- - Fixed DatabaseMetaData.supportsTransactions(), and
- supportsTransactionIsolationLevel() and getTypeInfo()
- SQL_DATETIME_SUB and SQL_DATA_TYPE fields not being
- readable.
+ <listitem>
+ <para>
+ Initial transaction isolation level read from database (if
+ avaialable) (thanks to Dmitry Vereshchagin)
+ </para>
+ </listitem>
- - Fixed PreparedStatement generating SQL that would end
- up with syntax errors for some queries.
+ <listitem>
+ <para>
+ Fixed DatabaseMetaData.supportsTransactions(), and
+ supportsTransactionIsolationLevel() and getTypeInfo()
+ SQL_DATETIME_SUB and SQL_DATA_TYPE fields not being readable.
+ </para>
+ </listitem>
- - Fixed ResultSet.isAfterLast() always returning false.
+ <listitem>
+ <para>
+ Fixed PreparedStatement generating SQL that would end up with
+ syntax errors for some queries.
+ </para>
+ </listitem>
- - Fixed timezone issue in PreparedStatement.setTimestamp()
- (thanks to Erik Olofsson)
+ <listitem>
+ <para>
+ Fixed ResultSet.isAfterLast() always returning false.
+ </para>
+ </listitem>
- - Captialize type names when "captializeTypeNames=true"
- is passed in URL or properties (for WebObjects, thanks
- to Anjo Krank)
+ <listitem>
+ <para>
+ Fixed time zone issue in PreparedStatement.setTimestamp()
+ (thanks to Erik Olofsson)
+ </para>
+ </listitem>
- - Updatable result sets now correctly handle NULL
- values in fields.
+ <listitem>
+ <para>
+ Captialize type names when "captializeTypeNames=true" is
+ passed in URL or properties (for WebObjects, thanks to Anjo
+ Krank)
+ </para>
+ </listitem>
- - PreparedStatement.setDouble() now uses full-precision
- doubles (reverting a fix made earlier to truncate them).
+ <listitem>
+ <para>
+ Updatable result sets now correctly handle NULL values in
+ fields.
+ </para>
+ </listitem>
- - PreparedStatement.setBoolean() will use 1/0 for values
- if your MySQL version is 3.21.23 or higher.
-</programlisting>
+ <listitem>
+ <para>
+ PreparedStatement.setDouble() now uses full-precision doubles
+ (reverting a fix made earlier to truncate them).
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ PreparedStatement.setBoolean() will use 1/0 for values if your
+ MySQL version is 3.21.23 or higher.
+ </para>
+ </listitem>
+
+ </itemizedlist>
+
</section>
<section id="cj-news-2-0-6">
<title>&title-cj-news-2-0-6;</title>
-<programlisting>
- - Fixed PreparedStatement parameter checking
+ <itemizedlist>
- - Fixed case-sensitive column names in ResultSet.java
-</programlisting>
+ <listitem>
+ <para>
+ Fixed PreparedStatement parameter checking
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ Fixed case-sensitive column names in ResultSet.java
+ </para>
+ </listitem>
+
+ </itemizedlist>
+
</section>
<section id="cj-news-2-0-5">
<title>&title-cj-news-2-0-5;</title>
-<programlisting>
- - Fixed ResultSet.getBlob() ArrayIndex out-of-bounds
+ <itemizedlist>
- - Fixed ResultSetMetaData.getColumnTypeName for TEXT/BLOB
+ <listitem>
+ <para>
+ Fixed ResultSet.getBlob() ArrayIndex out-of-bounds
+ </para>
+ </listitem>
- - Fixed ArrayIndexOutOfBounds when sending large BLOB queries
- (Max size packet was not being set)
+ <listitem>
+ <para>
+ Fixed ResultSetMetaData.getColumnTypeName for TEXT/BLOB
+ </para>
+ </listitem>
- - Added ISOLATION level support to Connection.setIsolationLevel()
+ <listitem>
+ <para>
+ Fixed ArrayIndexOutOfBounds when sending large BLOB queries
+ (Max size packet was not being set)
+ </para>
+ </listitem>
- - Fixed NPE on PreparedStatement.executeUpdate() when all columns
- have not been set.
+ <listitem>
+ <para>
+ Added ISOLATION level support to
+ Connection.setIsolationLevel()
+ </para>
+ </listitem>
- - Fixed data parsing of TIMESTAMPs with 2-digit years
+ <listitem>
+ <para>
+ Fixed NPE on PreparedStatement.executeUpdate() when all
+ columns have not been set.
+ </para>
+ </listitem>
- - Added Byte to PreparedStatement.setObject()
+ <listitem>
+ <para>
+ Fixed data parsing of TIMESTAMPs with 2-digit years
+ </para>
+ </listitem>
- - ResultSet.getBoolean() now recognizes '-1' as 'true'
+ <listitem>
+ <para>
+ Added Byte to PreparedStatement.setObject()
+ </para>
+ </listitem>
- - ResultSet has +/-Inf/inf support
+ <listitem>
+ <para>
+ ResultSet.getBoolean() now recognizes '-1' as 'true'
+ </para>
+ </listitem>
- - ResultSet.insertRow() works now, even if not all columns are
- set (they will be set to "NULL")
+ <listitem>
+ <para>
+ ResultSet has +/-Inf/inf support
+ </para>
+ </listitem>
- - DataBaseMetaData.getCrossReference() no longer ArrayIndexOOB
+ <listitem>
+ <para>
+ ResultSet.insertRow() works now, even if not all columns are
+ set (they will be set to "NULL")
+ </para>
+ </listitem>
- - getObject() on ResultSet correctly does TINYINT->Byte and
- SMALLINT->Short
-</programlisting>
+ <listitem>
+ <para>
+ DataBaseMetaData.getCrossReference() no longer ArrayIndexOOB
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ getObject() on ResultSet correctly does TINYINT->Byte and
+ SMALLINT->Short
+ </para>
+ </listitem>
+
+ </itemizedlist>
+
</section>
<section id="cj-news-2-0-3">
<title>&title-cj-news-2-0-3;</title>
-<programlisting>
- - Implemented getBigDecimal() without scale component
- for JDBC2.
+ <itemizedlist>
- - Fixed composite key problem with updatable result sets.
+ <listitem>
+ <para>
+ Implemented getBigDecimal() without scale component for JDBC2.
+ </para>
+ </listitem>
- - Added detection of -/+INF for doubles.
+ <listitem>
+ <para>
+ Fixed composite key problem with updatable result sets.
+ </para>
+ </listitem>
- - Faster ASCII string operations.
+ <listitem>
+ <para>
+ Added detection of -/+INF for doubles.
+ </para>
+ </listitem>
- - Fixed incorrect detection of MAX_ALLOWED_PACKET, so sending
- large blobs should work now.
+ <listitem>
+ <para>
+ Faster ASCII string operations.
+ </para>
+ </listitem>
- - Fixed off-by-one error in java.sql.Blob implementation code.
+ <listitem>
+ <para>
+ Fixed incorrect detection of MAX_ALLOWED_PACKET, so sending
+ large blobs should work now.
+ </para>
+ </listitem>
- - Added "ultraDevHack" URL parameter, set to "true" to allow
- (broken) Macromedia UltraDev to use the driver.
-</programlisting>
+ <listitem>
+ <para>
+ Fixed off-by-one error in java.sql.Blob implementation code.
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ Added "ultraDevHack" URL parameter, set to "true" to allow
+ (broken) Macromedia UltraDev to use the driver.
+ </para>
+ </listitem>
+
+ </itemizedlist>
+
</section>
<section id="cj-news-2-0-1">
<title>&title-cj-news-2-0-1;</title>
-<programlisting>
- - Fixed RSMD.isWritable() returning wrong value.
- Thanks to Moritz Maass.
+ <itemizedlist>
- - Cleaned up exception handling when driver connects
+ <listitem>
+ <para>
+ Fixed RSMD.isWritable() returning wrong value. Thanks to
+ Moritz Maass.
+ </para>
+ </listitem>
- - Columns that are of type TEXT now return as Strings
- when you use getObject()
+ <listitem>
+ <para>
+ Cleaned up exception handling when driver connects
+ </para>
+ </listitem>
- - DatabaseMetaData.getPrimaryKeys() now works correctly wrt
- to key_seq. Thanks to Brian Slesinsky.
+ <listitem>
+ <para>
+ Columns that are of type TEXT now return as Strings when you
+ use getObject()
+ </para>
+ </listitem>
- - No escape processing is done on PreparedStatements anymore
- per JDBC spec.
+ <listitem>
+ <para>
+ DatabaseMetaData.getPrimaryKeys() now works correctly wrt to
+ key_seq. Thanks to Brian Slesinsky.
+ </para>
+ </listitem>
- - Fixed many JDBC-2.0 traversal, positioning bugs, especially
- wrt to empty result sets. Thanks to Ron Smits, Nick Brook,
- Cessar Garcia and Carlos Martinez.
+ <listitem>
+ <para>
+ No escape processing is done on PreparedStatements anymore per
+ JDBC spec.
+ </para>
+ </listitem>
- - Fixed some issues with updatability support in ResultSet when
- using multiple primary keys.
-</programlisting>
+ <listitem>
+ <para>
+ Fixed many JDBC-2.0 traversal, positioning bugs, especially
+ wrt to empty result sets. Thanks to Ron Smits, Nick Brook,
+ Cessar Garcia and Carlos Martinez.
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ Fixed some issues with updatability support in ResultSet when
+ using multiple primary keys.
+ </para>
+ </listitem>
+
+ </itemizedlist>
+
</section>
<section id="cj-news-2-0pre5">
<title>&title-cj-news-2-0pre5;</title>
-<programlisting>
- - Fixed Bad Handshake problem.
-</programlisting>
+ <itemizedlist>
+ <listitem>
+ <para>
+ Fixed Bad Handshake problem.
+ </para>
+ </listitem>
+
+ </itemizedlist>
+
</section>
<section id="cj-news-2-0pre4">
<title>&title-cj-news-2-0pre4;</title>
-<programlisting>
- - Fixes to ResultSet for insertRow() - Thanks to
- Cesar Garcia
+ <itemizedlist>
- - Fix to Driver to recognize JDBC-2.0 by loading a JDBC-2.0
- class, instead of relying on JDK version numbers. Thanks
- to John Baker.
+ <listitem>
+ <para>
+ Fixes to ResultSet for insertRow() - Thanks to Cesar Garcia
+ </para>
+ </listitem>
- - Fixed ResultSet to return correct row numbers
+ <listitem>
+ <para>
+ Fix to Driver to recognize JDBC-2.0 by loading a JDBC-2.0
+ class, instead of relying on JDK version numbers. Thanks to
+ John Baker.
+ </para>
+ </listitem>
- - Statement.getUpdateCount() now returns rows matched,
- instead of rows actually updated, which is more SQL-92
- like.
-</programlisting>
+ <listitem>
+ <para>
+ Fixed ResultSet to return correct row numbers
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ Statement.getUpdateCount() now returns rows matched, instead
+ of rows actually updated, which is more SQL-92 like.
+ </para>
+ </listitem>
+
+ </itemizedlist>
+
<para>
10-29-99
</para>
-<programlisting>
- - Statement/PreparedStatement.getMoreResults() bug fixed.
- Thanks to Noel J. Bergman.
+ <itemizedlist>
- - Added Short as a type to PreparedStatement.setObject().
- Thanks to Jeff Crowder
+ <listitem>
+ <para>
+ Statement/PreparedStatement.getMoreResults() bug fixed. Thanks
+ to Noel J. Bergman.
+ </para>
+ </listitem>
- - Driver now automagically configures maximum/preferred packet
- sizes by querying server.
+ <listitem>
+ <para>
+ Added Short as a type to PreparedStatement.setObject(). Thanks
+ to Jeff Crowder
+ </para>
+ </listitem>
- - Autoreconnect code uses fast ping command if server supports
- it.
+ <listitem>
+ <para>
+ Driver now automagically configures maximum/preferred packet
+ sizes by querying server.
+ </para>
+ </listitem>
- - Fixed various bugs wrt. to packet sizing when reading from
- the server and when alloc'ing to write to the server.
-</programlisting>
+ <listitem>
+ <para>
+ Autoreconnect code uses fast ping command if server supports
+ it.
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ Fixed various bugs wrt. to packet sizing when reading from the
+ server and when alloc'ing to write to the server.
+ </para>
+ </listitem>
+
+ </itemizedlist>
+
</section>
<section id="cj-news-2-0pre">
<title>&title-cj-news-2-0pre;</title>
-<programlisting>
- - Now compiles under JDK-1.2. The driver supports both JDK-1.1
- and JDK-1.2 at the same time through a core set of classes.
- The driver will load the appropriate interface classes at
- runtime by figuring out which JVM version you are using.
+ <itemizedlist>
- - Fixes for result sets with all nulls in the first row.
- (Pointed out by Tim Endres)
+ <listitem>
+ <para>
+ Now compiles under JDK-1.2. The driver supports both JDK-1.1
+ and JDK-1.2 at the same time through a core set of classes.
+ The driver will load the appropriate interface classes at
+ runtime by figuring out which JVM version you are using.
+ </para>
+ </listitem>
- - Fixes to column numbers in SQLExceptions in ResultSet
- (Thanks to Blas Rodriguez Somoza)
+ <listitem>
+ <para>
+ Fixes for result sets with all nulls in the first row.
+ (Pointed out by Tim Endres)
+ </para>
+ </listitem>
- - The database no longer needs to specified to connect.
- (Thanks to Christian Motschke)
-</programlisting>
+ <listitem>
+ <para>
+ Fixes to column numbers in SQLExceptions in ResultSet (Thanks
+ to Blas Rodriguez Somoza)
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ The database no longer needs to specified to connect. (Thanks
+ to Christian Motschke)
+ </para>
+ </listitem>
+
+ </itemizedlist>
+
</section>
<section id="cj-news-1-2b">
<title>&title-cj-news-1-2b;</title>
-<programlisting>
- - Better Documentation (in progress), in doc/mm.doc/book1.html
+ <itemizedlist>
- - DBMD now allows null for a column name pattern (not in
- spec), which it changes to '%'.
+ <listitem>
+ <para>
+ Better Documentation (in progress), in doc/mm.doc/book1.html
+ </para>
+ </listitem>
- - DBMD now has correct types/lengths for getXXX().
+ <listitem>
+ <para>
+ DBMD now allows null for a column name pattern (not in spec),
+ which it changes to '%'.
+ </para>
+ </listitem>
- - ResultSet.getDate(), getTime(), and getTimestamp() fixes.
- (contributed by Alan Wilken)
+ <listitem>
+ <para>
+ DBMD now has correct types/lengths for getXXX().
+ </para>
+ </listitem>
- - EscapeProcessor now handles \{ \} and { or } inside quotes
- correctly. (thanks to Alik for some ideas on how to fix it)
+ <listitem>
+ <para>
+ ResultSet.getDate(), getTime(), and getTimestamp() fixes.
+ (contributed by Alan Wilken)
+ </para>
+ </listitem>
- - Fixes to properties handling in Connection.
- (contributed by Juho Tikkala)
+ <listitem>
+ <para>
+ EscapeProcessor now handles \{ \} and { or } inside quotes
+ correctly. (thanks to Alik for some ideas on how to fix it)
+ </para>
+ </listitem>
- - ResultSet.getObject() now returns null for NULL columns
- in the table, rather than bombing out.
- (thanks to Ben Grosman)
+ <listitem>
+ <para>
+ Fixes to properties handling in Connection. (contributed by
+ Juho Tikkala)
+ </para>
+ </listitem>
- - ResultSet.getObject() now returns Strings for types
- from MySQL that it doesn't know about. (Suggested by
- Chris Perdue)
+ <listitem>
+ <para>
+ ResultSet.getObject() now returns null for NULL columns in the
+ table, rather than bombing out. (thanks to Ben Grosman)
+ </para>
+ </listitem>
- - Removed DataInput/Output streams, not needed, 1/2 number
- of method calls per IO operation.
+ <listitem>
+ <para>
+ ResultSet.getObject() now returns Strings for types from MySQL
+ that it doesn't know about. (Suggested by Chris Perdue)
+ </para>
+ </listitem>
- - Use default character encoding if one is not specified. This
- is a work-around for broken JVMs, because according to spec,
- EVERY JVM must support "ISO8859_1", but they don't.
+ <listitem>
+ <para>
+ Removed DataInput/Output streams, not needed, 1/2 number of
+ method calls per IO operation.
+ </para>
+ </listitem>
- - Fixed Connection to use the platform character encoding
- instead of "ISO8859_1" if one isn't explicitly set. This
- fixes problems people were having loading the character-
- converter classes that didn't always exist (JVM bug).
- (thanks to Fritz Elfert for pointing out this problem)
+ <listitem>
+ <para>
+ Use default character encoding if one is not specified. This
+ is a work-around for broken JVMs, because according to spec,
+ EVERY JVM must support "ISO8859_1", but they don't.
+ </para>
+ </listitem>
- - Changed MysqlIO to re-use packets where possible to reduce
- memory usage.
+ <listitem>
+ <para>
+ Fixed Connection to use the platform character encoding
+ instead of "ISO8859_1" if one isn't explicitly set. This fixes
+ problems people were having loading the character- converter
+ classes that didn't always exist (JVM bug). (thanks to Fritz
+ Elfert for pointing out this problem)
+ </para>
+ </listitem>
- - Fixed escape-processor bugs pertaining to {} inside
- quotes.
-</programlisting>
+ <listitem>
+ <para>
+ Changed MysqlIO to re-use packets where possible to reduce
+ memory usage.
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ Fixed escape-processor bugs pertaining to {} inside quotes.
+ </para>
+ </listitem>
+
+ </itemizedlist>
+
</section>
<section id="cj-news-1-2a">
<title>&title-cj-news-1-2a;</title>
-<programlisting>
- - Fixed character-set support for non-Javasoft JVMs
- (thanks to many people for pointing it out)
+ <itemizedlist>
- - Fixed ResultSet.getBoolean() to recognize 'y' & 'n'
- as well as '1' & '0' as boolean flags.
- (thanks to Tim Pizey)
+ <listitem>
+ <para>
+ Fixed character-set support for non-Javasoft JVMs (thanks to
+ many people for pointing it out)
+ </para>
+ </listitem>
- - Fixed ResultSet.getTimestamp() to give better performance.
- (thanks to Richard Swift)
+ <listitem>
+ <para>
+ Fixed ResultSet.getBoolean() to recognize 'y' & 'n' as
+ well as '1' & '0' as boolean flags. (thanks to Tim Pizey)
+ </para>
+ </listitem>
- - Fixed getByte() for numeric types.
- (thanks to Ray Bellis)
+ <listitem>
+ <para>
+ Fixed ResultSet.getTimestamp() to give better performance.
+ (thanks to Richard Swift)
+ </para>
+ </listitem>
- - Fixed DatabaseMetaData.getTypeInfo() for DATE type.
- (thanks to Paul Johnston)
+ <listitem>
+ <para>
+ Fixed getByte() for numeric types. (thanks to Ray Bellis)
+ </para>
+ </listitem>
- - Fixed EscapeProcessor for "fn" calls.
- (thanks to Piyush Shah at locomotive.org)
+ <listitem>
+ <para>
+ Fixed DatabaseMetaData.getTypeInfo() for DATE type. (thanks to
+ Paul Johnston)
+ </para>
+ </listitem>
- - Fixed EscapeProcessor to not do extraneous work if there
- are no escape codes.
- (thanks to Ryan Gustafson)
+ <listitem>
+ <para>
+ Fixed EscapeProcessor for "fn" calls. (thanks to Piyush Shah
+ at locomotive.org)
+ </para>
+ </listitem>
- - Fixed Driver to parse URLs of the form "jdbc:mysql://host:port"
- (thanks to Richard Lobb)
-</programlisting>
+ <listitem>
+ <para>
+ Fixed EscapeProcessor to not do extraneous work if there are
+ no escape codes. (thanks to Ryan Gustafson)
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ Fixed Driver to parse URLs of the form
+ "jdbc:mysql://host:port" (thanks to Richard Lobb)
+ </para>
+ </listitem>
+
+ </itemizedlist>
+
</section>
<section id="cj-news-1-1i">
<title>&title-cj-news-1-1i;</title>
-<programlisting>
- - Fixed Timestamps for PreparedStatements
+ <itemizedlist>
- - Fixed null pointer exceptions in RSMD and RS
+ <listitem>
+ <para>
+ Fixed Timestamps for PreparedStatements
+ </para>
+ </listitem>
- - Re-compiled with jikes for valid class files (thanks ms!)
-</programlisting>
+ <listitem>
+ <para>
+ Fixed null pointer exceptions in RSMD and RS
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ Re-compiled with jikes for valid class files (thanks ms!)
+ </para>
+ </listitem>
+
+ </itemizedlist>
+
</section>
<section id="cj-news-1-1h">
<title>&title-cj-news-1-1h;</title>
-<programlisting>
- - Fixed escape processor to deal with un-matched { and }
- (thanks to Craig Coles)
+ <itemizedlist>
- - Fixed escape processor to create more portable (between
- DATETIME and TIMESTAMP types) representations so that
- it will work with BETWEEN clauses.
- (thanks to Craig Longman)
+ <listitem>
+ <para>
+ Fixed escape processor to deal with un-matched { and } (thanks
+ to Craig Coles)
+ </para>
+ </listitem>
- - MysqlIO.quit() now closes the socket connection. Before,
- after many failed connections some OS's would run out
- of file descriptors. (thanks to Michael Brinkman)
+ <listitem>
+ <para>
+ Fixed escape processor to create more portable (between
+ DATETIME and TIMESTAMP types) representations so that it will
+ work with BETWEEN clauses. (thanks to Craig Longman)
+ </para>
+ </listitem>
- - Fixed NullPointerException in Driver.getPropertyInfo.
- (thanks to Dave Potts)
+ <listitem>
+ <para>
+ MysqlIO.quit() now closes the socket connection. Before, after
+ many failed connections some OS's would run out of file
+ descriptors. (thanks to Michael Brinkman)
+ </para>
+ </listitem>
- - Fixes to MysqlDefs to allow all *text fields to be
- retrieved as Strings.
- (thanks to Chris at Leverage)
+ <listitem>
+ <para>
+ Fixed NullPointerException in Driver.getPropertyInfo. (thanks
+ to Dave Potts)
+ </para>
+ </listitem>
- - Fixed setDouble in PreparedStatement for large numbers
- to avoid sending scientific notation to the database.
- (thanks to J.S. Ferguson)
+ <listitem>
+ <para>
+ Fixes to MysqlDefs to allow all *text fields to be retrieved
+ as Strings. (thanks to Chris at Leverage)
+ </para>
+ </listitem>
- - Fixed getScale() and getPrecision() in RSMD.
- (contrib'd by James Klicman)
+ <listitem>
+ <para>
+ Fixed setDouble in PreparedStatement for large numbers to
+ avoid sending scientific notation to the database. (thanks to
+ J.S. Ferguson)
+ </para>
+ </listitem>
- - Fixed getObject() when field was DECIMAL or NUMERIC
- (thanks to Bert Hobbs)
+ <listitem>
+ <para>
+ Fixed getScale() and getPrecision() in RSMD. (contrib'd by
+ James Klicman)
+ </para>
+ </listitem>
- - DBMD.getTables() bombed when passed a null table-name
- pattern. Fixed. (thanks to Richard Lobb)
+ <listitem>
+ <para>
+ Fixed getObject() when field was DECIMAL or NUMERIC (thanks to
+ Bert Hobbs)
+ </para>
+ </listitem>
- - Added check for "client not authorized" errors during
- connect. (thanks to Hannes Wallnoefer)
-</programlisting>
+ <listitem>
+ <para>
+ DBMD.getTables() bombed when passed a null table-name pattern.
+ Fixed. (thanks to Richard Lobb)
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ Added check for "client not authorized" errors during connect.
+ (thanks to Hannes Wallnoefer)
+ </para>
+ </listitem>
+
+ </itemizedlist>
+
</section>
<section id="cj-news-1-1g">
<title>&title-cj-news-1-1g;</title>
-<programlisting>
- - Result set rows are now byte arrays. Blobs and Unicode
- work bidriectonally now. The useUnicode and encoding
- options are implemented now.
+ <itemizedlist>
- - Fixes to PreparedStatement to send binary set by
- setXXXStream to be sent un-touched to the MySQL server.
+ <listitem>
+ <para>
+ Result set rows are now byte arrays. Blobs and Unicode work
+ bidriectonally now. The useUnicode and encoding options are
+ implemented now.
+ </para>
+ </listitem>
- - Fixes to getDriverPropertyInfo().
-</programlisting>
+ <listitem>
+ <para>
+ Fixes to PreparedStatement to send binary set by setXXXStream
+ to be sent un-touched to the MySQL server.
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ Fixes to getDriverPropertyInfo().
+ </para>
+ </listitem>
+
+ </itemizedlist>
+
</section>
<section id="cj-news-1-1f">
<title>&title-cj-news-1-1f;</title>
-<programlisting>
- - Changed all ResultSet fields to Strings, this should allow
- Unicode to work, but your JVM must be able to convert
- between the character sets. This should also make reading
- data from the server be a bit quicker, because there is now
- no conversion from StringBuffer to String.
+ <itemizedlist>
- - Changed PreparedStatement.streamToString() to be more
- efficient (code from Uwe Schaefer).
+ <listitem>
+ <para>
+ Changed all ResultSet fields to Strings, this should allow
+ Unicode to work, but your JVM must be able to convert between
+ the character sets. This should also make reading data from
+ the server be a bit quicker, because there is now no
+ conversion from StringBuffer to String.
+ </para>
+ </listitem>
- - URL parsing is more robust (throws SQL exceptions on errors
- rather than NullPointerExceptions)
+ <listitem>
+ <para>
+ Changed PreparedStatement.streamToString() to be more
+ efficient (code from Uwe Schaefer).
+ </para>
+ </listitem>
- - PreparedStatement now can convert Strings to Time/Date values
- via setObject() (code from Robert Currey).
+ <listitem>
+ <para>
+ URL parsing is more robust (throws SQL exceptions on errors
+ rather than NullPointerExceptions)
+ </para>
+ </listitem>
- - IO no longer hangs in Buffer.readInt(), that bug was
- introduced in 1.1d when changing to all byte-arrays for
- result sets. (Pointed out by Samo Login)
-</programlisting>
+ <listitem>
+ <para>
+ PreparedStatement now can convert Strings to Time/Date values
+ via setObject() (code from Robert Currey).
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ IO no longer hangs in Buffer.readInt(), that bug was
+ introduced in 1.1d when changing to all byte-arrays for result
+ sets. (Pointed out by Samo Login)
+ </para>
+ </listitem>
+
+ </itemizedlist>
+
</section>
<section id="cj-news-1-1b">
<title>&title-cj-news-1-1b;</title>
-<programlisting>
- - Fixes to DatabaseMetaData to allow both IBM VA and J-Builder
- to work. Let me know how it goes. (thanks to Jac Kersing)
+ <itemizedlist>
- - Fix to ResultSet.getBoolean() for NULL strings
- (thanks to Barry Lagerweij)
+ <listitem>
+ <para>
+ Fixes to DatabaseMetaData to allow both IBM VA and J-Builder
+ to work. Let me know how it goes. (thanks to Jac Kersing)
+ </para>
+ </listitem>
- - Beginning of code cleanup, and formatting. Getting ready
- to branch this off to a parallel JDBC-2.0 source tree.
+ <listitem>
+ <para>
+ Fix to ResultSet.getBoolean() for NULL strings (thanks to
+ Barry Lagerweij)
+ </para>
+ </listitem>
- - Added "final" modifier to critical sections in MysqlIO and
- Buffer to allow compiler to inline methods for speed.
-</programlisting>
+ <listitem>
+ <para>
+ Beginning of code cleanup, and formatting. Getting ready to
+ branch this off to a parallel JDBC-2.0 source tree.
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ Added "final" modifier to critical sections in MysqlIO and
+ Buffer to allow compiler to inline methods for speed.
+ </para>
+ </listitem>
+
+ </itemizedlist>
+
<para>
9-29-98
</para>
-<programlisting>
- - If object references passed to setXXX() in PreparedStatement are
- null, setNull() is automatically called for you. (Thanks for the
- suggestion goes to Erik Ostrom)
+ <itemizedlist>
- - setObject() in PreparedStatement will now attempt to write a
- serialized representation of the object to the database for
- objects of Types.OTHER and objects of unknown type.
+ <listitem>
+ <para>
+ If object references passed to setXXX() in PreparedStatement
+ are null, setNull() is automatically called for you. (Thanks
+ for the suggestion goes to Erik Ostrom)
+ </para>
+ </listitem>
- - Util now has a static method readObject() which given a ResultSet
- and a column index will re-instantiate an object serialized in
- the above manner.
-</programlisting>
+ <listitem>
+ <para>
+ setObject() in PreparedStatement will now attempt to write a
+ serialized representation of the object to the database for
+ objects of Types.OTHER and objects of unknown type.
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ Util now has a static method readObject() which given a
+ ResultSet and a column index will re-instantiate an object
+ serialized in the above manner.
+ </para>
+ </listitem>
+
+ </itemizedlist>
+
</section>
<section id="cj-news-1-1">
<title>&title-cj-news-1-1;</title>
-<programlisting>
- - Got rid of "ugly hack" in MysqlIO.nextRow(). Rather than
- catch an exception, Buffer.isLastDataPacket() was fixed.
+ <itemizedlist>
- - Connection.getCatalog() and Connection.setCatalog()
- should work now.
+ <listitem>
+ <para>
+ Got rid of "ugly hack" in MysqlIO.nextRow(). Rather than catch
+ an exception, Buffer.isLastDataPacket() was fixed.
+ </para>
+ </listitem>
- - Statement.setMaxRows() works, as well as setting
- by property maxRows. Statement.setMaxRows() overrides
- maxRows set via properties or url parameters.
+ <listitem>
+ <para>
+ Connection.getCatalog() and Connection.setCatalog() should
+ work now.
+ </para>
+ </listitem>
- - Automatic re-connection is available. Because it has
- to "ping" the database before each query, it is
- turned off by default. To use it, pass in "autoReconnect=true"
- in the connection URL. You may also change the number of
- reconnect tries, and the initial timeout value via
- "maxReconnects=n" (default 3) and "initialTimeout=n"
- (seconds, default 2) parameters. The timeout is an
- exponential backoff type of timeout, e.g. if you have initial
- timeout of 2 seconds, and maxReconnects of 3, then the driver
- will timeout 2 seconds, 4 seconds, then 16 seconds between each
- re-connection attempt.
-</programlisting>
+ <listitem>
+ <para>
+ Statement.setMaxRows() works, as well as setting by property
+ maxRows. Statement.setMaxRows() overrides maxRows set via
+ properties or url parameters.
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ Automatic re-connection is available. Because it has to "ping"
+ the database before each query, it is turned off by default.
+ To use it, pass in "autoReconnect=true" in the connection URL.
+ You may also change the number of reconnect tries, and the
+ initial timeout value via "maxReconnects=n" (default 3) and
+ "initialTimeout=n" (seconds, default 2) parameters. The
+ timeout is an exponential backoff type of timeout, e.g. if you
+ have initial timeout of 2 seconds, and maxReconnects of 3,
+ then the driver will timeout 2 seconds, 4 seconds, then 16
+ seconds between each re-connection attempt.
+ </para>
+ </listitem>
+
+ </itemizedlist>
+
</section>
<section id="cj-news-1-0">
<title>&title-cj-news-1-0;</title>
-<programlisting>
- - Fixed handling of blob data in Buffer.java
+ <itemizedlist>
- - Fixed bug with authentication packet being
- sized too small.
+ <listitem>
+ <para>
+ Fixed handling of blob data in Buffer.java
+ </para>
+ </listitem>
- - The JDBC Driver is now under the LPGL
-</programlisting>
+ <listitem>
+ <para>
+ Fixed bug with authentication packet being sized too small.
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ The JDBC Driver is now under the LPGL
+ </para>
+ </listitem>
+
+ </itemizedlist>
+
<para>
8-14-98
</para>
-<programlisting>
- - Fixed Buffer.readLenString() to correctly
- read data for BLOBS.
+ <itemizedlist>
- - Fixed PreparedStatement.stringToStream to
- correctly read data for BLOBS.
+ <listitem>
+ <para>
+ Fixed Buffer.readLenString() to correctly read data for BLOBS.
+ </para>
+ </listitem>
- - Fixed PreparedStatement.setDate() to not
- add a day.
- (above fixes thanks to Vincent Partington)
+ <listitem>
+ <para>
+ Fixed PreparedStatement.stringToStream to correctly read data
+ for BLOBS.
+ </para>
+ </listitem>
- - Added URL parameter parsing (?user=... and so forth).
-</programlisting>
+ <listitem>
+ <para>
+ Fixed PreparedStatement.setDate() to not add a day. (above
+ fixes thanks to Vincent Partington)
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ Added URL parameter parsing (?user=... and so forth).
+ </para>
+ </listitem>
+
+ </itemizedlist>
+
</section>
<section id="cj-news-0-9d">
<title>&title-cj-news-0-9d;</title>
-<programlisting>
- - Big news! New package name. Tim Endres from ICE
- Engineering is starting a new source tree for
- GNU GPL'd Java software. He's graciously given
- me the org.gjt.mm package directory to use, so now
- the driver is in the org.gjt.mm.mysql package scheme.
- I'm "legal" now. Look for more information on Tim's
- project soon.
+ <itemizedlist>
- - Now using dynamically sized packets to reduce
- memory usage when sending commands to the DB.
+ <listitem>
+ <para>
+ Big news! New package name. Tim Endres from ICE Engineering is
+ starting a new source tree for GNU GPL'd Java software. He's
+ graciously given me the org.gjt.mm package directory to use,
+ so now the driver is in the org.gjt.mm.mysql package scheme.
+ I'm "legal" now. Look for more information on Tim's project
+ soon.
+ </para>
+ </listitem>
- - Small fixes to getTypeInfo() for parameters, and so forth.
+ <listitem>
+ <para>
+ Now using dynamically sized packets to reduce memory usage
+ when sending commands to the DB.
+ </para>
+ </listitem>
- - DatabaseMetaData is now fully implemented. Let me
- know if these drivers work with the various IDEs
- out there. I've heard that they're working with
- JBuilder right now.
+ <listitem>
+ <para>
+ Small fixes to getTypeInfo() for parameters, and so forth.
+ </para>
+ </listitem>
- - Added JavaDoc documentation to the package.
+ <listitem>
+ <para>
+ DatabaseMetaData is now fully implemented. Let me know if
+ these drivers work with the various IDEs out there. I've heard
+ that they're working with JBuilder right now.
+ </para>
+ </listitem>
- - Package now available in .zip or .tar.gz.
-</programlisting>
+ <listitem>
+ <para>
+ Added JavaDoc documentation to the package.
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ Package now available in .zip or .tar.gz.
+ </para>
+ </listitem>
+
+ </itemizedlist>
+
</section>
<section id="cj-news-0-9">
<title>&title-cj-news-0-9;</title>
-<programlisting>
- - Implemented getTypeInfo().
- Connection.rollback() now throws an SQLException
- per the JDBC spec.
+ <itemizedlist>
- - Added PreparedStatement that supports all JDBC API
- methods for PreparedStatement including InputStreams.
- Please check this out and let me know if anything is
- broken.
+ <listitem>
+ <para>
+ Implemented getTypeInfo(). Connection.rollback() now throws an
+ SQLException per the JDBC spec.
+ </para>
+ </listitem>
- - Fixed a bug in ResultSet that would break some
- queries that only returned 1 row.
+ <listitem>
+ <para>
+ Added PreparedStatement that supports all JDBC API methods for
+ PreparedStatement including InputStreams. Please check this
+ out and let me know if anything is broken.
+ </para>
+ </listitem>
- - Fixed bugs in DatabaseMetaData.getTables(),
- DatabaseMetaData.getColumns() and
- DatabaseMetaData.getCatalogs().
+ <listitem>
+ <para>
+ Fixed a bug in ResultSet that would break some queries that
+ only returned 1 row.
+ </para>
+ </listitem>
- - Added functionality to Statement that allows
- executeUpdate() to store values for IDs that are
- automatically generated for AUTO_INCREMENT fields.
- Basically, after an executeUpdate(), look at the
- SQLWarnings for warnings like "LAST_INSERTED_ID =
- 'some number', COMMAND = 'your SQL query'".
+ <listitem>
+ <para>
+ Fixed bugs in DatabaseMetaData.getTables(),
+ DatabaseMetaData.getColumns() and
+ DatabaseMetaData.getCatalogs().
+ </para>
+ </listitem>
- If you are using AUTO_INCREMENT fields in your
- tables and are executing a lot of executeUpdate()s
- on one Statement, be sure to clearWarnings() every
- so often to save memory.
-</programlisting>
+ <listitem>
+ <para>
+ Added functionality to Statement that allows executeUpdate()
+ to store values for IDs that are automatically generated for
+ AUTO_INCREMENT fields. Basically, after an executeUpdate(),
+ look at the SQLWarnings for warnings like "LAST_INSERTED_ID =
+ 'some number', COMMAND = 'your SQL query'". If you are using
+ AUTO_INCREMENT fields in your tables and are executing a lot
+ of executeUpdate()s on one Statement, be sure to
+ clearWarnings() every so often to save memory.
+ </para>
+ </listitem>
+ </itemizedlist>
+
</section>
<section id="cj-news-0-8">
<title>&title-cj-news-0-8;</title>
-<programlisting>
- - Split MysqlIO and Buffer to separate classes. Some
- ClassLoaders gave an IllegalAccess error for some
- fields in those two classes. Now mm.mysql works in
- applets and all classloaders.
+ <itemizedlist>
- Thanks to Joe Ennis <jce@stripped> for pointing
- out the problem and working on a fix with me.
-</programlisting>
+ <listitem>
+ <para>
+ Split MysqlIO and Buffer to separate classes. Some
+ ClassLoaders gave an IllegalAccess error for some fields in
+ those two classes. Now mm.mysql works in applets and all
+ classloaders. Thanks to Joe Ennis <jce@stripped>
+ for pointing out the problem and working on a fix with me.
+ </para>
+ </listitem>
+ </itemizedlist>
+
</section>
<section id="cj-news-0-7">
<title>&title-cj-news-0-7;</title>
-<programlisting>
- - Fixed DatabaseMetadata problems in getColumns() and
- bug in switch statement in the Field constructor.
+ <itemizedlist>
- Thanks to Costin Manolache <costin@stripped> for
- pointing these out.
-</programlisting>
+ <listitem>
+ <para>
+ Fixed DatabaseMetadata problems in getColumns() and bug in
+ switch statement in the Field constructor. Thanks to Costin
+ Manolache <costin@stripped> for pointing these out.
+ </para>
+ </listitem>
+ </itemizedlist>
+
</section>
<section id="cj-news-0-6">
<title>&title-cj-news-0-6;</title>
-<programlisting>
- - Incorporated efficiency changes from
- Richard Swift <Richard.Swift@stripped> in
- MysqlIO.java and ResultSet.java
+ <itemizedlist>
- - We're now 15% faster than gwe's driver.
+ <listitem>
+ <para>
+ Incorporated efficiency changes from Richard Swift
+ <Richard.Swift@stripped> in
+ <literal>MysqlIO.java</literal> and
+ <literal>ResultSet.java</literal>:
+ </para>
+ </listitem>
- - Started working on DatabaseMetaData.
+ <listitem>
+ <para>
+ We're now 15% faster than gwe's driver.
+ </para>
+ </listitem>
- The following methods are implemented:
- * getTables()
- * getTableTypes()
- * getColumns
- * getCatalogs()
-</programlisting>
+ <listitem>
+ <para>
+ Started working on <literal>DatabaseMetaData</literal>.
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ The following methods are implemented:
+ </para>
+
+ <itemizedlist>
+
+ <listitem>
+ <para>
+ <literal>getTables()</literal>
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ <literal>getTableTypes()</literal>
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ <literal>getColumns</literal>
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ <literal>getCatalogs()</literal>
+ </para>
+ </listitem>
+
+ </itemizedlist>
+ </listitem>
+
+ </itemizedlist>
+
</section>
</section>
Modified: trunk/refman-common/titles.en.ent
===================================================================
--- trunk/refman-common/titles.en.ent 2006-03-16 21:39:48 UTC (rev 1609)
+++ trunk/refman-common/titles.en.ent 2006-03-17 04:43:29 UTC (rev 1610)
@@ -195,68 +195,68 @@
<!ENTITY title-cj-jdbc-reference "JDBC Reference">
<!ENTITY title-cj-jdbc-upgrading-issues "JDBC-Specific Issues When Upgrading to MySQL
Server 4.1 or Newer">
<!ENTITY title-cj-news "MySQL Connector/J Change History">
-<!ENTITY title-cj-news-0-6 "Changes in MySQL Connector/J 0.6 (21 May 1998">
-<!ENTITY title-cj-news-0-7 "Changes in MySQL Connector/J 0.7 (01 Jul 1998">
-<!ENTITY title-cj-news-0-8 "Changes in MySQL Connector/J 0.8 (06 Jul 1998">
-<!ENTITY title-cj-news-0-9 "Changes in MySQL Connector/J 0.9 (28 Jul 1998">
-<!ENTITY title-cj-news-0-9d "Changes in MySQL Connector/J 0.9d (04 Aug 1998">
-<!ENTITY title-cj-news-1-0 "Changes in MySQL Connector/J 1.0 (24 Aug 1998">
-<!ENTITY title-cj-news-1-1 "Changes in MySQL Connector/J 1.1 (02 Sep 1998">
-<!ENTITY title-cj-news-1-1b "Changes in MySQL Connector/J 1.1b (03 Nov 1998">
-<!ENTITY title-cj-news-1-1f "Changes in MySQL Connector/J 1.1f (31 Dec 1998">
-<!ENTITY title-cj-news-1-1g "Changes in MySQL Connector/J 1.1g (19 Feb 1999">
-<!ENTITY title-cj-news-1-1h "Changes in MySQL Connector/J 1.1h (08 Mar 1999">
-<!ENTITY title-cj-news-1-1i "Changes in MySQL Connector/J 1.1i (24 Mar 1999">
-<!ENTITY title-cj-news-1-2a "Changes in MySQL Connector/J 1.2a (14 Apr 1999">
-<!ENTITY title-cj-news-1-2b "Changes in MySQL Connector/J 1.2b (04 Jul 1999">
-<!ENTITY title-cj-news-2-0pre "Changes in MySQL Connector/J 2.0.0pre (17 Aug 1999">
-<!ENTITY title-cj-news-2-0pre4 "Changes in MySQL Connector/J 2.0.0pre4 (10 Jan
2000">
-<!ENTITY title-cj-news-2-0pre5 "Changes in MySQL Connector/J 2.0.0pre5 (21 Feb
2000">
-<!ENTITY title-cj-news-2-0-1 "Changes in MySQL Connector/J 2.0.1 (06 Apr 2000">
-<!ENTITY title-cj-news-2-0-3 "Changes in MySQL Connector/J 2.0.3 (03 Dec 2000">
-<!ENTITY title-cj-news-2-0-5 "Changes in MySQL Connector/J 2.0.5 (13 Jun 2001">
-<!ENTITY title-cj-news-2-0-6 "Changes in MySQL Connector/J 2.0.6 (16 Jun 2001">
-<!ENTITY title-cj-news-2-0-7 "Changes in MySQL Connector/J 2.0.7 (24 Oct 2001">
-<!ENTITY title-cj-news-2-0-8 "Changes in MySQL Connector/J 2.0.8 (25 Nov 2001">
-<!ENTITY title-cj-news-2-0-9 "Changes in MySQL Connector/J 2.0.9 (13 Jan 2002">
-<!ENTITY title-cj-news-2-0-10 "Changes in MySQL Connector/J 2.0.10 (24 Jan 2002">
-<!ENTITY title-cj-news-2-0-11 "Changes in MySQL Connector/J 2.0.11 (27 Jan 2002">
-<!ENTITY title-cj-news-2-0-12 "Changes in MySQL Connector/J 2.0.12 (07 Apr 2002">
-<!ENTITY title-cj-news-2-0-13 "Changes in MySQL Connector/J 2.0.13 (24 Apr 2002">
-<!ENTITY title-cj-news-2-0-14 "Changes in MySQL Connector/J 2.0.14 (16 May 2002">
-<!ENTITY title-cj-news-3-0-0 "Changes in MySQL Connector/J 3.0.0-dev (31 Jul 2002">
-<!ENTITY title-cj-news-3-0-1 "Changes in MySQL Connector/J 3.0.1-dev (21 Sep 2002">
-<!ENTITY title-cj-news-3-0-2 "Changes in MySQL Connector/J 3.0.2-dev (08 Nov 2002">
-<!ENTITY title-cj-news-3-0-3 "Changes in MySQL Connector/J 3.0.3-dev (17 Dec 2002">
-<!ENTITY title-cj-news-3-0-4 "Changes in MySQL Connector/J 3.0.4-gamma (06 Jan
2003">
-<!ENTITY title-cj-news-3-0-5 "Changes in MySQL Connector/J 3.0.5-gamma (22 Jan
2003">
-<!ENTITY title-cj-news-3-0-6 "Changes in MySQL Connector/J 3.0.6-stable (18 Feb
2003">
-<!ENTITY title-cj-news-3-0-7 "Changes in MySQL Connector/J 3.0.7-stable (08 Apr
2003">
-<!ENTITY title-cj-news-3-0-8 "Changes in MySQL Connector/J 3.0.8-stable (23 May
2003">
-<!ENTITY title-cj-news-3-0-9 "Changes in MySQL Connector/J 3.0.9-stable (07 Oct
2003">
-<!ENTITY title-cj-news-3-0-10 "Changes in MySQL Connector/J 3.0.10-stable (13 Jan
2004">
-<!ENTITY title-cj-news-3-0-11 "Changes in MySQL Connector/J 3.0.11-stable (19 Feb
2004">
-<!ENTITY title-cj-news-3-0-12 "Changes in MySQL Connector/J 3.0.12-production (18 May
2004">
-<!ENTITY title-cj-news-3-0-13 "Changes in MySQL Connector/J 3.0.13-production (27 May
2004">
-<!ENTITY title-cj-news-3-0-14 "Changes in MySQL Connector/J 3.0.14-production (28 May
2004">
-<!ENTITY title-cj-news-3-0-15 "Changes in MySQL Connector/J 3.0.15-production (04 Sep
2004">
-<!ENTITY title-cj-news-3-0-16 "Changes in MySQL Connector/J 3.0.16-ga (15 Nov
2004">
-<!ENTITY title-cj-news-3-0-17 "Changes in MySQL Connector/J 3.0.17-ga (23 Jun
2005">
-<!ENTITY title-cj-news-3-1-0 "Changes in MySQL Connector/J 3.1.0-alpha (18 Feb
2003">
-<!ENTITY title-cj-news-3-1-1 "Changes in MySQL Connector/J 3.1.1-alpha (14 Feb
2004">
-<!ENTITY title-cj-news-3-1-2 "Changes in MySQL Connector/J 3.1.2-alpha (09 Jun
2004">
-<!ENTITY title-cj-news-3-1-3 "Changes in MySQL Connector/J 3.1.3-beta (07 Jul
2004">
-<!ENTITY title-cj-news-3-1-4 "Changes in MySQL Connector/J 3.1.4-beta (04 Sep
2004">
-<!ENTITY title-cj-news-3-1-5 "Changes in MySQL Connector/J 3.1.5-gamma (02 Dec
2004">
-<!ENTITY title-cj-news-3-1-6 "Changes in MySQL Connector/J 3.1.6-stable (23 Dec
2004">
-<!ENTITY title-cj-news-3-1-7 "Changes in MySQL Connector/J 3.1.7-stable (18 Feb
2005">
-<!ENTITY title-cj-news-3-1-8 "Changes in MySQL Connector/J 3.1.8-stable (14 Apr
2005">
-<!ENTITY title-cj-news-3-1-9 "Changes in MySQL Connector/J 3.1.9-stable (22 Jun
2005">
-<!ENTITY title-cj-news-3-1-10 "Changes in MySQL Connector/J 3.1.10-stable (23 Jun
2005">
-<!ENTITY title-cj-news-3-1-11 "Changes in MySQL Connector/J 3.1.11-stable (07 Oct
2005">
-<!ENTITY title-cj-news-3-1-12 "Changes in MySQL Connector/J 3.1.12 (30 Nov 2005">
-<!ENTITY title-cj-news-3-1-13 "Changes in MySQL Connector/J 3.1.13 (xx xxx 2005">
-<!ENTITY title-cj-news-5-0-0 "Changes in MySQL Connector/J 5.0.0-beta (22 Dec
2005">
+<!ENTITY title-cj-news-0-6 "Changes in MySQL Connector/J 0.6 (21 May 1998)">
+<!ENTITY title-cj-news-0-7 "Changes in MySQL Connector/J 0.7 (01 Jul 1998)">
+<!ENTITY title-cj-news-0-8 "Changes in MySQL Connector/J 0.8 (06 Jul 1998)">
+<!ENTITY title-cj-news-0-9 "Changes in MySQL Connector/J 0.9 (28 Jul 1998)">
+<!ENTITY title-cj-news-0-9d "Changes in MySQL Connector/J 0.9d (04 Aug 1998)">
+<!ENTITY title-cj-news-1-0 "Changes in MySQL Connector/J 1.0 (24 Aug 1998)">
+<!ENTITY title-cj-news-1-1 "Changes in MySQL Connector/J 1.1 (02 Sep 1998)">
+<!ENTITY title-cj-news-1-1b "Changes in MySQL Connector/J 1.1b (03 Nov 1998)">
+<!ENTITY title-cj-news-1-1f "Changes in MySQL Connector/J 1.1f (31 Dec 1998)">
+<!ENTITY title-cj-news-1-1g "Changes in MySQL Connector/J 1.1g (19 Feb 1999)">
+<!ENTITY title-cj-news-1-1h "Changes in MySQL Connector/J 1.1h (08 Mar 1999)">
+<!ENTITY title-cj-news-1-1i "Changes in MySQL Connector/J 1.1i (24 Mar 1999)">
+<!ENTITY title-cj-news-1-2a "Changes in MySQL Connector/J 1.2a (14 Apr 1999)">
+<!ENTITY title-cj-news-1-2b "Changes in MySQL Connector/J 1.2b (04 Jul 1999)">
+<!ENTITY title-cj-news-2-0pre "Changes in MySQL Connector/J 2.0.0pre (17 Aug
1999)">
+<!ENTITY title-cj-news-2-0pre4 "Changes in MySQL Connector/J 2.0.0pre4 (10 Jan
2000)">
+<!ENTITY title-cj-news-2-0pre5 "Changes in MySQL Connector/J 2.0.0pre5 (21 Feb
2000)">
+<!ENTITY title-cj-news-2-0-1 "Changes in MySQL Connector/J 2.0.1 (06 Apr 2000)">
+<!ENTITY title-cj-news-2-0-3 "Changes in MySQL Connector/J 2.0.3 (03 Dec 2000)">
+<!ENTITY title-cj-news-2-0-5 "Changes in MySQL Connector/J 2.0.5 (13 Jun 2001)">
+<!ENTITY title-cj-news-2-0-6 "Changes in MySQL Connector/J 2.0.6 (16 Jun 2001)">
+<!ENTITY title-cj-news-2-0-7 "Changes in MySQL Connector/J 2.0.7 (24 Oct 2001)">
+<!ENTITY title-cj-news-2-0-8 "Changes in MySQL Connector/J 2.0.8 (25 Nov 2001)">
+<!ENTITY title-cj-news-2-0-9 "Changes in MySQL Connector/J 2.0.9 (13 Jan 2002)">
+<!ENTITY title-cj-news-2-0-10 "Changes in MySQL Connector/J 2.0.10 (24 Jan 2002)">
+<!ENTITY title-cj-news-2-0-11 "Changes in MySQL Connector/J 2.0.11 (27 Jan 2002)">
+<!ENTITY title-cj-news-2-0-12 "Changes in MySQL Connector/J 2.0.12 (07 Apr 2002)">
+<!ENTITY title-cj-news-2-0-13 "Changes in MySQL Connector/J 2.0.13 (24 Apr 2002)">
+<!ENTITY title-cj-news-2-0-14 "Changes in MySQL Connector/J 2.0.14 (16 May 2002)">
+<!ENTITY title-cj-news-3-0-0 "Changes in MySQL Connector/J 3.0.0-dev (31 Jul
2002)">
+<!ENTITY title-cj-news-3-0-1 "Changes in MySQL Connector/J 3.0.1-dev (21 Sep
2002)">
+<!ENTITY title-cj-news-3-0-2 "Changes in MySQL Connector/J 3.0.2-dev (08 Nov
2002)">
+<!ENTITY title-cj-news-3-0-3 "Changes in MySQL Connector/J 3.0.3-dev (17 Dec
2002)">
+<!ENTITY title-cj-news-3-0-4 "Changes in MySQL Connector/J 3.0.4-gamma (06 Jan
2003)">
+<!ENTITY title-cj-news-3-0-5 "Changes in MySQL Connector/J 3.0.5-gamma (22 Jan
2003)">
+<!ENTITY title-cj-news-3-0-6 "Changes in MySQL Connector/J 3.0.6-stable (18 Feb
2003)">
+<!ENTITY title-cj-news-3-0-7 "Changes in MySQL Connector/J 3.0.7-stable (08 Apr
2003)">
+<!ENTITY title-cj-news-3-0-8 "Changes in MySQL Connector/J 3.0.8-stable (23 May
2003)">
+<!ENTITY title-cj-news-3-0-9 "Changes in MySQL Connector/J 3.0.9-stable (07 Oct
2003)">
+<!ENTITY title-cj-news-3-0-10 "Changes in MySQL Connector/J 3.0.10-stable (13 Jan
2004)">
+<!ENTITY title-cj-news-3-0-11 "Changes in MySQL Connector/J 3.0.11-stable (19 Feb
2004)">
+<!ENTITY title-cj-news-3-0-12 "Changes in MySQL Connector/J 3.0.12-production (18 May
2004)">
+<!ENTITY title-cj-news-3-0-13 "Changes in MySQL Connector/J 3.0.13-production (27 May
2004)">
+<!ENTITY title-cj-news-3-0-14 "Changes in MySQL Connector/J 3.0.14-production (28 May
2004)">
+<!ENTITY title-cj-news-3-0-15 "Changes in MySQL Connector/J 3.0.15-production (04 Sep
2004)">
+<!ENTITY title-cj-news-3-0-16 "Changes in MySQL Connector/J 3.0.16-ga (15 Nov
2004)">
+<!ENTITY title-cj-news-3-0-17 "Changes in MySQL Connector/J 3.0.17-ga (23 Jun
2005)">
+<!ENTITY title-cj-news-3-1-0 "Changes in MySQL Connector/J 3.1.0-alpha (18 Feb
2003)">
+<!ENTITY title-cj-news-3-1-1 "Changes in MySQL Connector/J 3.1.1-alpha (14 Feb
2004)">
+<!ENTITY title-cj-news-3-1-2 "Changes in MySQL Connector/J 3.1.2-alpha (09 Jun
2004)">
+<!ENTITY title-cj-news-3-1-3 "Changes in MySQL Connector/J 3.1.3-beta (07 Jul
2004)">
+<!ENTITY title-cj-news-3-1-4 "Changes in MySQL Connector/J 3.1.4-beta (04 Sep
2004)">
+<!ENTITY title-cj-news-3-1-5 "Changes in MySQL Connector/J 3.1.5-gamma (02 Dec
2004)">
+<!ENTITY title-cj-news-3-1-6 "Changes in MySQL Connector/J 3.1.6-stable (23 Dec
2004)">
+<!ENTITY title-cj-news-3-1-7 "Changes in MySQL Connector/J 3.1.7-stable (18 Feb
2005)">
+<!ENTITY title-cj-news-3-1-8 "Changes in MySQL Connector/J 3.1.8-stable (14 Apr
2005)">
+<!ENTITY title-cj-news-3-1-9 "Changes in MySQL Connector/J 3.1.9-stable (22 Jun
2005)">
+<!ENTITY title-cj-news-3-1-10 "Changes in MySQL Connector/J 3.1.10-stable (23 Jun
2005)">
+<!ENTITY title-cj-news-3-1-11 "Changes in MySQL Connector/J 3.1.11-stable (07 Oct
2005)">
+<!ENTITY title-cj-news-3-1-12 "Changes in MySQL Connector/J 3.1.12 (30 Nov 2005)">
+<!ENTITY title-cj-news-3-1-13 "Changes in MySQL Connector/J 3.1.13 (xx xxx 2005)">
+<!ENTITY title-cj-news-5-0-0 "Changes in MySQL Connector/J 5.0.0-beta (22 Dec
2005)">
<!ENTITY title-cj-replication-connection "Using Master/Slave Replication with
ReplicationConnection">
<!ENTITY title-cj-reporting-bugs "How to Report Connector/J Bugs or Problems">
<!ENTITY title-cj-retrieve-autoinc "Retrieving
<literal>AUTO_INCREMENT</literal> Column Values">
| Thread |
|---|
| • svn commit - mysqldoc@docsrva: r1610 - in trunk: . refman-common | paul | 17 Mar |