All pages
Powered by GitBook
1 of 1

Loading...

Connector/R2DBC 1.1.4 Release Notes

Overview

MariaDB Connector/R2DBC is a non-blocking interface between Java applications and MariaDB Server. MariaDB Connector/R2DBC enables the development of Java 8+ applications for MariaDB database products.

MariaDB Connector/R2DBC 1.1.4 was released on 2023-03-27. This release is of GA (generally available) maturity. This release is compatible with R2DBC 1.0.0 specification.

Notable Changes

  • When MariaDB Connector/R2DBC 1.1.4 connects to a pre-existing TLS tunnel, host verification can be disabled. ()

    • The behavior can be configured using the , which defaults to false.

    • When the sslMode connection parameter is set to , host verification can be disabled by setting sslTunnelDisableHostVerification to true.

    • For example:

  • When the is enabled, prepared statements can use the text protocol. ()

    • To use the text protocol in this scenario, prefix the query string with /text/ when creating the prepared statement.

    • For example, to use the text protocol with the native R2DBC API:

    • Or to use the text protocol with Spring Data:

  • MariaDB Connector/R2DBC 1.1.4 adds support for decoding TIMESTAMP and DATE "zero" date values ('0000-00-00') from MariaDB Xpand. ()

    • In previous releases, when the connector received a "zero" date value from Xpand, the value could not be decoded and the following error would be raised:

Issues Fixed

  • When the is enabled, MEDIUMINT values are not properly decoded. ()

    • In Connector/R2DBC 1.1.2 and 1.1.3, when the binary protocol is used, the last byte of a MEDIUMINT value is not read from a result-set, so remaining values from the same row are read incorrectly.

  • When the Statement.returnGeneratedValues() method is called when connected to a version of MariaDB Server prior to 10.5, an error is raised. ()

  • MariaDB Connector/R2DBC's internal statement parser improperly classifies user-defined variables in SELECT statements as named statement parameters. ()

    • In previous releases, the @amount token in the query below would be classified as a named statement parameter, instead of a user-defined variable.

  • Since a statement parameter does not exist with that name, the following error would be raised:

  • Starting with this release, the internal statement parser can distinguish between user-defined variables and named statement parameters.

  • When a ConnectionFactory is used to construct a connection string from a ConnectionFactoryOptions instance, the restrictedAuth, rsaPublicKey, cachingRsaPublicKey, and allowPublicKeyRetrieval connection parameters are not properly parsed. ()

  • When a server does not advertise the CLIENT_SESSION_TRACK capability (such as old versions of MariaDB Server, MySQL, and MariaDB Xpand), the MariadbConnection.getTransactionIsolationLevel() and MariadbConnection.setTransactionIsolationLevel(IsolationLevel isolationLevel) methods do not properly get or set the transaction isolation level. ()

Resources

In previous releases, the following error would be raised:

Report Issues
  • Source code

  • R2DBC-80
    R2DBC-85
    R2DBC-83
    R2DBC-76
    R2DBC-77
    R2DBC-79
    R2DBC-81
    R2DBC-82
    Download
    Documentation
    Install MariaDB Connector/R2DBC
    Install MariaDB Connector/R2DBC with Spring Data
    try {
         // Configure the Connection
         MariadbConnectionConfiguration conf = MariadbConnectionConfiguration.builder()
                 .host("192.0.2.1")
                 .port(8880) // tunnel port
                 .username("db_user")
                 .password("db_user_password")
                 .database("test")
                 .sslMode(SslMode.TUNNEL)
                 .sslContextBuilderCustomizer(
                         sslContextBuilder -> sslContextBuilder
                                 .protocols("TLSv1.3")
                                 .keyManager(new File("/path/to/client/cert"), new File("/path/to/client/key")))
                 .sslTunnelDisableHostVerification(true)
                 .build();
    
         // Instantiate a Connection Factory
         MariadbConnectionFactory connFactory = new MariadbConnectionFactory(conf);
    
         MariadbConnection connection = connFactory.create().block();
         connection.close().block();
    
     } catch (java.lang.IllegalArgumentException e) {
         System.err.println("Issue encountered while getting connection");
         e.printStackTrace();
     }
    connection
         .createStatement("/*text*/ call some_proc(?)")
         .bind(0, "connr2dbc_user@example.edu")
         .execute()
         .flatMap(...);
    @Query("/*text*/ call some_proc(:emailparam)")
    List<User> findUsersWithEmailAddress(@Param("emailparam") String emailParam);
    wrong month 0
    Cannot invoke "Object.getClass()" because "obj" is null
    SELECT @amount := 10;
    java.lang.IllegalStateException: Parameter at position 0 is not set.
    sslTunnelDisableHostVerification Connection Parameter
    SslMode.TUNNEL
    useServerPrepStmts connection parameter
    useServerPrepStmts connection parameter

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