Release Notes for MariaDB Connector/J 3.0.4

Overview

MariaDB Connector/J is a lightweight JDBC driver (Type 4) for building applications on top of MariaDB Enterprise with Java 8, Java 11, and Java 17.

This release is compatible with JDBC 4.2.

MariaDB Connector/J 3.0.4 was released on 2022-03-25. This release is of General Availability (GA) maturity.

Issues Fixed

  • When the server or storage engine does not send metadata about primary key columns to the connector, the connector does not obtain metadata about primary key columns by executing SHOW COLUMNS. (CONJ-940)

    • In previous releases, if the ResultSet.updateX() methods were used to update results that did not contain metadata about primary key columns, a SQLException was thrown with the following error message:

    java.sql.SQLException: ResultSet cannot be updated. Cannot update rows, since primary field is not present in query
    
    • This issue could affect MariaDB Xpand.

  • When a column is set to NULL (such as in SELECT NULL myAlias), the results are not handled properly. (CONJ-924)

    • In previous releases, when the results for the column were fetched, a java.lang.IllegalArgumentException was thrown with the following error message:

    java.lang.IllegalArgumentException: Unexpected datatype NULL
    
  • When the restrictedAuth parameter is not set, the parameter defaults to 'mysql_native_password,client_ed25519,auth_gssapi_client', but it should default to all supported authentication plugins. (CONJ-926)

    • In previous releases, if an authentication plugin other than mysql_native_password, client_ed25519, or auth_gssapi_client was used, a SQLException was thrown with the following error message:

    java.sql.SQLException: Client restrict authentication plugin to a limited set of authentication plugin and doesn't permit requested plugin ('caching_sha2_password'). Current list is `restrictedAuth=mysql_native_password,client_ed25519,auth_gssapi_client`
    
  • When DatabaseMetadata.getTables() is called with null as the tableNamePattern argument, an SQLSyntaxErrorException is thrown. (CONJ-921)

  • When a DECIMAL overflow occurs for some numeric data types, an exception is not thrown. (CONJ-922)

  • When Statement.getGeneratedKeys() is used to retrieve automatically generated AUTO_INCREMENT values, the value is returned as a 32-bit integer, instead of a 64-bit integer, which can cause overflow. (CONJ-923)

  • When the number of affected rows is returned for a DML statement, the value is returned as a 32-bit integer, instead of a 64-bit integer, which can cause overflow. (CONJ-923)

  • When the failover or loadbalance HA modes are used, if a host fails and comes back online, the host is not used for connections. (CONJ-933)

  • Connection.getMetaData() returns values of type MariaDbClob instead of the expected type String. (CONJ-935)

  • ResultsetMetadata.getColumnTypeName() returns the wrong data type names. (CONJ-937)

  • When user is set for a MariaDbDataSource object and password was previously set, password is reset to null, which causes authentication to fail. (CONJ-934)

  • When login packets are inspected with Wireshark, the packet is annotated as [Malformed Packet: MySQL], because a non-standard encoding is used for Connection Attributes length. (CONJ-932)

  • When the retriesAllDown parameter is set, attempts to reconnect after failover are not limited. (CONJ-945)

Install and Upgrade