概要
Tsurugi 1.7.0では、Javaの標準的なデータベース接続APIであるJDBCに対応しました。
これに伴い、JDBC 4.3 をベースにした JDBCドライバ Tsurugi JDBC を公開しました。
Tsurugi JDBCを利用することによって、ORMフレームワーク、アプリケーションサーバー、開発ツールなどの豊富なJavaエコシステムとの連携や、レガシーシステムをはじめとする他のRDBMS向けに開発されたJavaアプリケーションの互換性が大きく向上します。
また、接続オプションなどを介して多くのTsurugi固有機能も利用可能になっています。
Tsurugiでは従来より、高レベルのJava APIとして Iceaxe を提供しています。
Iceaxeは、Tsurugi固有の機能(特にTsurugiのトランザクション関連機能)を最大限に活用しつつ、高性能なアプリケーションの開発を容易にすることを目的としたライブラリです。
このような方向性から、IceaxeのAPIはJDBCとは異なる独自のインターフェースを提供しています。
Tsurugi JDBCとIceaxeはそれぞれ異なる目的を持つデータベース接続ライブラリとして補完関係にあります。用途に応じて適切なライブラリを選択してご利用ください。
サーバ側では、JDBCの対応にあたって互換性に関する機能追加や調整を行ったほか、重要な不具合修正や安定性の向上を行っています。
前バージョンを利用するすべてのユーザーは本バージョンへのアップグレードを強く推奨します。
機能追加と改善
機能追加と改善 - SQL
- 非等価演算子 
!=に対応- 従来から提供していた 非等価演算子 
<>と機能は同じです。SQL 標準では<>を採用していますが、多くの LLM が SQL を生成する際に!=を採用するため対応しました。 
 - 従来から提供していた 非等価演算子 
 - SQL実行エンジン上で 
AtomType.UNKNOWNに対する処理を追加AtomType.UNKNOWNは SQL におけるNULL値を表す式の型です。プレースホルダに整数型や文字列型などを指定せずにNULL値を利用したい場合、これを利用してください。
 
機能追加と改善 - Transaction
- トランザクションエンジンのGC対象の検出アルゴリズムを改善し、GC処理のオーバーヘッドを削減
 
機能追加と改善 - Client
- Tsurugi JDBC の提供を開始
- Tsurugi JDBC の利用については、以下のドキュメントを参照してください。
 - また、Tsurugi JDBCには Hibernate ORM 向けの Dialect も含まれています。利用方法については、以下のドキュメントを参照してください。
 
 tgctl configの追加tgctl configは、Tsurugi データベースの設定内容の一覧を表示するコマンドです。詳細については、以下のドキュメントを参照してください。
機能追加と改善 - Distribution
- インストーラーで環境にインストールする Apache Arrow のバージョンを 16.1.0 から 21.0.0 に変更
 - インストール構成から現在利用されていないモジュール Ogawayama Bridge を削除
 
バグ修正
バグ修正 - SQL
- データベース起動直後にサイズが大きいBLOB/CLOBを並列に処理するとデータベースが異常終了することがある
 REAL型同士の一部の二項演算を伴うクエリーがエラーとなり、クライアントに応答が返らないDECIMAL型同士の演算で算術エラーが発生した場合にエラーメッセージが想定外エラーとなることがある
バグ修正 - Transaction
- Ubuntu 22.04上で異なるファイルシステム間での 
tgctl restore backupが失敗する 
バグ修正 - Endpoint
- IPC接続利用時に、まれに接続情報の共有メモリ格納時に不整合が発生することでデータベースが異常終了することがある
 
バグ修正 - Client
- Tsubakuro/Java において、まれに不正なタイムアウトが発生する
 - データベース停止時に 
tgctl backup createを実行し失敗するとデータベースが不正に起動したままになる - Tsubakuro/Java でタイムアウト時間に 
0を指定してFutureResponse.await()を呼ぶと高頻度で不正にタイムアウトする - Tsubakuro/Java でTCP接続利用時に 
FutureResponseをgetせずcloseするとまれにデータベースが異常終了することがある 
アップグレードについて
クライアント互換性リスト
Tsurugi 1.7.0 では 以下のクライアントに対応しています。
Tsurugi のアップグレードに併せて、必要に応じて各クライアントをアップグレードしてください。
| Client | Version | 
|---|---|
| Tsubakuro/Java | 1.11.0+ | 
| Iceaxe | 1.11.0+ | 
| Tanzawa | 1.11.0+ | 
| Tsubakuro/Rust | 0.5.0+ | 
| Tsurugi MCP Server | 0.3.0+ | 
| Tsurugi JDBC | 0.1.0+ | 
アップグレード手順
旧バージョンからのアップグレード手順については、以下のドキュメントを参照してください。
その他
本バージョンにおける変更内容の一覧は、以下のChangelogを参照してください。
本バージョンに対する既知の問題、および本バージョンにて修正された問題の補足情報については、以下のリンクを参照してください。