主な変更点
- executeBatch/executeLargeBatch PreparedStatementメソッド実行の2つの最適化モードのサポートが追加されました。
- rewriteBatchedStatements接続オプション
- useBulkStmts接続オプション
rewriteBatchedStatements
- rewriteBatchedStatements接続オプションを使用すると、INSERTクエリの場合、コネクタはバッチパラメータセットを使用して単一のクエリを作成します。例えば:
INSERT INTO ab (i) VALUES (?) with first batch values = 1, second = 2
は、次のように書き換えられます。
INSERT INTO ab (i) VALUES (1), (2)
クエリを複数値で書き換えることができない場合、rewriteBatchedStatements接続オプションは複数クエリを使用します。例えば:
INSERT INTO ab(col1) VALUES (?) ON DUPLICATE KEY UPDATE col2=? with values [1,2] and [2,3]
は、次のように書き換えられます。
INSERT INTO ab(col1) VALUES (1) ON DUPLICATE KEY UPDATE col2=2;INSERT INTO TABLE(col1) VALUES (3) ON DUPLICATE KEY UPDATE col2=4 - rewriteBatchedStatements接続オプションが選択されている場合、useServerPrepStmtsオプションはfalseに設定されます。
- rewriteBatchedStatementsとuseBulkStmtsの両方のオプションが選択されている場合、rewriteBatchedStatementsが優先されます。
useBulkStmts
- useBulkStmts接続オプションは、MariaDBの一括実行機能を使用するため、MariaDB Server 10.2.7以降が必要です。useServerPrepStmtsが設定されていない場合でも、つまり、デフォルトのステートメント準備メソッドがクライアント側の準備である場合でも、useBulkStmtsが使用されます。
- useBulkStmtsとrewriteBatchedStatementsの両方のオプションが選択されている場合、rewriteBatchedStatementsが優先されます。
修正されたバグ
- 複数のスレッドから接続を試みると、コネクタがクラッシュします。
- PreparedStatement setDoubleは、最初の有効数字6桁のみを処理し、その他の数字は全てゼロにします。
- 結果セットのストリーミングはこのリリースシリーズではサポートされていませんが、setFetchSizeを設定しても例外がスローされず、アプリケーションがクラッシュする可能性があります。
- このリリース以降、setFetchSizeの設定は、フェッチサイズ > 0 を設定しようとすると、SQLFeatureNotImplementedExceptionをスローします。
MariaDB Connector/C++ 1.0.2のリリースノート(MariaDB社ウェブサイト):
https://mariadb.com/docs/release-notes/mariadb-connector-cpp-1-0/1-0-2/
MariaDBプロダクト・サポート・サービス
MariaDBプロダクト・サポート・サービスは、MariaDBおよびその関連製品をご利用されているお客様へ、必要なソフトウェアや専門的なサポートなどを提供するサービスです。