更新情報
アクションのパラメーターの種類にタプルを追加、ほか

ベースマキナの更新情報をお届けします。
アクションのタプルパラメーター
タプルパラメーターは、要素数と順番が決まった異なる種類の要素の値の組を送信できるパラメーターの種類です。
SQLのIN句で複数の列の値をまとめて比較する場合などで利用できます。
タプルパラメーターは配列パラメーターと似たパラメーターの種類ですが以下の点で異なります。
-
要素数、順番が決まっている(アクション実行フォームでは変更できない)
-
要素ごとに異なる種類(テキスト、数値など)を設定できる
-
要素ごとにラベルを設定できる(アクション実行フォーム上に表示される)
またタプルは配列パラメータの要素の種類としても使用できます。
利用例
次のような、倉庫ごとの商品在庫を管理するテーブルがあるとします。
CREATE TABLE warehouse_inventory (
warehouse_id INT NOT NULL, -- 倉庫ID
product_id INT NOT NULL, -- 製品ID
quantity INT NOT NULL, -- 在庫数
PRIMARY KEY (warehouse_id, product_id)
);
このテーブルの複合主キーである倉庫IDと製品IDの組を使って、一括で在庫数を取得したいケースを考えます。このとき、最終的に組み立てたい一括取得のSQLクエリは次のようになります。
SELECT *
FROM warehouse_inventory
WHERE (warehouse_id, product_id) IN (
(101, 1),
(101, 2),
(102, 1),
(103, 3)
);
このSQLクエリ内の((101, 1), (101, 2)...)と記述している部分は、「倉庫ID」と「製品ID」の組であり、要素数が固定(2つ)なので、タプルの配列に置き換えることができます。
以下の設定では、「倉庫IDと商品ID」という名前でタプルの配列をパラメーターとして設定しています。このパラメーターは他のベースマキナのパラメーターと同じように{{ 倉庫IDと商品ID }}で展開することができます。

アクション実行画面にはこのようなフォームが表示されます。

アクションを実行すると次のようなSQLが発行されます。
SELECT *
FROM warehouse_inventory
WHERE (product_id, warehouse_id) IN (
(101, 1),
(103, 3)
);
また、SQLのINSERT文で複数レコードを一括して追加するBulk Insertにも対応予定です。
詳細はタプルパラメーターのドキュメントをご参照ください。
監査ログの出力方法にGoogle Cloud Storageを追加
監査ログの出力方法にGoogle Cloud Storageを追加しました。

詳細はGoogle Cloud Storageへのストリーミングのドキュメントをご参照ください。
gRPCアクションの編集画面のエラーメッセージを改善
gRPCアクションの編集画面において、接続先のgRPCサーバーでリフレクションが有効でなかった場合および、疎通に失敗した場合のエラーメッセージを改善しました。
bridgeのArm64 Dockerイメージの提供を開始
Arm64アーキテクチャ向けのbridgeのDockerイメージの提供を開始しました。bridge v1.0.16からご利用いただけます。
docker pullしていただくと、実行環境に合わせて適切なアーキテクチャのDockerイメージがダウンロードされます。