主な変更点
- MariaDB Connector/ODBC 3.1.18は、MariaDB Connector/C 3.3.2を使用します。
- Windowsでは、クライアント認証プラグインがMariaDB Connector/ODBCビルドに静的にコンパイルされるようになりました。
- 以前のリリースでは、クライアント認証プラグインは個別の.dllファイルとしてインストールされていました。
- このリリース以降、クライアント認証プラグインは個別の.dllファイルに依存しなくなりました。
- Windowsでは、pvio_npipe バーチャルI/OプラグインがMariaDB Connector/ODBCビルドに静的にコンパイルされるようになりました。
- 以前のリリースでは、Connector/ODBCが名前付きパイプ経由で接続しようとすると、pvio_npipe.dllに外部依存関係があり、ライブラリが見つからない場合に次のエラーが発生します:
[ma-3.1.17]Plugin pvio_npipe could not be loaded: The specified module was not found. Library path is 'C:\Program Files\MariaDB\MariaDB ODBC Driver 64-bit\plugin\pvio_npipe.dll' - このリリース以降、Windowsで名前付きパイプに接続するために外部依存関係は必要ありません。
- 以前のリリースでは、Connector/ODBCが名前付きパイプ経由で接続しようとすると、pvio_npipe.dllに外部依存関係があり、ライブラリが見つからない場合に次のエラーが発生します:
- ログインタイムアウトは、SQL_ATTR_LOGIN_TIMEOUT接続属性で設定できます。
- 以前のリリースでは、SQL_ATTR_LOGIN_TIMEOUT接続属性は無視されました。
- このリリース以降、SQLSetConnectAttr()関数を使用してSQL_ATTR_LOGIN_TIMEOUT接続属性を設定することにより、ログインタイムアウトを設定できるようになりました。CONN_TIMEOUT接続パラメータは、SQL_ATTR_LOGIN_TIMEOUTステートメント属性よりも優先されます。
- MariaDBサーバーに接続すると、SQL_ATTR_QUERY_TIMEOUTステートメント属性を使用してクエリのタイムアウトを設定できます。
- 以前のリリースでは、SQL_ATTR_QUERY_TIMEOUTステートメント属性は無視されました。
- このリリース以降、SQLSetStmtAttr()関数を使用してSQL_ATTR_LOGIN_TIMEOUT ステートメント属性を設定することにより、クエリのタイムアウトを設定できるようになりました。SQL_ATTR_QUERY_TIMEOUTステートメント属性が設定されている場合、Connector/ODBCはSET STATEMENTを使用してmax_statement_timeシステム変数を設定します。
修正された問題
- Connector/ODBCがSQL_FLOATとSQL_C_FLOATを間違った内部型にマップしたため、場合によってはアプリケーションがクラッシュする可能性がありました。
- 以前のリリースでは、SQL_FLOATはSQL_C_FLOATにマップされ、SQL_C_FLOATは SQLFLOATにマップされました。ODBC仕様では、SQLFLOATは8バイトの浮動小数点数にマップする必要があると規定されていますが、SQL_C_FLOATはたった4バイトの浮動小数点数です。この違いにより、列ベースのバインドを使用して行セット(行の配列)をフェッチすると、Connector/ODBCが正しくない境界を計算すると、アプリケーションがクラッシュする可能性があります。
- このリリース以降、SQL_FLOATはSQL_C_DOUBLEにマップされ、SQL_C_FLOATは SQLREALにマップされます。
- クエリのバッチが実行され、クエリの1つが結果を保存しようとしてエラーを発生させると、アプリケーションがクラッシュする可能性があります。
- OPTIMIZE TABLEが実行される時、Connector/ODBCは結果セットを返しません。
- 以前のリリースでは、後続のクエリで不明なエラーが返される可能性がありました:
[ma-3.1.12][10.3.35-MariaDB]Unknown MySQL error - このリリース以降、Connector/ODBCはOPTIMIZE TABLEの結果セットを適切に処理します。
- 以前のリリースでは、後続のクエリで不明なエラーが返される可能性がありました:
- Connector/ODBCがCLIENT_MULTI_STATEMENTS機能フラグを有効にして接続すると、メモリリークが発生する可能性があります。
- Connector/ODBCでは、OPTION接続パラメーターのビットマスクでビット26(226または67108864に相当)が有効になっている場合、CLIENT_MULTI_STATEMENTS機能フラグが有効になります。
- Connector/ODBCでは、Microsoft AccessやEmbarcadero RAD Studioで作成された一部のアプリケーションなど、列に非標準の自動インクリメント列属性があるかどうかをチェックするアプリケーションで問題が発生します。
- 以前のリリースでは、Embarcadero RAD Studioで作成されたアプリケーションは、SQLPrimaryKeys()関数への冗長な呼び出しを行うことでこの制限を回避できました。これにより、information_schema.COLUMNSテーブルが過度にクエリされます。
- このリリース以降、Connector/ODBCは非標準のAUTO_INCREMENT列属性に関する詳細を提供するため、Embarcadero RAD Studioで作成されたアプリケーションはSQLPrimaryKeys()関数を冗長に呼び出す必要がありません。
MariaDB Connector/ODBC 3.1.18のリリースノート(MariaDB社ウェブサイト):
https://mariadb.com/docs/xpand/release-notes/mariadb-connector-odbc/3-1-18/
MariaDBプロダクト・サポート・サービス
MariaDBプロダクト・サポート・サービスは、MariaDBおよびその関連製品をご利用されているお客様へ、必要なソフトウェアや専門的なサポートなどを提供するサービスです。