今回も約1ヶ月半でのリリースでした。新しい構文のサポートが追加されていたり、多くのバグ修正が入っています。今回は自分がプレビューUIに入れた細かい修正もリリースノートに載せていただきました。プレビューUIをデフォルトにしようという動きがあるのですが、ちょっとまだ実用には厳しそうなのでデフォルトになる前にできるだけ直した方がよいのではと思い、慣れないReactやTypeScriptと格闘しながら直しています。
原文はこちら: https://trino.io/docs/current/release/release-482.html
General
name => value構文を使用した関数呼び出しでの名前付き引数をサポート (#29530)char値から数値型、boolean、varbinary、時間型へのキャストをサポート (#29374)MATCHをサポート (#29810)UNIQUEををサポート (#29811)BETWEENでSYMMETRICおよびASYMMETRICキーワードをサポート (#29981)- 単純
CASE式のWHEN句で<、BETWEEN、IS NULLなどの述語をサポート (#29446) IS [NOT] TRUE、IS [NOT] FALSE、IS [NOT] UNKNOWNをサポート (#29998)- SQL/JSONパス式で
like_regexをサポート (#29592) ends_with()関数を追加 (#29847)OVERLAY文字列関数をサポート (#30026)row値のフィールド名を返すROW::fields関数を追加 (#29425)varcharおよびchar値に対してメソッドとして文字列関数の呼び出しをサポート(例:value.length()、varchar::chr(65)) (#29978)INSERT、UPDATE、MERGEで、値が列の型に代入可能な場合にネストされた文字型を含むarray、map、row列への値の代入を許可 (#29953)- null要素を含む
rowおよびarray値の比較とソートを許可(例:ORDER BY、DISTINCT、min()、max()、範囲比較) (#29891) - 破壊的変更: Fault-tolerant executionにおけるAlluxioバックエンドの交換ストレージのサポートを削除 (#29596)
- 破壊的変更:
charとvarchar間の暗黙的な型変換を逆転:char値は末尾のスペースを除去してvarcharに変換され、charとvarcharの比較はブランクパディングなしのvarcharセマンティクスに従うため、末尾のスペースが有意になる。以前の動作はdeprecated.legacy-varchar-to-char-coercionコンフィグレーションプロパティをtrueに設定することで復元可能 (#29939) JSON_QUERYで返される型がjsonの場合にOMIT QUOTESを禁止 (#29587)- 集約を使用する多数のクエリを実行する長時間稼働クラスタで時間とともに蓄積されるメモリ使用量を削減 (#29523、#29524)
starts_with()フィルタを使用したクエリのパフォーマンスを改善(プッシュダウンが効くようになった) (#29712)NaN値を含むnumber列に対するクエリが誤った結果を返す問題を修正 (#29497)- 精度が19未満の
decimal値をdoubleにキャストする際に誤った結果になってしまう問題を修正 (#29831) DISTINCTおよびGROUP BYがnumber列の2つのNaN値を異なる値として扱う問題を修正 (#29920)- サポートされる精度を超える大きさの
number値に対するDISTINCT、GROUP BY、=比較が誤った結果を返す問題を修正 (#29962) - 64フィールドを超える
row値の順序付け、グループ化、集約が正しくない問題を修正 (#30013) - 列エイリアスを持つ再帰CTE式の列リネージが正しくない問題を修正 (#29304)
- ラムダ式内でnullの
row値のフィールドを参照する際にクエリが失敗する問題を修正 (#29504) - 配列などの構造的なデフォルト値を持つ変数を宣言するSQL UDFの実行時の失敗を修正 (#29533)
- テーブル関数が大きなパススルー列を返す際に失敗する問題を修正 (#29561)
/v1/queryエンドポイントおよびWeb UIを通じて報告されるクエリ進捗が正しくない問題を修正 (#29793)- Fault-tolerant executionでクエリ進捗が
NaNとして報告される問題を修正 (#29791) - スプーリングプロトコルでコネクタが提供するカスタムデータ型のシリアライズ時に失敗する問題を修正 (#29711)
- アンダーフローを引き起こす小数桁数に丸める場合に
round()がdoubleおよびreal値でNaNを返す問題を修正 (#29808) number型をサポートしないクライアントにDESCRIBE OUTPUTがnumber型を返す問題を修正 (#29671)
Security
- JWT認証およびOAuth 2.0トークン検証に使用されるJWKSリクエストに
User-Agentヘッダーを追加 (#29669)
Web UI
- プレビューUIに実行中のクエリをキャンセルまたはプリエンプトするボタンを追加 (#29315)
- プレビューUIのクエリ一覧ページのCPU使用量を削減 (#29865)
- ステージのない失敗したクエリに対するプレビューUIのスプリットタイムラインビューのエラーを修正 (#29537)
JDBC driver
- スプールされた結果セグメントの取得失敗時の接続リークを修正 (#30048)
CLI
- スプールされた結果セグメントの取得失敗時の接続リークを修正 (#30048)
Cassandra connector
- Cassandraテーブルに対する述語が空の
WHERE句になる場合にクエリが失敗する問題を修正 (#30027)
Delta Lake connector
$propertiesメタデータテーブルにテーブルロケーションを追加 (#29521)parquet.writer.block-row-countコンフィグレーションプロパティまたはparquet_writer_block_row_countセッションプロパティによるParquetライター行グループの行数制限をサポート (#29673)varbinary列によるパーティションテーブルの作成を禁止 (#24155)- 破壊的変更: Alluxioファイルシステムのサポートを削除。Alluxioファイルシステムキャッシュのサポートには影響なし (#29596)
- Parquetファイルの高カーディナリティ文字列カラムの圧縮と読み取りパフォーマンスを改善。
parquet.writer.delta-length-byte-array-encoding-enabledコンフィグレーションプロパティをfalseに設定することで無効化可能 (#29246) - ラムダ式内でネストされたフィールドにアクセスするクエリのパフォーマンスを改善 (#29532)
- 静的クレデンシャル使用時のGoogle Cloud Storageからの読み取りパフォーマンスを改善 (#29776)
- Deletion Vectorが有効な場合に、失敗した書き込みのクリーンアップ処理がアクティブなデータファイルを削除してしまうことによるデータ損失を修正 (#29361)
- サブディレクトリにスコープされたVended Credentialsを使用して階層的名前空間を持つAzure Storageにアクセスする際の失敗を修正 (#29293)
- S3からのデータ読み取り時に散発的に失敗する問題を修正(ストリームスキップ時のエラーがリトライされるようになった) (#29419)
Druid connector
- 集約の計算をDruidにプッシュダウンすることで集約を含むクエリのパフォーマンスを改善 (#29863)
Exasol connector
timestamp型をサポート (#26963)
Hive connector
parquet.writer.block-row-countコンフィグレーションプロパティまたはparquet_writer_block_row_countセッションプロパティによるParquetライター行グループの行数制限をサポート (#29673)- Parquetファイルのスプリットの最大サイズを制御する
hive.parquet.max-split-sizeコンフィグレーションプロパティを追加。hive.max-split-sizeは他のファイル形式にのみ適用 (#29698) - 破壊的変更:
hive.max-initial-splitsおよびhive.max-initial-split-sizeコンフィグレーションプロパティを削除 (#29698) - 破壊的変更: Alluxioファイルシステムのサポートを削除。Alluxioファイルシステムキャッシュのサポートには影響なし (#29596)
- Parquetファイルの高カーディナリティ文字列カラムの圧縮と読み取りパフォーマンスを改善。
parquet.writer.delta-length-byte-array-encoding-enabledコンフィグレーションプロパティをfalseに設定することで無効化可能 (#29246) - ラムダ式内のネストされたフィールドにアクセスするクエリのパフォーマンスを改善 (#29532)
- 静的クレデンシャル使用時のGoogle Cloud Storageからの読み取りパフォーマンスを改善 (#29776)
- 設定されたHive Metastoreが利用できない場合に、接続のリトライ前にバックオフすることでパフォーマンスを改善 (#29653)
- S3からのデータ読み取り時に散発的に失敗する問題を修正(ストリームスキップ時のエラーがリトライされるようになった) (#29419)
Hudi connector
- 破壊的変更: Alluxioファイルシステムのサポートを削除。Alluxioファイルシステムキャッシュのサポートには影響なし (#29596)
- 静的クレデンシャル使用時のGoogle Cloud Storageからの読み取りパフォーマンスを改善 (#29776)
- S3からのデータ読み取り時に散発的に失敗する問題を修正(ストリームスキップ時のエラーがリトライされるようになった) (#29419)
Iceberg connector
object_store_layout_enabledを有効にせずにdata_locationテーブルプロパティを設定可能に (#28887)parquet.writer.block-row-countコンフィグレーションプロパティまたはparquet_writer_block_row_countセッションプロパティによるParquetライター行グループの行数制限をサポート (#29673)iceberg.parquet-footer-cache.typeコンフィグレーションプロパティで設定可能なParquetファイルフッターのキャッシュをサポート (#29684)write.object-storage.partitioned-pathsテーブルプロパティをサポート (#27633)- Iceberg RESTカタログでプレフィックス付きパスストレージクレデンシャルをサポート (#29641)
- Iceberg v3テーブルでの
geometryおよびgeography値の読み書きをサポート (#27893) - RESTおよびJDBCカタログでビュー作成時の
locationプロパティをサポート (#29724) - スプリットの最大サイズを制御する
iceberg.max-split-sizeコンフィグレーションプロパティおよびmax_split_sizeセッションプロパティを追加。実験的なexperimental_split_sizeセッションプロパティを置き換え (#29894) target_max_file_sizeおよびparquet_writer_row_group_sizeテーブルプロパティをサポート。Icebergネイティブのwrite.target-file-size-bytesおよびwrite.parquet.row-group-size-bytesプロパティとして永続化 (#28250)- 破壊的変更:
$filesメタデータテーブルのlower_boundsおよびupper_bounds列をmap(integer, varchar)から型付きrow値に変更。lower_bounds[1]を使用したクエリやこれらの列をjsonにキャストするクエリの更新が必要 (#23147) - 破壊的変更:
target_max_file_sizeおよびparquet_writer_row_group_sizeセッションプロパティ(非推奨のparquet_writer_block_sizeエイリアスを含む)を削除。代わりに同等のテーブルプロパティを使用 (#28250) - 破壊的変更: Alluxioファイルシステムのサポートを削除。Alluxioファイルシステムキャッシュのサポートには影響なし (#29596)
$partitionsメタデータテーブルに対するクエリのパフォーマンスを改善 (#23147)- テーブル名を
INでフィルタするiceberg_tablesシステムテーブルに対するクエリのパフォーマンスを改善 (#29964) - Parquetファイルの高カーディナリティ文字列カラムの圧縮と読み取りパフォーマンスを改善。
parquet.writer.delta-length-byte-array-encoding-enabledコンフィグレーションプロパティをfalseに設定することで無効化可能 (#29246、#29616) - ラムダ式内でネストされたフィールドにアクセスするクエリのパフォーマンスを改善 (#29532)
- 多数のEquality Deleteファイルを持つテーブルの読み取り時のメモリ使用量を削減 (#29643)
- 静的クレデンシャル使用時のGoogle Cloud Storageからの読み取りパフォーマンスを改善 (#29776)
variantメタデータの最大サポートサイズを16MBから128MBに拡大 (#29423)- 固定ストレージロケーションを持つビューに対して
CREATE OR REPLACE MATERIALIZED VIEWを実行した際のマテリアライズドビューのデータ損失を修正 (#29481) - RESTおよびJDBCカタログで
CREATE OR REPLACE VIEW実行時にビューのカスタムストレージロケーションが失われる問題を修正 (#25425、#29755) - ネストされたフィールドを参照するDeleteファイルを持つテーブルを読み取るクエリが失敗する問題を修正 (#29763)
- 型が変更された列の統計情報を読み取る際に発生するエラーを修正 (#29802)
iceberg.rest-catalog.sessionをNONEに設定したOAuth 2.0を使用するRESTカタログでネストされた名前空間を一覧する際の過剰なトークンリクエストを修正。(#29722)- Identity変換のみでパーティション化されたテーブルを更新する際に、データファイルごとに複数のDeleteファイルが作成される問題を修正 (#28276)
- Iceberg RESTカタログでスキーマを一覧する際に、ネストされた名前空間が同時に削除された場合の失敗を修正 (#29500)
- Glueカタログでテーブルへのアクセスが拒否された場合に列やコメントを一覧する際に発生するエラーを修正 (#29995)
- サブディレクトリにスコープされたベンデッドクレデンシャルを使用して階層的名前空間を持つAzure Storageにアクセスする際の失敗を修正 (#29293)
- S3からのデータ読み取り時に散発的に失敗する問題を修正(ストリームスキップ時のエラーがリトライされるようになった) (#29419)
Lakehouse connector
parquet.writer.block-row-countコンフィグレーションプロパティまたはparquet_writer_block_row_countセッションプロパティによるParquetライター行グループの行数制限をサポート (#29673)- 静的クレデンシャル使用時のGoogle Cloud Storageからの読み取りパフォーマンスを改善 (#29776)
- S3からのデータ読み取り時の散発的な失敗を修正(ストリームスキップ時のエラーがリトライされるようになった) (#29419)
MySQL connector
- 保存された値が末尾のスペースのみで異なる場合に、
charまたはvarchar列を等価またはIN述語でフィルタする際の誤った結果を修正。文字列カラムに対する不等式および範囲述語はプッシュダウンされなくなった (#29952、#29939)
Oracle connector
charからvarcharへのCASTがOracleにプッシュダウンされる際に、トリミングではなくブランクパディングが保持される誤った結果を修正 (#29939)
PostgreSQL connector
- PostgreSQLの
point型をTrinoのgeometry型として読み書きできるようになった (#29568) - PostGISの
geometry列を持つテーブルの読み取り時の失敗を修正 (#29505)
Redis connector
redis.tls.*コンフィグレーションプロパティで設定可能なRedisへのTLS接続をサポート (#8091)
SQL Server connector
- 破壊的変更: 保存された値が末尾のスペースのみで異なる場合に、
charまたはvarchar列を等価またはIN述語でフィルタする際の誤った結果を修正。文字列カラムに対する不等式および範囲述語はプッシュダウンされなくなったため、そのような述語のプッシュダウンに依存するDELETEまたはUPDATEは失敗する (#29952、#29939)
TPC-DS connector
- TPC-DSデータジェネレータをバージョン1.7に更新。一部の生成データおよびテーブル統計が変更 (#30022)
SPI
T::method(args)として呼び出し可能な名前付き型の静的メソッドとしてスカラー関数を登録する@StaticMethodアノテーションを追加 (#29385)expr.method(args)として呼び出し可能なレシーバ型のメソッドとしてスカラー関数を登録する@InstanceMethodアノテーションを追加 (#29399)- Javaで実装された関数の引数名を宣言する
@Nameアノテーションを追加 (#29530) - コネクタの式プッシュダウンでラムダ式をサポート (#29532)
- コネクタテーブル関数で関数の説明を指定できるようになった (#29830)
- コネクタページソースがエンジンが提供する
MemoryContextを通じてメモリ使用量を報告できるようになった (#29843) - 破壊的変更:
ConnectorSplitManager.getSplitsのDynamicFilterパラメータをダイナミックフィルタ列のセットに置き換え、現在の述語をDynamicFilterSnapshotとしてConnectorSplitSource.getNextBatchに渡すように変更 (#29206) - 破壊的変更:
Constraintから述語を削除し、パーティションおよびスプリットのプルーニング中に式を評価するためのConnectorExpressionEvaluatorインターフェースを追加 (#29289) - 破壊的変更:
ConnectorPageSourceProviderおよびConnectorPageSinkProviderから非推奨メソッドを削除 (#29562) - 破壊的変更:
TableFunctionProcessorProviderから非推奨メソッドを削除 (#29618)



