Releases: mariadb-corporation/mariadb-connector-j
MariaDB Connector/Java 3.0.1-beta
3.0.1-beta (29 Jul 2021)
- CONJ-879 Provide JPMS module descriptor
- CONJ-880 metadata query performance correction
- CONJ-884 MariaDbPoolDataSource leaks connections when the mariadb server restarts
- CONJ-885 org.mariadb.jdbc.internal.util.pool.Pool swallows SQLException during addConnection
- CONJ-891 getImportedKeys with null catalog restrict result to current database
- CONJ-894 Adding useMysqlMetadata for 2.7 compatibility
MariaDB Connector/Java 2.7.4
2.7.4 (29 Jul 2021)
- CONJ-890 getImportedKeys/getTables regression returning an empty resultset for null/empty catalog
- CONJ-863 Ensure socket state when SocketTimeout occurs
- CONJ-873 IndexOutOfBoundsException when executing prepared queries using automatic key generation in parallel
- CONJ-884 MariaDbPoolDataSource leaks connections when the mariadb server restarts
- CONJ-893 DatabaseMetaData.getColumns regression causing TINYINT(x) with x > 1 to return BIT type in place of TINYINT
- CONJ-889 CallableStatement using function throw wrong error on getter
MariaDB Connector/Java 2.7.3
2.7.3 (12 May 2021)
- CONJ-619 Multiple batch update fails after LOAD DATA LOCAL INFILE
- CONJ-854 LOAD XML INFILE breaks when using LOCAL
- CONJ-855 throwing more specific exception for updatable result-set that can not be updated by ResultSet
- CONJ-857 Remove use of mysql.proc table, relying on information_schema.parameters
- CONJ-864 includeThreadDumpInDeadlockExceptions always includes the thread dump, even when it is not a deadlock exception
- CONJ-866 long binary parsing improvement
- CONJ-871 OSGi: Missing Import-Package in Connector/J bundle (javax.sql.rowset.serial)
- CONJ-878 option serverSslCert file location
- CONJ-880 metadata query performance correction
- CONJ-858 Properties.put with object that differ from String supported even if use is not recommended
- CONJ-861 executeBatch must not clear last parameter value.
- CONJ-883 using unix socket, hostname is not mandatory anymore
MariaDB Connector/Java 3.0.0-alpha
3.0.0-alpha (3 May 2021)
This version is a total rewrite of java driver.
- complete rewrite, code clarification, reduced size (15%), more than 90% coverage tested.
- Encoding/decoding implementation are now registred by Codec, permitting codec registry implementation
- example support of Geometry Object
- Permit authentication plugin restriction by option
restrictedAuth
- performance improvement:
- Prepare and execution are now using pipelining when using option
useServerPrepStmts
- performance enhancement with MariaDB 10.6 server when using option
useServerPrepStmts
, skipping metadata (see https://jira.mariadb.org/browse/MDEV-19237)
- Prepare and execution are now using pipelining when using option
correction:
- CONJ-864 includeThreadDumpInDeadlockExceptions always includes the thread dump, even when it is not a deadlock exception
- CONJ-858 Properties parameter that differ from string not taken in account
Easy logging
If using log4j, just enabled package "org.mariadb.jdbc" log.
level ERROR will log connection error
level WARNING will log query errors
level DEBUG will log queries
level TRACE will log all exchanges with server.
If not using log4j, console will be used.
If really wanting to use JDK logger, System property "mariadb.logging.fallback" set to JDK will indicate to use common logging.
Failover
Failover implementation now permit to redo transaction :
when creating a transaction, all command will be cached, and can be replay in case of failover.
This functionality can be enabled using option transactionReplay
.
This is not enabled by default, because this required that application to avoid using non-idempotent commands.
example:
START TRANSACTION;
select next_val(hibernate_sequence);
INSERT INTO myCar(id, name) VALUE (?, ?) //with parameters: 1, 'car1'
INSERT INTO myCarDetail(id, carId, name) VALUE (?, ?, ?) //with parameters: 2, 1, 'detail1'
INSERT INTO myCarDetail(id, carId, name) VALUE (?, ?, ?) //with parameters: 3, 2, 'detail2'
COMMIT;
Allow setup of TCP_KEEPIDLE, TCP_KEEPCOUNT, TCP_KEEPINTERVAL
Equivalent options are tcpKeepIdle
, tcpKeepCount
, tcpKeepInterval
Since available only with java 11, setting this option with java < 11 will have no effect.
MariaDB java connector 2.7.2
2.7.2 (29 Jan. 2021)
- CONJ-847 NPE at UpdatableResultSet#close
- CONJ-849 driver now doesn't close connection caused java.io.NotSerializableException as a result of incorrect data bind to a prepared statement parameter
- CONJ-850 MariaDbResultSetMetaData#getPrecision(int) now returns correct length for character data
- CONJ-851 metadata getBestRowIdentifier incompatibility with MySQL 8 correction
- CONJ-853 Support Aurora cluster custom endpoints
- CONJ-852 ON DUPLICATE KEY detection failed when using new line
MariaDB java connector 1.7.6 (java 7)
patch java 7 supported version with corrections from 2.x branch:
- CONJ-682: internal pool correction: when receiving an RST during
connection validation, the pool will end up throwing connection timeout
exception in place of reusing another connection. - CONJ-522: pool closing : racing condition correction
- CONJ-750: protocol error when not setting database, indicating null authentication plugin
- CONJ-639: enabledSslProtocolSuites does not include TLSv1.2 by default
MariaDB java connector 1.7.5 (java 7)
1.7.5 (09 Dec. 2020)
Version for java 7 support corrective release
[CONJ-848] Pool correction for java 7 connection branch
- When receiving an RST during connection validation, the pool will end up throwing a connection timeout exception in place of reusing another connection.
- When using multiple pools and a pool is closed, it closes a global executor used by all pools. This occurs even if there are still other pools open.
MariaDB java connector 2.7.1
2.7.1 (23 Nov. 2020)
- CONJ-834 use of BULK batch is conditioned by capability, not checking server version
- CONJ-835 GSS Imports set in OSGI Bundle
- CONJ-839 Wrong exception message when rewriteBatchedStatements is enabled
- CONJ-841 ResultSetMetaData::getColumnTypeName() returns incorrect type name for LONGTEXT
- CONJ-842 Byte array parameters are now send as long data
- CONJ-837 prepared statement cache leak on ResultSet CONCUR_UPDATABLE concurrency
- CONJ-843 ParameterMetaData::getParameterType for CallableStatement parameter return expected "BINARY" value for BINARY type
minor:
- CONJ-845 test suite now test SkySQL with replication setting
- CONJ-838 have a 'replica' alias for 'slave' connection option
2.7.0
This version is a general availability (GA) release.
- CONJ-805 - maxFieldSize string truncation occurs on bytes length, not character length
- CONJ-807 - Correcting possible Get Access Denied error if using multiple classloader
- CONJ-810 - normalization of resultset getDate/getTime of timestamp field.
- CONJ-812 - DatabaseMetadata.getBestRowIdentifier and getMaxProcedureNameLength correction
- CONJ-813 - setConfiguration not being called on classes that extend ConfigurableSocketFactory
- CONJ-816 - Table with primary key with DEFAULT function can be inserted for 10.5 servers
- CONJ-817 - Switched position of REMARKS and PROCEDURE_TYPE in the getProcedures result
- CONJ-820 - MySQLPreparedStatement.setObject can now handle java.lang.Character type
- CONJ-828 - new option
ensureSocketState
to ensure protocol state - CONJ-829 - Option to cache callablestatement is now disabled by default
- CONJ-830 - connector now throw a better error if SSL is mandatory and server doesn't support SSL
- CONJ-814 - Small possible improvement of getCrossReference, getExportedKeys and getImportedKey
- CONJ-825 - XAResource.isSameRM implementation
MariaDB java connector 2.6.2
This version is a general availability (GA) release.
- CONJ-804 - Automatic charset correction
- CONJ-809 - SelectResultSet's (ResultSet)MetaData always indicates all columns to be readonly
- CONJ-802 - Version parsing depending on Classloader might result in connection Exception