Skip to content

v3.8.0 — APPLY ブロック(B44)+ガード兼用(B48)+サブテーブル SELECT のシステム列 WHERE(B45)

Choose a tag to compare

@rex0220 rex0220 released this 20 Jul 17:10
457673c

v3.8.0

B44 — APPLY ブロック(テーブル外項目とテーブル内項目を1文=1 PUT で同時更新)

UPDATE/INSERT/UPSERT … APPLY <テーブル> (PATCH/APPEND/REMOVE…)。テーブル内に既存違反を持つレコードの修復書き込みを可能にする。

  • PATCH(既存行更新)/APPEND(行追加)/REMOVE(行削除)・多値 ADD/REMOVE。
  • 行アドレッシング: ALL ROWS / WHERE 行条件 / _idx(0-based)/ _ridEXPECT ROWS n | BETWEEN | AT LEAST | AT MOST
  • スナップショット意味論・post-image 検証(書き込み前にレコード全体を検証)。
  • 複数親 UPDATE / INSERT APPLY / UPSERT APPLY(非トランザクション・部分成功あり)。
  • revision 必須+二重ガード(dmlMaxRows 親件数 / dmlMaxSubtableRows 子行・既定500)。MCP は全 APPLY mutation を実行前 fail-closed(VALIDATE ONLY / EXPLAIN は許可)。

B48 — プラグインの APPLY 親/子ガードを「最大取得件数」から兼用

dmlMaxRows=max(100, 最大取得件数)dmlMaxSubtableRows=max(500, 最大取得件数)。新設定 UI なし・floor で後方互換。100 親超の一括更新が可能に。

B45 — サブテーブル SELECT の WHERE でシステム列 _pid/_rid/_idx

WHERE_FIELD_UNRESOLVED(言語リファレンス §19 の記載例が動かない乖離)を修正。_pid/_idx=数値・_rid=文字列・全比較/BETWEEN/IN/IS NULL/LIKE 対応・非押し下げ・_p._pid は無効維持。


  • 全 2,474 テスト green・mcp smoke/pack-smoke ok。実機確認: B44(CLI/プラグイン)・B48(プラグイン親200/子600)・B45(CLI 全10項目)。
  • SemVer=minor。詳細は CHANGELOG

アセット

  • ksql-plugin-v3.8.0.zip — kintone プラグイン
  • ksql-mcp.js — MCP サーバ(単一ファイル)
  • ksql-mcp.mcpb — MCP バンドル