Release Notes for MariaDB Connector/ODBC 3.1.17


MariaDB Connector/ODBC is a standard ODBC driver for building cross-platform applications on top of MariaDB database products. It is compliant with ODBC 3.5. It is written in C and uses MariaDB Connector/C.

MariaDB Connector/ODBC 3.1.17 was released on 2022-08-30. This release is of General Availability (GA) maturity.

Notable Changes

  • On macOS and Microsoft Windows, MariaDB Connector/ODBC 3.1.17 is statically linked with MariaDB Connector/C 3.3.2.

  • On Linux, MariaDB Connector/ODBC 3.1.17 is dynamically linked with MariaDB Connector/C. MariaDB Connector/C versions 3.2 or greater can be used. Version 3.3 or greater is required for the failover feature.

  • Result set streaming has been added to reduce memory usage while fetching results from the server. (ODBC-369)

    • When result set streaming is enabled, the application fetches the result set from the server row-by-row instead of caching the entire result set on the client side. Since the application is not caching the entire result set, the application uses less memory when working with large result sets.

    • The new NO_CACHE connection parameter (or the STREAMRS alias) can be used to enable result set streaming. The existing OPTIONS connection parameter can also be used to enable result set streaming by setting bit number 20 in the bitmask (equivalent to the value 1048576).

    • Result set streaming is only supported for forward-only cursors. Applications can make all cursors forward-only by enabling the FORWARDONLY connection parameter or using the OPTION connection parameter to set bit number 21 in the bit mask (equivalent to the value 2097152).

    • When result set streaming is enabled, it is only used in the following cases:

      • When the application makes all cursors forward-only, result set streaming is used for all cursors.

      • When the application does not make all cursors forward-only, result set streaming is only used for individual cursors that are explicitly made forward-only by setting the SQL_ATTR_CURSOR_TYPE attribute to SQL_CURSOR_FORWARD_ONLY using the SQLSetStmtAttr() function.

    • Result set streaming does not work with all features supported by Connector/ODBC:

      • When a cursor is using result set streaming, the cursor position can't be changed using functions like SQLSetPos()

      • When a cursor is using result set streaming, no other queries can be executed until the application fetches the entire result set. When a query is blocked by a concurrent streaming operation, an error is raised with SQLState=HY000 and the following error message:

        The requested operation is blocked by another streaming operation