All pages
Powered by GitBook
1 of 5

Loading...

Loading...

Loading...

Loading...

Loading...

Connector/J 2.0.3 Release Notes

Download | Release Notes | Changelog |

Release date: 27 Jun 2017

MariaDB Connector/J 2.0.3 is a Stable (GA) release.

Bug

  • - when useServerPrepStmts is not set, the PREPARE statement must not be cached.

  • - Handle PrepareStatement.getParameterMetaData() if query cannot be PREPAREd

  • - escape string correction for big query

CONJ-473
CONJ-494
CONJ-497

Connector/J 2.0.1 Release Notes

Download | Release Notes | Changelog |

Release date: 11 May 2017

MariaDB Connector/J 2.0.1 is a Stable (GA) release.

Notable Changes

Java 8 is the minimum required version The last release with Java 7 compatibility is

Change from 2.0.1

The "useServerPrepStmts" option now defaults to false.

Benchmarks show that if the query has already been used (then prepared), there is a significant performance increase. On the other hand, when the command is not already prepared, the additional exchange for preparing this command will slightly slow down the overall execution of the command

The applications that repeatedly use the same queries have the ability to activate this option, but the general case is to use the direct command (text protocol).

Binary protocol is permissive and did permit using character for LIMIT that accept only integer :

With the "useServerPrepStmts" set to false, LIMIT parameter must be set to numeric field:

  • - changing database metadata compability to 4.2

  • - Query that contain multiqueries with fetch and EOF deprecation failed

  • - Using of "slowQueryThresholdNanos" option with value > Integer.MAX_VALUE results in class cast exception

  • - correcting inline ssl server certificate parsing

New Option : - new option "enablePacketDebug"

Change version 2.0.0 release candidate

Handle CLIENT_DEPRECATE_EOF flag

Implement some protocol changes that permit saving some bytes. (part of ).

Handle SERVER_SESSION_STATE_CHANGE status flag

With a or MySQL 5.7 server, ensure driver state:

  • driver now always gets the current database, even when the database is changed by a query.

  • when using rewriteBatchedStatements, return the correct autoincrement ids even when the session variable @auto_increment_increment has changed during the session.

Improve setQueryTimeout to use SET STATEMENT max_statement_time

The previous implementation of query timeout handling (using Statement.setQueryTimeout) will create an additional thread with a scheduler. When timeout is reached, a temporary connection will be created to permit executing "KILL QUERY ", then closing the temporary connection. When the query ends before timeout, the scheduled task will be canceled.

For servers > , the query timeout will be handled server side using the "SET MAX_STATEMENT_TIME FOR" command.

Real cancelling streaming result sets

When closing a statement that was fetching a result-set (using Statement.setFetchSize) and all rows were not read at the time of closing, a kill query command will be executed on close, to avoid having to parse all remaining results.

Memory optimization: streaming query

Very large commands now don't use an intermediate buffer. Commands are sent directly to socket avoiding using memory. This permits sending very large objects (1G) without using any additional memory.

Faster connection

Faster connection: bundle first commands in authentication packet The driver executes different commands on connection. Those queries are now sent using pipeline (all queries are sent, only then are all results read).

New Options:

Performance improvement storing data in resultset

Parsing row result optimisation to avoid creating byte array to the maximum for faster results and less memory use.

Remaining JDBC 4.2 missing implementation :

  • - support for large update count []

  • - PrepareStatement.setObject(...) support for with java 8 temporal object.

  • - support for Statement maxFieldSize

Misc

  • - NullpointerException when making concurrent procedure calls

  • - Improve connection using SELECT in place of SHOW to avoid creating a mutex server side.

  • - tcpKeepAlive option now default to true.

  • - QueryException: Incorrect arguments to mysqld_stmt_execute on inserting an "emptyString"-Lob with JPA

CONJ-461 - LAST_INSERT_ID() validation check correction for rewrite statement

  • CONJ-468 - autoIncrementIncrement value loaded during connection, avoiding a query for first statement for rewrite

  • CONJ-451 - Respect type parameter of ResultSet.getObject with type

  • CONJ-455 - MetaData : tinyInt1isBit doesn't work properly in TINYINT(1) column that is marked as UNSIGNED

  • CONJ-450 - NPE on setClientInfo if value is an empty string

  • CONJ-457 - trustStore : Retain leading slash when trust store beings with 'file:/'

  • CONJ-160 - ConnectionPool test using hikariCP

  • CONJ-307 - valid connector java 9 early access

  • CONJ-402 - make tcpKeepAlive option default to true

  • CONJ-411 - Implement Statement maxFieldSize

  • CONJ-449 - Permit CallableStatement streaming

  • MariaDB Connector/J 1.6.0
    CONJ-467
    CONJ-460
    CONJ-464
    CONJ-452
    CONJ-465
    CONJ-318
    MDEV-8931
    CONJ-341
    MariaDB 10.2
    CONJ-393
    MariaDB 10.1.2
    CONJ-315
    CONJ-442
    CONJ-366
    CONJ-368
    CONJ-414
    CONJ-414
    CONJ-409
    CONJ-411
    CONJ-443
    CONJ-391
    CONJ-402
    CONJ-448
    prepare_bench
    try (PreparedStatement p = connection.prepareStatement("SELECT * from mysql.user LIMIT ?")) {
        p.setString(1, "10");
        p.executeQuery();
    }
    try (PreparedStatement p = connection.prepareStatement("SELECT * from mysql.user LIMIT ?")) {
        p.setInt(1, 10);
        p.executeQuery();
    }

    Connector/J 2.0 Release Notes

    Release Notes for the MariaDB Connector/J 2.0 series

    Connector/J 2.0.2 Release Notes

    Download | Release Notes | Changelog |

    Release date: 7 Jun 2017

    MariaDB Connector/J 2.0.2 is a Stable (GA) release.

    Bug

    • - DataSource connectTimeout is in second, but was set on socket timeout that is in milliseconds

    • - option "useServerPrepStmts" : Possible Buffer overrun reading ResultSet

    • - option "rewriteBatchedStatements" : Error when executing SQL contains "values" that aren't inserts

    • - option "usePipelineAuth" : incompatibility with aurora. Now automatically disabled when aurora is detected

    • - compatibility : ArrayIndexOutOfBoundsException on connect to MySQL 5.1.73

    • - compatibility : Access denied error on connect to MySQL 5.1.73

    • - metadata : DatabaseMetadata.getPrimaryKeys() return a null value for PK_NAME, must always be 'PRIMARY'

    • - metadata : Wrong content of DEFERRABILITY column in MariaDbDatabaseMetaData

    • - No timeout exception on client PrepareStatement

    • - log: javax.transaction.xa.XAException message error truncated ( near '0x )

    Task

    • - Change CI tests to use maxscale 2.1 version

    • - Connection.setNetworkTimeout don't throw exception if no executor

    • - Use java.net.URL to read keyStore and trustStore again

    Connector/J 2.0.0 Release Notes

    | Release Notes | |

    Release date: 20 April 2017

    MariaDB Connector/J 2.0.0-RC is an (Release candidate) release.

    Notable Changes

    Java 8 is now minimum required version.

    Handle CLIENT_DEPRECATE_EOF flag

    CONJ-318 Implement some protocol changes that permit to save some bytes. (part of MDEV-8931).

    handle SERVER_SESSION_STATE_CHANGE status flag

    CONJ-341 With server with version MariaDB 10.2, MySQL 5.7, ensure driver state :

    • driver does now always get current database, even when database is changed by query.

    • when using rewriteBatchedStatements does return correct autoincrement ids even when session variable @auto_increment_increment has change during session.

    improve setQueryTimeout to use SET STATEMENT max_statement_time

    CONJ-393 Previous implementation of query timeout handling (using Statement.setQueryTimeout) will create an additional thread with a scheduler. When timeout is reached, a temporary connection will be created to permit executing "KILL QUERY ", then closing the temporary connection. When query ended before timeout, the scheduled task will be canceled.

    If server is > 10.1.2, query timeout will be handle server side using "SET MAX_STATEMENT_TIME FOR" command.

    Real cancelling Streaming result sets

    CONJ-315 When closing a Statement that was fetching a result-set (using Statement.setFetchSize) and all rows where not read at the time of closing, a kill query command will be executed on close, to avoid having to parse all remaining results.

    Memory optimization : streaming query

    CONJ-442 Very big command now doesn't use any intermediate buffer. Commands are send directly to socket avoiding using memory, This permit to send very large object (1G) without using any additional memory.

    Faster connection

    CONJ-366 Faster connection : bundle first commands in authentication packet Driver execute different command on connection. Those queries are now send using pipeline (all queries are send, then only all results are reads).

    New Options :

    Performance improvement storing data in resultset

    CONJ-368 Parsing row result optimisation to avoid creating byte array to the maximum for faster results and less memory use.

    Remaining JDBC 4.2 missing implementation :

    • CONJ-414 - support for large update count [CONJ-414]

    • CONJ-409 - PrepareStatement.setObject(...) support for with java 8 temporal object.

    • CONJ-411 - support for Statement maxFieldSize

    Misc

    • CONJ-443 - NullpointerException when making concurrent procedure calls

    • CONJ-391 - Improve connection using SELECT in place of SHOW to avoid creating a mutex server side.

    • CONJ-402 - tcpKeepAlive option now default to true.

    • CONJ-448 - QueryException: Incorrect arguments to mysqld_stmt_execute on inserting an "emptyString"-Lob with JPA

    • - Respect type parameter of ResultSet.getObject with type

    • - MetaData : tinyInt1isBit doesn't work properly in TINYINT(1) column that is marked as UNSIGNED

    • - NPE on setClientInfo if value is an empty string

    • - trustStore : Retain leading slash when trust store beings with 'file:/'

    • - ConnectionPool test using hikariCP

    • - valid connector java 9 early access

    • - make tcpKeepAlive option default to true

    • - Implement Statement maxFieldSize

    • - Permit CallableStatement streaming

    Download
    Changelog
    RC

    The most recent release of is:

    Connector/J 3.5.7 Download Now

    CONJ-490
    CONJ-481
    CONJ-470
    CONJ-477
    CONJ-479
    CONJ-480
    CONJ-471
    CONJ-483
    CONJ-487
    CONJ-489
    CONJ-478
    CONJ-482
    CONJ-488

    The most recent release of is:

    Connector/J 3.5.7 Download Now

    The most recent release of is:

    Connector/J 3.5.7 Download Now

    The most recent release of is:

    Connector/J 3.5.7 Download Now

    CONJ-451
    CONJ-455
    CONJ-450
    CONJ-457
    CONJ-160
    CONJ-307
    CONJ-402
    CONJ-411
    CONJ-449

    For an overview of MariaDB Connector/J see the page

    For an overview of MariaDB Connector/J see the page

    For an overview of MariaDB Connector/J see the page

    For an overview of MariaDB Connector/J see the page

    About MariaDB Connector/J
    MariaDB Connector/J
    About MariaDB Connector/J
    About MariaDB Connector/J
    MariaDB Connector/J
    About MariaDB Connector/J
    About MariaDB Connector/J
    MariaDB Connector/J
    About MariaDB Connector/J
    About MariaDB Connector/J
    MariaDB Connector/J
    About MariaDB Connector/J

    This page is: Copyright © 2025 MariaDB. All rights reserved.

    This page is: Copyright © 2025 MariaDB. All rights reserved.

    This page is: Copyright © 2025 MariaDB. All rights reserved.

    This page is: Copyright © 2025 MariaDB. All rights reserved.