拡張記法として、取り出す範囲を指定する記法にも対応しました。DATE,YEAR TO MONTH,YEAR TO DAY,YEAR TO HOUR,YEAR TO MINUTE,YEAR TO SECONDを指定でき、指定した範囲より下位のフィールドを切り捨てた値が返ります。YEAR TO HOUR以下のオペランドにはTIMESTAMP系の型のみを指定できます。
SELECT EXTRACT(DATEFROMTIMESTAMP'2026-07-01 12:34:56.789'); --> 2026-07-01SELECT EXTRACT(YEAR TO MONTH FROMTIMESTAMP'2026-03-21 12:34:56.789'); --> 2026-03-01SELECT EXTRACT(YEAR TO HOUR FROMTIMESTAMP'2026-07-01 12:34:56.789'); --> 2026-07-01 12:00:00SELECT EXTRACT(YEAR TO MONTH FROMDATE'2026-03-21'); --> 2026-03-01
WHERE句の条件にEXTRACT関数を利用することで、特定の年や月のデータを絞り込めます。
SELECT id FROM events WHERE EXTRACT(YEAR FROM ts) =2026AND EXTRACT(MONTH FROM ts) =8;
概要
Tsurugi 1.12.0 では、SQL関連の機能追加としてテーブルに含まれるすべての行を削除する
TRUNCATE TABLE文に対応しました。TRUNCATE TABLEは大量のデータを持つテーブルでも高速にテーブルの全行を削除することが可能であり、一時的な大量データを扱う作業テーブルを空にする、検証用のデータセットを入れ替えて試行を繰り返す、といった用途に適しています。条件を指定しない
DELETE文でも同様の処理が行われますがデータ量に応じた処理時間がかかるため、用途に応じてTRUNCATE TABLEと使い分けるとよいでしょう。TRUNCATE TABLEではテーブル定義やインデックスはそのまま維持されるため、DROP TABLEとCREATE TABLEを組み合わせてテーブルを初期化する場合には必要となるインデックスの再作成が不要です。また、Tsurugi 1.12.0 では 日時系の型から特定のフィールドを抽出する
EXTRACT関数に対応しました。EXTRACT関数は、DATE型,TIME型,TIMESTAMP型,TIMESTAMP WITH TIME ZONE型 の値から年、月、日、時、分、秒といったフィールドを取り出す関数です。SQL標準の記法に加えて、YEAR TO HOURのように取り出す範囲を指定する拡張記法にも対応しました。これらを利用することで、日ごとや時間帯ごとの件数を数える、月ごとに売上を集計する、特定の年月のデータだけを絞り込む、といった時系列データの取り扱いが容易になります。
その他、本バージョンではいくつかの重要な不具合修正や安定性の向上を行っています。
前バージョンを利用するすべてのユーザーは本バージョンへのアップグレードを強く推奨します。
機能追加と改善
機能追加と改善 - SQL
TRUNCATE TABLE文に対応TRUNCATE TABLEは、対象テーブルのすべての行を削除する文です。条件を指定しないDELETE文と比べて、データ量が多いテーブルでも高速に処理できます。テーブル定義やインデックスは維持されます。GENERATED ... AS IDENTITY) を含むテーブルに対しては、RESTART IDENTITY/CONTINUE IDENTITYによってシーケンスの扱いを指定できます。Important
TRUNCATE TABLEはCREATE TABLEやDROP TABLEと同様にDDL文として扱われます。このため、ロールバック操作によって
TRUNCATE TABLEの実行を取り消すことはできません。削除したテーブルデータを復元する手段はないため、十分に確認したうえで実行してください。Important
本バージョンでは自動採番カラムを持つテーブルに対して
TRUNCATE TABLE ... RESTART IDENTITYが一部条件で利用できない制約があります。詳しくは以下のドキュメントを参照してください。EXTRACT関数に対応EXTRACT関数は、DATE型,TIME型,TIMESTAMP型,TIMESTAMP WITH TIME ZONE型 の値から特定のフィールドを取り出す関数です。SQL標準の記法では、
YEAR,MONTH,DAY,HOUR,MINUTE,SECOND,TIMEZONE_HOUR,TIMEZONE_MINUTEを指定できます。戻り値の型はSECONDのみDECIMAL、その他はINTEGERとなります。拡張記法として、取り出す範囲を指定する記法にも対応しました。
DATE,YEAR TO MONTH,YEAR TO DAY,YEAR TO HOUR,YEAR TO MINUTE,YEAR TO SECONDを指定でき、指定した範囲より下位のフィールドを切り捨てた値が返ります。YEAR TO HOUR以下のオペランドにはTIMESTAMP系の型のみを指定できます。WHERE句の条件にEXTRACT関数を利用することで、特定の年や月のデータを絞り込めます。EXTRACT関数の結果でグループ化するには、WITH句やサブクエリーでEXTRACT関数の結果を列として取得し、それをGROUP BY句で利用します。Note
本バージョンでは
GROUP BY句にEXTRACT関数を直接指定することはできません。将来のバージョンでの対応を検討中です。その他、SQL機能の詳細仕様や現時点での制約については、tsurugidbの以下のドキュメントを参照してください。
機能追加と改善 - UDF
<plugin-name>.ini) の[udf]セクションのendpointパラメータに、パイプ文字|区切りで複数の接続先を指定できるようになりました。複数指定した場合、UDFの呼び出しごとに接続先がラウンドロビン方式で選択されます。udf-plugin-builderのオプション--grpc-endpoint,--grpc-server-endpointにもパイプ文字|区切りで複数の接続先を指定できるようになりました。tsurugi.ini上の対応するパラメータにも、パイプ文字|区切りで複数の接続先を指定できるようになりました。Note
UDF機能の詳細仕様や現時点での制約については、 tsurugi-udfの以下のドキュメントを参照してください。
また、
tsurugi.iniの詳細については、以下のドキュメントを参照してください。機能追加と改善 - Client
2.0.1に更新バグ修正
バグ修正 - SQL
2^64(18446744073709551616) 以上の数値を指定した際に、その数値が0として扱われてしまうCAST(NULL AS BIT(...))などの未サポート型を式中で指定すると特定条件下でデータベースが異常終了するDESCでセカンダリインデックスに含めると、そのテーブルへのINSERTが失敗するSELECT COUNT(DISTINCT ...)の実行がエラー、またはデータベースが不安定になるバグ修正 - Authentication & Authorization
tgctl credentialsで生成した認証ファイルの有効期間がデフォルトの90日より短くなり、--expirationオプションも反映されないバグ修正 - UDF
tsurugi.iniの[grpc_server]セクションのenabledがfalseの場合に、UDFのBLOBクライアントからBLOB中継サービスへ接続するとデータベースが異常終了する1.0.0へのアップデートに伴い、udf-pluginのインストールが失敗するアップグレードについて
クライアント互換性リスト
Tsurugi 1.12.0 では 以下のクライアントに対応しています。
Tsurugi のアップグレードに併せて、必要に応じて各クライアントをアップグレードしてください。
Important
Tsurugi UDF については、
udf-plugin-builderを用いてUDFプラグインを再生成してデプロイする必要があります。アップグレード手順
旧バージョンからのアップグレード手順については、以下のドキュメントを参照してください。
その他
本バージョンにおける変更内容の一覧は、以下のChangelogを参照してください。
本バージョンに対する既知の問題、および本バージョンにて修正された問題の補足情報については、以下のリンクを参照してください。