ひしだまの変更履歴

ひしだまHPの更新履歴。
主にTRPGリプレイの元ネタ集、プログラミング技術メモと自作ソフト、好きなゲームや音楽です。

Tsurugi 1.0.0-BETA1とBETA2の通信の互換性

2023-12-13 00:00:00 | PG(RDBMS)

Tsurugi Advent Calendar 2023の13日目です。

2023/12/7に、Tsurugi 1.0.0-BETA2がリリースされました。→リリースノート

BETA1とBETA2では、Tsurugiサーバーとクライアント(Tsubakuro)間の通信データの一部に互換性の無い変更が加わっています。
このため、Tsurugiサーバーとクライアントのバージョンが合っていないと、エラーが発生することがあります。
Tsurugi SQLクライアント(tgsql)IceaxeはTsubakuroを使用している為、同じ影響を受けます。

クライアントとTsurugiサーバーのバージョンが同じ場合(○)

クライアントとTsurugiサーバーのバージョンが同じ場合は、当然ながら正しく通信できます。

tgsql> insert into test values(1,1,'1');
(1 row inserted)

※tgsql 1.1.0(Tsurugi 1.0.0-BETA2)では、更新系SQLの処理件数が表示されるようになりました

クライアントが古く、Tsurugiサーバーが新しい場合(×)

Tsubakuroが1.0.1(Tsurugi 1.0.0-BETA1)、Tsurugiサーバーが1.0.0-BETA2の場合、SQL実行でエラーが発生します。

tgsql> insert into test values(1,1,'1');
com.tsurugidb.tsubakuro.exception.CoreServiceException: SCD-00501: inconsistent service message version: see https://github.com/project-tsurugi/tsurugidb/blob/master/docs/service-message-compatibilities.md (client: "sql-0.0", server: "sql-1.0")

「service message version」というのが通信データのバージョンのことで、そのエラーメッセージに書かれている通り、service-message-compatibilities.mdに対応バージョンが書かれています。

クライアントが新しく、Tsurugiサーバーが古い場合(△)

Tsubakuroが1.1.0(Tsurugi 1.0.0-BETA2)、Tsurugiサーバーが1.0.0-BETA1の場合、SQLを実行することは出来ます。
ただし、更新系SQLの処理件数が返ってきません。

tgsql> insert into test values(1,1,'1');
execute succeeded

Iceaxeの場合、更新系SQLを実行するexecuteAndGetCountメソッドは、1.0.1では常に-1を返していましたが、1.1.0ではTsurugiサーバーから返された更新件数を返します。しかしTsurugiサーバーがBETA1だと更新件数を返さないため、executeAndGetCountメソッドは0を返すことになります。


コメント    この記事についてブログを書く
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする
« Tsurugiのトランザクション内... | トップ | Tsurugi 1.0.0-BETA2の構成定... »
最新の画像もっと見る

コメントを投稿

PG(RDBMS)」カテゴリの最新記事