Release Notes for MariaDB Connector/C++ 1.1.3

Overview

MariaDB Connector/C++ is the interface between C++ applications and MariaDB Server. MariaDB Connector/C++ enables development of C++ applications using a JDBC-based API, which is also used by MariaDB Connector/JDBC. This is the first GA release of the MariaDB Connector/C++ 1.1 series.

MariaDB Connector/C++ 1.1.3 was released on 2024-02-21. This release is of General Availability (GA) maturity.

MariaDB Connector/C++ in its current implementation uses the MariaDB protocol via the MariaDB Connector/C API. Connector/C 3.3.3 is used in this release.

Notable Changes

  • Added new Prepared Statement Cache (CONCPP-111)

    • The cache can be enabled by the cachePrepStmts = on option when the useServerPrepStmts = on option is also used. The use of cache is controlled by following connection properties:

      • cachePrepStmts enables/disables use of cache, by default is false

      • prepStmtCacheSize sets the size of cache, by default 250

      • prepStmtCacheSqlLimit limits the maximum size of the query, that may be cached. Default is 2048. This value consists of length of query itself + length of schema name + 1

  • Added Connector Level Logging Functionality to C/C++ (CONCPP-123)

    • Logging can be enabled for errors, warnings, debug information, and tracing. It is controlled by the following 2 connection properties:

      • log non-zero value turns on logging and determines logging level. 1 = error, 2 = warning, 3 = info, 4 = debug, and 5 = trace

      • logname The name of file to write the log in. If logname set, and log is not, log will be set to 1(error). Default name is mariadbccpp.log, and it's written to %TEMP% or %USERPROFILE% or current dir on Windows, and in $HOME or in /tmp on other systems. Logging is synchronized between threads, but not between processes.

  • Packages for Red Hat (rpm) and Debian/Ubuntu (deb) added

Issues Fixed

  • Calling close() on the Connection object causes closing of all Statement objects created on this connection (CONCPP-119)

  • If connection is obtained from the pool with wrong credentials, the exception is not thrown right away (CONCPP-97)

  • Connection pool would leak some memory on idle item removal from the pool (CONCPP-118)

  • If pool is used connectTimeout is not respected is some cases (CONCPP-120)

  • Connection returned from the pool may be marked and behave as closed (CONCPP-121)

  • Crashes in pool because of incorrect synchronization (CONCPP-122)