Spurious !
on console when character
encoding is utf8
. (Bug#11629)
Fixed statements generated for testcases missing
;
for 「plain」 statements.
Incorrect generation of testcase scripts for server-side prepared statements. (Bug#11663)
Fixed regression caused by fix for Bug#11552 that caused driver to return incorrect values for unsigned integers when those integers where within the range of the positive signed type.
Moved source code to Subversion repository.
Escape tokenizer doesn't respect stacked single quotes for escapes. (Bug#11797)
GEOMETRY
type not recognized when using
server-side prepared statements.
ReplicationConnection
won't switch to
slave, throws 「Catalog can't be null」
exception. (Bug#11879)
Properties shared between master and slave with replication connection. (Bug#12218)
Statement.getWarnings()
fails with NPE if
statement has been closed. (Bug#10630)
Only get char[]
from SQL in
PreparedStatement.ParseInfo()
when
needed.
Geometry types not handled with server-side prepared statements. (Bug#12104)
StringUtils.getBytes()
doesn't work when
using multi-byte character encodings and a length in
characters is specified. (Bug#11614)
Pstmt.setObject(...., Types.BOOLEAN)
throws exception. (Bug#11798)
maxPerformance.properties
mis-spells
「elideSetAutoCommits」. (Bug#11976)
DBMD.storesLower/Mixed/UpperIdentifiers()
reports incorrect values for servers deployed on Windows.
(Bug#11575)
ResultSet.moveToCurrentRow()
fails to
work when preceded by a call to
ResultSet.moveToInsertRow()
. (Bug#11190)
VARBINARY
data corrupted when using
server-side prepared statements and
.setBytes()
. (Bug#11115)
explainSlowQueries
hangs with server-side
prepared statements. (Bug#12229)
Escape processor didn't honor strings demarcated with double quotes. (Bug#11498)
Lifted restriction of changing streaming parameters with
server-side prepared statements. As long as
all
streaming parameters were set before
execution, .clearParameters()
does not
have to be called. (due to limitation of client/server
protocol, prepared statements can not reset
individual stream data on the server
side).
Reworked Field
class,
*Buffer
, and MysqlIO
to be aware of field lengths >
Integer.MAX_VALUE
.
Updated DBMD.supportsCorrelatedQueries()
to return true
for versions > 4.1,
supportsGroupByUnrelated()
to return
true
and
getResultSetHoldability()
to return
HOLD_CURSORS_OVER_COMMIT
.
Handling of catalog argument in
DatabaseMetaData.getIndexInfo()
, which
also means changes to the following methods in
DatabaseMetaData
: (Bug#12541)
getBestRowIdentifier()
getColumns()
getCrossReference()
getExportedKeys()
getImportedKeys()
getIndexInfo()
getPrimaryKeys()
getProcedures()
(and thus indirectly
getProcedureColumns()
)
getTables()
The catalog
argument in all of these
methods now behaves in the following way:
Specifying NULL
means that catalog
will not be used to filter the results (thus all
databases will be searched), unless you've set
nullCatalogMeansCurrent=true
in your
JDBC URL properties.
Specifying ""
means
「current」 catalog, even though this isn't
quite JDBC spec compliant, it's there for legacy users.
Specifying a catalog works as stated in the API docs.
Made Connection.clientPrepare()
available from 「wrapped」 connections in the
jdbc2.optional
package (connections
built by ConnectionPoolDataSource
instances).
Added Connection.isMasterConnection()
for
clients to be able to determine if a multi-host master/slave
connection is connected to the first host in the list.
Tokenizer for =
in URL properties was
causing sessionVariables=....
to be
parameterized incorrectly. (Bug#12753)
Foreign key information that is quoted is parsed incorrectly
when DatabaseMetaData
methods use that
information. (Bug#11781)
The sendBlobChunkSize
property is now
clamped to max_allowed_packet
with
consideration of stream buffer size and packet headers to
avoid PacketTooBigExceptions
when
max_allowed_packet
is similar in size to
the default sendBlobChunkSize
which is
1M.
CallableStatement.clearParameters()
now
clears resources associated with
INOUT
/OUTPUT
parameters as well as INPUT
parameters.
Connection.prepareCall()
is database name
case-sensitive (on Windows systems). (Bug#12417)
cp1251
incorrectly mapped to
win1251
for servers newer than 4.0.x.
(Bug#12752)
java.sql.Types.OTHER
returned for
BINARY
and VARBINARY
columns when using
DatabaseMetaData.getColumns()
. (Bug#12970)
ServerPreparedStatement.getBinding()
now
checks if the statement is closed before attempting to
reference the list of parameter bindings, to avoid throwing
a NullPointerException
.
ResultSetMetaData
from
Statement.getGeneratedKeys()
caused a
NullPointerException
to be thrown
whenever a method that required a connection reference was
called. (Bug#13277)
Backport of Field
class,
ResultSetMetaData.getColumnClassName()
,
and ResultSet.getObject(int)
changes from
5.0 branch to fix behavior surrounding VARCHAR
BINARY
/VARBINARY
and related
types.
Fixed NullPointerException
when
converting catalog
parameter in many
DatabaseMetaDataMethods
to
byte[]
s (for the result set) when the
parameter is null
.
(null
isn't technically allowed by the
JDBC specification, but we've historically allowed it).
Backport of VAR[BINARY|CHAR] [BINARY]
types detection from 5.0 branch.
Read response in
MysqlIO.sendFileToServer()
, even if the
local file can't be opened, otherwise next query issued will
fail, because it's reading the response to the empty
LOAD DATA INFILE
packet sent to the
server.
Workaround for Bug#13374:
ResultSet.getStatement()
on closed result
set returns NULL
(as per JDBC 4.0 spec,
but not backward-compatible). Set the connection property
retainStatementAfterResultSetClose
to
true
to be able to retrieve a
ResultSet
's statement after the
ResultSet
has been closed via
.getStatement()
(the default is
false
, to be JDBC-compliant and to reduce
the chance that code using JDBC leaks
Statement
instances).
URL configuration parameters don't allow
‘&
’ or
‘=
’ in their values. The JDBC
driver now parses configuration parameters as if they are
encoded using the application/x-www-form-urlencoded format
as specified by java.net.URLDecoder
(http://java.sun.com/j2se/1.5.0/docs/api/java/net/URLDecoder.html).
(Bug#13453)
If the ‘%
’ character is
present in a configuration property, it must now be
represented as %25
, which is the encoded
form of ‘%
’ when using
application/x-www-form-urlencoded encoding.
The configuration property
sessionVariables
now allows you to
specify variables that start with the
‘@
’ sign.
When gatherPerfMetrics
is enabled for
servers older than 4.1.0, a
NullPointerException
is thrown from the
constructor of ResultSet
if the query
doesn't use any tables. (Bug#13043)