Fix comparisons made between string constants and dynamic
strings that are converted with either
toUpperCase()
or
toLowerCase()
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.
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. (Bug#5235)
Fixed batched updates with server prepared statements weren't looking if the types had changed for a given batched set of parameters compared to the previous set, causing the server to return the error „Wrong arguments to mysql_stmt_execute()“.
Handle case when string representation of timestamp contains
trailing ‘.
’ with no numbers
following it.
Inefficient detection of pre-existing string instances in
ResultSet.getNativeString()
. (Bug#5706)
Don't throw exceptions for
Connection.releaseSavepoint()
.
Use a per-session Calendar
instance by
default when decoding dates from
ServerPreparedStatements
(set to old, less
performant behavior by setting property
dynamicCalendars=true
).
Added experimental configuration property
dontUnpackBinaryResults
, which delays
unpacking binary result set values until they're asked for,
and only creates object instances for non-numerical values (it
is set to false
by default). For some
usecase/jvm combinations, this is friendlier on the garbage
collector.
UNSIGNED BIGINT
unpacked incorrectly from
server-side prepared statement result sets. (Bug#5729)
ServerSidePreparedStatement
allocating
short-lived objects unnecessarily. (Bug#6225)
Removed unwanted new Throwable()
in
ResultSet
constructor due to bad merge
(caused a new object instance that was never used for every
result set created). Found while profiling for Bug#6359.
Fixed too-early creation of StringBuffer
in
EscapeProcessor.escapeSQL()
, also return
String
when escaping not needed (to avoid
unnecessary object allocations). Found while profiling for Bug#6359.
Use null-safe-equals for key comparisons in updatable result sets.
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). (Bug#6537)
Use
DatabaseMetaData.getIdentifierQuoteString()
when building DBMD queries.
Use 1MB packet for sending file for LOAD DATA LOCAL
INFILE
if that is <
max_allowed_packet
on server.
ResultSetMetaData.getColumnDisplaySize()
returns incorrect values for multi-byte charsets. (Bug#6399)
Make auto-deserialization of
java.lang.Objects
stored in
BLOB
columns configurable via
autoDeserialize
property (defaults to
false
).
Re-work Field.isOpaqueBinary()
to detect
CHAR(
to support fixed-length binary fields for
n
) CHARACTER SET
BINARYResultSet.getObject()
.
Use our own implementation of buffered input streams to get
around blocking behavior of
java.io.BufferedInputStream
. Disable this
with useReadAheadInput=false
.
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()
. (Bug#6348)
Dies ist eine Übersetzung des MySQL-Referenzhandbuchs, das sich auf dev.mysql.com befindet. Das ursprüngliche Referenzhandbuch ist auf Englisch, und diese Übersetzung ist nicht notwendigerweise so aktuell wie die englische Ausgabe. Das vorliegende deutschsprachige Handbuch behandelt MySQL bis zur Version 5.1.