Release Notes for the C++ Connector
Release Notes for MariaDB C++ Connector 1.0 releases
The most recent Stable (GA) release of MariaDB Connector/C++ is:MariaDB Connector/C++ 1.1.6
Release date: 2021-03-18
This is a Stable (GA) release of MariaDB Connector/C++.
For a description of this library see theMariaDB Connector/C++ page.
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/J.
MariaDB Connector/C++ implements the MySQL protocol using the MariaDB Connector/C API. This release depends on MariaDB Connector/C 3.1.11.
This page is: Copyright © 2025 MariaDB. All rights reserved.
The most recent Stable (GA) release of MariaDB Connector/C++ is:MariaDB Connector/C++ 1.1.6
Release date: 2021-06-17
This is a Stable (GA) release of MariaDB Connector/C++.
For a description of this library see theMariaDB Connector/C++ page.
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/J.
MariaDB Connector/C++ implements the MySQL protocol using the MariaDB Connector/C API. This release depends on MariaDB Connector/C 3.1.13.
Adds useCharacterEncoding
connection string option to control the character set used for connection, input, and results. Includes OPT_SET_CHARSET_NAME
and useCharset
aliases for compatibility. (CONCPP-78)
Adds credentialType
connection string option to set the default client-side authentication plugin, similar to MYSQL_DEFAULT_AUTH
in MariaDB Connector/C. Includes defaultAuth
alias for compatibility. (CONCPP-84)
Metadata retrieved from mysql.proc instead of using the Information Schema. (CONCPP-69)
CMake generates an error on nesting of flow control statements. (CONCPP-79)
CMake fails when called without the -DWITH_SSL=OpenSSL
option. (CONCPP-80)
Sub-directory install paths include a dot (./
) directory, which is not correct. (CONCPP-81)
This page is: Copyright © 2025 MariaDB. All rights reserved.
The most recent Stable (GA) release of MariaDB Connector/C++ is:MariaDB Connector/C++ 1.1.6
Release date: 2022-10-11
This is a Stable (GA) release of MariaDB Connector/C++.
For a description of this library see theMariaDB Connector/C++ page.
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/J.
MariaDB Connector/C++ implements the MySQL protocol using the MariaDB Connector/C API. This release depends on MariaDB Connector/C 3.3.2.
Added support of two optimized modes of executeBatch/executeLargeBatch
PreparedStatement methods execution: (CONCPP-106)
rewriteBatchedStatements
connection option
useBulkStmts
connection option
rewriteBatchedStatements
When using the rewriteBatchedStatements
connection option, for INSERT
queries the connector will construct a single query using batch parameter sets. For example:
INSERT INTO ab (i) VALUES (?) with first batch values = 1, second = 2
will be rewritten as:
INSERT INTO ab (i) VALUES (1), (2)
If the query cannot be rewritten in multi-values
, the rewriteBatchedStatements
connection option will use multi-queries
. For example:
INSERT INTO ab(col1) VALUES (?) ON DUPLICATE KEY UPDATE col2=? WITH VALUES [1,2] AND [2,3]
will be rewritten as:
INSERT INTO ab(col1) VALUES (1) ON DUPLICATE KEY UPDATE col2=2;INSERT INTO TABLE(col1) VALUES (3) ON DUPLICATE KEY UPDATE col2=4
If the rewriteBatchedStatements
connection option is selected, the useServerPrepStmts option is set to false.
If both rewriteBatchedStatements
and useBulkStmts
options are selected, rewriteBatchedStatements
takes precedence.
useBulkStmts
The useBulkStmts
connection option uses the MariaDB bulk execution feature, so it requires MariaDB Server 10.2.7 or later. useBulkStmts
will be used even if useServerPrepStmts
is not set, in other words, if the default statement prepare method is client-side prepare.
If both useBulkStmts
and rewriteBatchedStatements
options are selected, rewriteBatchedStatements
takes precedence.
Attempting connections from multiple threads causes the connector to crash. (CONCPP-105)
PreparedStatement setDouble
only processes the first 6 significant digits and zeros any additional digits. (CONCPP-96)
Result-set streaming is not supported in this release series, but setting setFetchSize
does not throw an exception and can cause the application to crash.
Starting with this release, setting setFetchSize
will throw SQLFeatureNotImplementedException
at the attempt to set fetch size >0
(CONCPP-107)
This page is: Copyright © 2025 MariaDB. All rights reserved.
The most recent Stable (GA) release of MariaDB Connector/C++ is:MariaDB Connector/C++ 1.1.6
Release date: 2024-01-08
This is a Stable (GA) release of MariaDB Connector/C++.
For a description of this library see theMariaDB Connector/C++ page.
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/J.
MariaDB Connector/C++ implements the MySQL protocol using the MariaDB Connector/C API. This release depends on MariaDB Connector/C 3.3.8.
A new static Connector/C++ library mariadbcpp-static.(lib|a) is included in the release packages.
Symlink libmariadbcpp.a is created on platforms other than Windows
To link against the static library MARIADB_STATIC_LINK needs to be defined during compilation. (CONCPP-117)
Added support of connection attributes (CONCPP-112)
Attributes can be defined in the URL or in properties under the name connectionAttributes in the format
connectionAttributes=attr1:value1,attr2:value2
New option WITH_UNIT_TESTS to allow building the connector with or without tests (CONCPP-102)
New option BUILD_TESTS_ONLY can be used to only generate test projects
Packages for Red Hat (rpm) and Debian/Ubuntu (deb) added
Possible crash during execution when a parameter is set with setByte (CONCPP-116)
Minor issues related to compilation of the connector, like errors/warnings when enabling more compiler warnings (CONCPP-18) (CONCPP-110)
This page is: Copyright © 2025 MariaDB. All rights reserved.
The most recent Stable (GA) release of MariaDB Connector/C++ is:MariaDB Connector/C++ 1.1.6
Release date: 2024-10-21
This is a Stable (GA) release of MariaDB Connector/C++.
For a description of this library see the MariaDB Connector/C++ page.
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/J.
MariaDB Connector/C++ implements the MySQL protocol using the MariaDB Connector/C API. This release depends on MariaDB Connector/C 3.3.11.
getMoreResults()
may pick other statement result if the first statement used text protocol (CONCPP-132)
Driver fails to cache multiple results in case other query requires the connection and that will cause "commands out of sync" errors (CONCPP-133)
This page is: Copyright © 2025 MariaDB. All rights reserved.
The most recent Stable (GA) release of MariaDB Connector/C++ is:MariaDB Connector/C++ 1.1.6
Release date: 14 Mar 2025
This is a Stable (GA) release of MariaDB Connector/C++.
For a description of this library see theMariaDB Connector/C++ page.
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/J.
MariaDB Connector/C++ implements the MySQL protocol using the MariaDB Connector/C API. This release depends on MariaDB Connector/C 3.3.14.
CONCPP-138 - The Driver now always cache all binary results to avoid access violation error while using result-set created with server prepared statements after the connection object has been closed
CONCPP-140 - reconnect and reset methods in the Connection interface are deprecated
CONCPP-141 - if trustServerCertificate
is true
(this is default) the connector will explicitly disable certificate verification. This enables work of the connector with Connector/C v.3.4 for unencrypted connection on the platforms there Connector/C is linked dynamically. Setting the option to false
enables certificate verification.
Fixed possible crash in case of use of setBytes() method if passed sql::bytes object did not own the bytes array, but referenced C array
CONCPP-134 - Removed volatile deprecation build warnings
CONCPP-136 - With default settings the driver uses slowest possible batch executing method
CONCPP-137 - Inconsistent types naming of the names returned by ResultSetMetaData::getColumnTypeName()
This page is: Copyright © 2025 MariaDB. All rights reserved.
Release Notes for MariaDB C++ Connector 1.1 releases
The most recent Stable (GA) release of MariaDB Connector/C++ is:MariaDB Connector/C++ 1.1.6
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/J.
MariaDB Connector/C++ 1.1.0 was released on 2021-08-06. This release is of Beta maturity, and should not be used with production workloads.
MariaDB Connector/C++ implements the MySQL protocol using the MariaDB Connector/C API. This release depends on Connector/C 3.2.3.
The default connection character set is utf8mb4
. (CONCPP-91)
Re-execution or destruction on any type of statement object closes all of its result-sets. (CONCPP-88)
ResultSet
streaming is supported. The defaultFetchSize
connection option sets the default number of rows in a result-sets retrieved at a time. The setFetchSize
statement method sets number of rows for the statement. (CONCPP-72)
ResultSet
get methods are const
(CONCPP-86)
sql::Properties
class passed to connect methods is a class defined in the library. DatabaseMetaData::getTables
accepts the sql::List
class object. Methods still accept std::map
and std::list
objects. (CONCPP-83)
SQLString
class supports find
methods. (CONCPP-90)
Properties
parameters to connect methods are const
(CONCPP-82)
SQLString
constructor from std::string
is not exported on Windows. (CONCPP-85)
This page is: Copyright © 2025 MariaDB. All rights reserved.
The most recent Stable (GA) release of MariaDB Connector/C++ is:MariaDB Connector/C++ 1.1.6
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/J. This is the second Beta release of MariaDB Connector/C++.
MariaDB Connector/C++ 1.1.1 was released on 2022-03-04. This release is of Beta maturity, and should not be used with production workloads.
MariaDB Connector/C++ in its current implementation uses the MariaDB protocol via the MariaDB Connector/C API. Connector/C 3.3.0 is used in this release.
MariaDB Connector/C++ 1.1.1 adds the ability to create a connection pool to improve usage of resources and to provide a faster way to connect to the server. (CONCPP-2)
The new class MariaDbDataSource
has been added to enable creating a connection pool. The pool is created when MariaDbDataSource::getConnection
is called the first time. Example:
sql::mariadb::MariaDbDataSource ds("jdbc:mariadb://localhost:3306/db?minPoolSize=2&maxPoolSize=8&maxIdleTime=900&poolValidMinDelay=2000");
ds.setUser("root");
ds.setPassword("myPassword");
// connect to server using the credentials from the pool
std::unique_ptr<sql::Connection> conn1(ds.getConnection());
std::unique_ptr<sql::Connection> conn2(ds.getConnection());
Default for option useResetConnection
has been changed from false
to true
. The change of default to true means the Connection::reset()
method issues a connection reset command at the server by default. Previous default value of false meant Connection::reset()
did a "soft reset" and set only certain system variables and connection parameters according to the connection properties.
New connection properties have been added to configure the pool:
minPoolSize
The minimum number of connections to be kept in the pool (defaults to maxPoolSize value)
maxPoolSize
The maximum number of physical connections that the pool can contain (defaults to 8)
maxIdleTime
The maximum amount of time in seconds that connections above minPoolSize can stay in the pool if not used. This value must always be at least 45 seconds lower than the @wait_timeout value. Default: 600 in seconds(=10 minutes), minimum value is 60 seconds
poolValidMinDelay
The period of time in milliseconds after returning a connection to the pool, during which the connection is considered to be good and does not require validation on return to the application. 0 means validation is done each time the connection is requested (defaults to 1000)
New node failover support. (CONCPP-4) An application can supply more than one host to use for connection. An individual port number can be specified for each host:
sql::SQLString
failoverUrl("jdbc:mariadb:sequential://localhost:3306,failoverhost1.com,[::1]:3307,failoverhost2.com:3307/db?user=root&password=someSecretWord");
std::unique_ptr<Connection> conn(DriverManager::getConnection(failoverUrl));
MariaDB Connector/C++ 1.1 will always try to connect to the first host in the list. Other hosts in the list will be used if a tried host cannot be reached.
This page is: Copyright © 2025 MariaDB. All rights reserved.
The most recent Stable (GA) release of MariaDB Connector/C++ is:MariaDB Connector/C++ 1.1.6
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/J. This is the first release candidate (RC) release of MariaDB Connector/C++ 1.1.
MariaDB Connector/C++ 1.1.2 was released on 2022-11-30. This release is of Release Candidate (RC) maturity, and should not be used with production workloads.
MariaDB Connector/C++ in its current implementation uses the MariaDB protocol via the MariaDB Connector/C API. Connector/C 3.3.0 is used in this release.
Added macOS PKG packages.
Added support of two optimized modes of executeBatch/executeLargeBatch
PreparedStatement methods execution: (CONCPP-106)
rewriteBatchedStatements
connection option
useBulkStmts
connection option
rewriteBatchedStatements
When using the rewriteBatchedStatements
connection option, for INSERT queries the connector will construct a single query using batch parameter sets. For example:
INSERT INTO ab (i) VALUES (?) with first batch values = 1, second = 2
will be rewritten as:
INSERT INTO ab (i) VALUES (1), (2)
If the query cannot be rewritten in multi-values
, the rewriteBatchedStatements
connection option will use multi-queries
. For example:
INSERT INTO ab(col1) VALUES (?) ON DUPLICATE KEY UPDATE col2=? WITH VALUES [1,2] AND [2,3]
will be rewritten as:
INSERT INTO ab(col1) VALUES (1) ON DUPLICATE KEY UPDATE col2=2;INSERT INTO TABLE(col1) VALUES (3) ON DUPLICATE KEY UPDATE col2=4
If the rewriteBatchedStatements
connection option is selected, the useServerPrepStmts
option is set to false.
If both rewriteBatchedStatements
and useBulkStmts
options are selected, rewriteBatchedStatements
takes precedence.
useBulkStmts
The useBulkStmts
connection option uses the MariaDB bulk execution feature, so it requires MariaDB Server 10.2.7 or later. useBulkStmts
will be used even if useServerPrepStmts
is not set, in other words, if the default statement prepare method is client-side prepare.
If both useBulkStmts
and rewriteBatchedStatements
options are selected, rewriteBatchedStatements
takes precedence.
Attempting connections from multiple threads causes the connector to crash. (CONCPP-105)
PreparedStatement setDouble only processes the first 6 significant digits and zeros any additional digits. (CONCPP-96)
Result-set streaming is not supported in this release series, but setting setFetchSize
does not throw an exception and can cause the application to crash.
Starting with this release, setting setFetchSize
will throw SQLFeatureNotImplementedException
at the attempt to set fetch size >0
(CONCPP-107)
This page is: Copyright © 2025 MariaDB. All rights reserved.
The most recent Stable (GA) release of MariaDB Connector/C++ is:MariaDB Connector/C++ 1.1.6
Release date: 2024-02-21
This is a Stable (GA) release of MariaDB Connector/C++.
For a description of this library see theMariaDB Connector/C++ page.
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++ in its current implementation uses the MariaDB protocol via the MariaDB Connector/C API. Connector/C 3.3.3 is used in this release.
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
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)
This page is: Copyright © 2025 MariaDB. All rights reserved.
The most recent Stable (GA) release of MariaDB Connector/C++ is:MariaDB Connector/C++ 1.1.6
Release date: 2024-06-07
This is a Stable (GA) release of MariaDB Connector/C++.
For a description of this library see theMariaDB Connector/C++ page.
This is a GA release of the MariaDB Connector/C++ 1.1 series, 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.
MariaDB Connector/C++ in its current implementation uses the MariaDB protocol via the MariaDB Connector/C API. Connector/C 3.3.10 is used in this release.
The false or nullptr value used for boolean connection property initialization is now treated as false. It used to end up as true because SQLString makes an empty string out of nullptr, which is rendered true for the connection property. This fix introduced a 3rd state for the SQLString, NULL, and makes such a string as a value option to be treated as false. However, the NULL string will still have an empty string value in different string operations. Setting or changing its value does not make the string NULL. This "Nulliness" is still intended mainly for the driver's internal use and is designed to not change anything for applications. Though when exposed to application comparison operators, such as == and !=, they will consider the NULL state of the SQLString object if compared with nullptr. (CONCPP-130)
Newly introduced and referenced header files were missing in the MSI package (CONCPP-129)
This page is: Copyright © 2025 MariaDB. All rights reserved.
The most recent Stable (GA) release of MariaDB Connector/C++ is:MariaDB Connector/C++ 1.1.6
Release date: 2024-08-27
This is a Stable (GA) release of MariaDB Connector/C++.
This is a GA release of the MariaDB Connector/C++ 1.1 series, 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.
MariaDB Connector/C++ in its current implementation uses the MariaDB protocol via the MariaDB Connector/C API. Connector/C 3.3.11 is used in this release.
getMoreResults()
could pick other statement's result (CONCPP-132)
Driver failed to cache multiple results, i.e., if application executed a query while other query hadn't iterated thru all its results, the connection would get out of sync (CONCPP-133)
This page is: Copyright © 2025 MariaDB. All rights reserved.
Release date: 14 Mar 2025
This is a Stable (GA) release of MariaDB Connector/C++.
For a description of this library see theMariaDB Connector/C++ page.
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/J.
MariaDB Connector/C++ implements the MySQL protocol using the MariaDB Connector/C API. This release depends on MariaDB Connector/C 3.3.14.
CONCPP-138 - The Driver now always cache all binary results to avoid access violation error while using result-set created with server prepared statements after the connection object has been closed. In case result-set streaming is used results naturally are not cached, but operations on the result-set after statement/connection is closed will cause SQLException to be thrown that the result-set is closed because of that
CONCPP-140 - reconnect and reset methods in the Connection interface are deprecated
CONCPP-141 - if trustServerCertificate
is true
(this is default) the connector will explicitly disable certificate verification. This enables work of the connector with Connector/C v.3.4 for unencrypted connection on the platforms there Connector/C is linked dynamically. Setting the option to false
enables certificate verification.
Fixed possible crash in case of use of setBytes() method if passed sql::bytes object did not own the bytes array, but referenced C array
CONCPP-134 - Removed volatile deprecation build warnings
CONCPP-136 - With default settings the driver uses slowest possible batch executing method
CONCPP-137 - Inconsistent types naming of the names returned by ResultSetMetaData::getColumnTypeName()
This page is: Copyright © 2025 MariaDB. All rights reserved.