Author: mcbrown
Date: 2007-02-27 15:23:04 +0100 (Tue, 27 Feb 2007)
New Revision: 5082
Log:
Syncing changelog from C/J CHANGES file
Modified:
trunk/refman-common/news-connector-j.xml
Modified: trunk/refman-common/news-connector-j.xml
===================================================================
--- trunk/refman-common/news-connector-j.xml 2007-02-27 13:18:44 UTC (rev 5081)
+++ trunk/refman-common/news-connector-j.xml 2007-02-27 14:23:04 UTC (rev 5082)
Changed blocks: 8, Lines Added: 234, Lines Deleted: 23; 12241 bytes
@@ -79,15 +79,6 @@
</para>
</listitem>
- <listitem>
- <para>
- Performance enhancement of initial character set
- configuration, driver will only send commands required to
- configure connection character set session variables if the
- current values on the server do not match what is required.
- </para>
- </listitem>
-
</itemizedlist>
<para>
@@ -98,17 +89,34 @@
<listitem>
<para>
- Comments auomatically generated by the Hibernate framework
- could cause problems in the parser when using batched
- inserts. (Bug #25025)
+ Calling <literal>Statement.cancel()</literal> could result
+ in a Null Pointer Exception (NPE). (Bug #24721)
</para>
</listitem>
<listitem>
<para>
+ Calendars and timezones are now lazily instantiated when
+ required to help prevent high contention in
+ <literal>SingleByteCharsetConverter.getInstance()</literal>.
+ (Bug #24351)
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Client-side prepared statement parser gets confused by
+ in-line comments <literal>/*...*/</literal> and therefore
+ cannot rewrite batch statements or reliabily detect the type
+ of statements when they are used. (Bug #25025)
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
When using a JDBC connection URL that is malformed, the
<literal>NonRegisteringDriver.getPropertyInfo</literal>
- method will throw a Null Pointer Exception (NPE) error. (Bug
+ method will throw a Null Pointer Exception (NPE). (Bug
#22628)
</para>
</listitem>
@@ -116,8 +124,10 @@
<listitem>
<para>
Using <literal>DatabaseMetaData.getSQLKeywords()</literal>
- does not return a consistent list of reserved keywords. (Bug
- #24794)
+ does not return a all of the of the reserved keywords for
+ the current MySQL version. Current implementation returns
+ the list of reserved words for MySQL 5.1, and does not
+ distinguish between versions. (Bug #24794)
</para>
</listitem>
@@ -131,7 +141,7 @@
<listitem>
<para>
- Storing a <literal>java.util.Date</literal> objection in a
+ Storing a <literal>java.util.Date</literal> object in a
<literal>BLOB</literal> column would not be serialized
correctly during <literal>setObject</literal>. (Bug #25787)
</para>
@@ -139,7 +149,7 @@
<listitem>
<para>
- A query execution which timed out dod not always thow a
+ A query execution which timed out did not always thow a
<literal>MySQLTimeoutException</literal>. (Bug #25836)
</para>
</listitem>
@@ -147,10 +157,11 @@
<listitem>
<para>
A connection error would occur when connecting to a MySQL
- server with certai character sets. Some collations/character
- sets reported as "unknown" (specifically cias variants of
- existing character sets), and inability to override the
- detected server character set. (Bug #23645)
+ server with certain character sets. Some
+ collations/character sets reported as "unknown"
+ (specifically <literal>cias</literal> variants of existing
+ character sets), and inability to override the detected
+ server character set. (Bug #23645)
</para>
</listitem>
@@ -163,9 +174,19 @@
<listitem>
<para>
- Using <literal>DATETIME</literal> columnd would result in
+ Using <literal>DATETIME</literal> columns would result in
time shifts when <literal>useServerPrepStmts</literal> was
- true. (Bug #24344)
+ true. The reason was due to different behavior when using
+ client-side compared to server-side prepared statements and
+ the <literal>useJDBCCompliantTimezoneShift</literal> option.
+ This is now fixed if moving from server-side prepared
+ statements to client-side prepared statements by setting
+ <literal>useSSPSCompatibleTimezoneShift</literal> to
+ <literal>true</literal>, as the driver can't tell if this is
+ a new deployment that never used server-side prepared
+ statements, or if it is an existing deployment that is
+ switching to client-side prepared statements from
+ server-side prepared statements. (Bug #24344)
</para>
</listitem>
@@ -283,8 +304,198 @@
</para>
</listitem>
+ <listitem>
+ <para>
+ <literal>ParameterMetaData</literal> throws
+ <literal>NullPointerException</literal> when prepared SQL
+ actually has a syntax error. Added
+ <literal>generateSimpleParameterMetadata</literal>
+ configuration property, which when set to
+ <literal>true</literal> will generate metadata reflecting
+ <literal>VARCHAR</literal> for every parameter (the default
+ is <literal>false</literal>, which will cause an exception
+ to be thrown if no parameter metadata for the statement is
+ actually available). (Bug #21267)
+ </para>
+ </listitem>
+
</itemizedlist>
+ <para>
+ Other changes:
+ </para>
+
+ <itemizedlist>
+
+ <listitem>
+ <para>
+ Performance enhancement of initial character set
+ configuration, driver will only send commands required to
+ configure connection character set session variables if the
+ current values on the server do not match what is required.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Re-worked stored procedure parameter parser to be more
+ robust. Driver no longer requires <literal>BEGIN</literal>
+ in stored procedure definition, but does have requirement
+ that if a stored function begins with a label directly after
+ the "returns" clause, that the label is not a quoted
+ identifier.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Reverted back to internal character conversion routines for
+ single-byte character sets, as the ones internal to the JVM
+ are using much more CPU time than our internal
+ implementation.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Changed cached result set metadata (when using
+ <literal>cacheResultSetMetadata=true</literal>) to be cached
+ per-connection rather than per-statement as previously
+ implemented.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Use a <literal>java.util.TreeMap</literal> to map column
+ names to ordinal indexes for
+ <literal>ResultSet.findColumn()</literal> instead of a
+ HashMap. This allows us to have case-insensitive lookups
+ (required by the JDBC specification) without resorting to
+ the many transient object instances needed to support this
+ requirement with a normal <literal>HashMap</literal> with
+ either case-adjusted keys, or case-insensitive keys. (In the
+ worst case scenario for lookups of a 1000 column result set,
+ TreeMaps are about half as fast wall-clock time as a
+ HashMap, however in normal applications their use gives many
+ orders of magnitude reduction in transient object instance
+ creation which pays off later for CPU usage in garbage
+ collection).
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Avoid static synchronized code in JVM class libraries for
+ dealing with default timezones.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Fixed cases where
+ <literal>ServerPreparedStatements</literal> weren't using
+ cached metadata when
+ <literal>cacheResultSetMetadata=true</literal> was used.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Improved speed of <literal>datetime</literal> parsing for
+ ResultSets that come from plain or non-server-side prepared
+ statements. (Enable old implementation with
+ <literal>useFastDateParsing=false</literal> as a
+ configuration parameter).
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ When using cached metadata, skip field-level metadata
+ packets coming from the server, rather than reading them and
+ discarding them without creating
+ <literal>com.mysql.jdbc.Field</literal> instances.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Throw exceptions encountered during timeout to thread
+ calling <literal>Statement.execute*()</literal>, rather than
+ <literal>RuntimeException</literal>.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Added configuration property
+ <literal>localSocketAddress</literal>,which is the hostname
+ or IP address given to explicitly configure the interface
+ that the driver will bind the client side of the TCP/IP
+ connection to when connecting.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Take <literal>localSocketAddress</literal> property into
+ account when creating instances of
+ <literal>CommunicationsException</literal> when the
+ underyling exception is a
+ <literal>java.net.BindException</literal>, so that a
+ friendlier error message is given with a little internal
+ diagnostics.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Fixed some Null Pointer Exceptions (NPEs) when cached
+ metadata was used with
+ <literal>UpdatableResultSets</literal>.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ The <literal>rewriteBatchedStatements</literal> feature can
+ now be used with server-side prepared statements.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ We've added a new configuration option
+ "treatUtilDateAsTimestamp", which is false by default, as
+ (1) We already had specific behavior to treat java.util.Date
+ as a java.sql.Timestamp because it's useful to many folks,
+ and (2) that behavior will very likely be required for
+ drivers JDBC-post-4.0.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ When extracting foreign key information from <literal>SHOW
+ CREATE TABLE</literal> in
+ <literal>DatabaseMetaData</literal>, ignore exceptions
+ relating to tables being missing (which could happen for
+ cross-reference or imported-key requests, as the list of
+ tables is generated first, then iterated).
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Fixed logging of XA commands sent to server, it's now
+ configurable via <literal>logXaCommands</literal> property
+ (defaults to <literal>false</literal>).
+ </para>
+ </listitem>
+
+ </itemizedlist>
+
</section>
<section id="cj-news-5-0-4">
| Thread |
|---|
| • svn commit - mysqldoc@docsrva: r5082 - trunk/refman-common | mcbrown | 27 Feb |