メインコンテンツへスキップ
メインコンテンツへスキップ

Cloud 向け v26.2 変更履歴

後方互換性のない変更

クエリおよび構文の変更

  • 誤ったエイリアス置換によって発生していた、クエリ書式の不整合を修正しました。注: アナライザーが無効な場合、エイリアス参照を伴う IN を使用する一部の CREATE VIEW クエリが処理されなくなる可能性があります。これを避けるには、アナライザーが有効になっていることを確認してください (24.3 以降、デフォルトでは有効です) 。 #82838 (Alexey Milovidov).
  • JOIN USING () の空のカラムリストは、構文エラーとして扱われるようになりました。以前は、これはクエリ実行時に INVALID_JOIN_ON_EXPRESSION として報告されており、場合によっては (Join ストレージとの結合などで) LOGICAL_ERROR を引き起こす可能性がありました。 #92371 (Vladimir Cherkasov).
  • ORDER BY およびその他のテーブルキー式では、サブクエリを使用できなくなりました。 #96847 (Alexey Milovidov).

データ型の変更

  • Nullable(Tuple) のサポートを追加しました。有効にするには、allow_experimental_nullable_tuple_type = 1 を設定してください。#89643 (Nihal Z. Miaji).
  • JSON 型の高度な共有データは、デフォルトで有効になりました。新しい JSON 形式で書き込まれたデータパーツは旧バージョンでは読み取れないため、25.8 より前のバージョンへはダウングレードできません。安全にアップグレードするには、compatibility 設定を以前のバージョンに設定するか、MergeTree 設定 dynamic_serialization_version='v2' および object_serialization_version='v2' を設定してください。#92511 (Pavel Kruglov).
  • JSON 型の SKIP REGEXP は、デフォルトで部分一致を使用するようになりました。#92847 (Pavel Kruglov).
  • Variant 型の不一致時に発生していた論理エラーを修正しました。#95811 (Bharat Nallan).
  • PostgreSQL の DATE カラムは、ClickHouse では Date32 と推論されるようになりました (以前は Date と推論されていましたが、対応範囲が狭いため、その範囲外の値ではオーバーフローする可能性がありました) 。Date32 の値を PostgreSQL に書き戻して挿入することもサポートされるようになりました。#95999 (Alexey Milovidov).

ストレージと索引の変更

  • オブジェクトストレージからの読み取りをより効率化するため、反転テキスト索引のストレージレイアウトが改善され、あわせて反転テキスト索引を持つテーブルのマージ性能も向上しました。バージョン 25.12 より前に実験的なテキスト索引を使用していた場合は、アップグレード前に索引を削除し、新しいバージョンで再構築する必要があります。 #91518 (Anton Popov).
  • 統計値のストレージ形式が変更され、すべての統計値が単一ファイルに保存されるようになりました。 #93414 (Anton Popov).
  • パーツの破損を防ぐため、索引ファイル名がエスケープされるようになりました。以前のバージョンで作成され、名前に非 ASCII 文字を含む索引は、ClickHouse で読み込みに失敗するようになります。これに対処するには、MergeTree の設定 escape_index_filenames を使用してください。 #94079 (Raúl Marín).

削除された機能

  • DEFLATE_QPL および ZSTD_QAT コーデックは削除されました。これらのコーデックで圧縮された既存のデータがある場合は、アップグレード前に別のコーデックへ変換してください。なお、これらのコーデックを以前使用するには、enable_deflate_qpl_codec または enable_zstd_qat_codec を有効にする必要がありました。#92150 (Robert Schulze)
  • 単純な ALIAS カラムへの INSERT はサポートされなくなりました (#84154 の取り消し) 。この機能はカスタム形式では動作せず、設定で制御されてもいませんでした。#92849 (Azat Khuzhin)
  • Lazy データベースエンジンは削除され、利用できなくなりました。#93627 (Alexey Milovidov)
  • 使用不能になる不具合があったため、metric_logtransposed_with_wide_view モードは削除されました。system.metric_log をこのモードで定義することは、今後できなくなりました。#93867 (Alexey Milovidov)

設定および構成の変更

  • A new setting で、データレイクカタログがオブジェクトストレージにアクセスできない場合はエラーになるようになりました。#93606 (Konstantin Vedernikov).
  • ワークロードの CPU スケジューリングは、デフォルトではプリエンプティブになりました。cpu_slot_preemption サーバー設定を参照してください。#94060 (Sergei Trifonov).
  • exact_rows_before_limitrows_before_aggregationcross_to_inner_join_rewriteregexp_dict_allow_hyperscanregexp_dict_flag_case_insensitiveregexp_dict_flag_dotalldictionary_use_async_executor の各設定は、フォーマット設定から通常の設定に再分類されました。これは主に内部的な変更で、これらのいずれかを Iceberg、DeltaLake、Kafka、S3、S3Queue、Azure、Hive、RabbitMQ、Set、FileLog、NATS のテーブルエンジン定義で指定していた場合を除き、ユーザーに見える副作用はありません。その場合、これらの定義は黙って無視されるのではなく、エラーになるようになりました。#94106 (Robert Schulze).
  • do_not_merge_across_partitions_select_final の動作仕様が簡素化されました。以前は、この機能が明示的に設定されていなくても自動的に有効になることがあり、混乱や本番環境での問題の原因になっていました。現在は、1 に設定すると無条件に機能が有効になり、0 に設定すると新しい設定 enable_automatic_decision_for_merging_across_partitions_for_final (デフォルト 1) に従います。#96110 (Nikita Taranov).
  • S3 スキーマ検証が追加されました。#96194 (Konstantin Vedernikov).
  • apply_row_policy_after_final 設定はデフォルトで有効になり、ROW POLICY が従来どおり FINAL を尊重するようになりました。以前、FINAL の前に行ポリシーを適用するために optimize_move_to_prewhere_if_final=1 に依存していた場合は、代わりに apply_row_policy_after_final=0 を使用してください。#97279 (Nikolai Kochetov).

セキュリティおよびアクセス制御の変更

  • joinGet/joinGetOrNull で、基になる Join テーブルに対する SELECT 権限が必要になりました。joinGet('db.table', 'column', key) を実行するには、キーのカラムと取得対象の属性カラムの両方に対する SELECT 権限が必要です。これらの権限がないクエリは ACCESS_DENIED で失敗します。移行するには、テーブル全体へのアクセスには GRANT SELECT ON db.join_table TO user を使用して権限を付与するか、カラムレベルのアクセスには GRANT SELECT(key_col, attr_col) ON db.join_table TO user を使用して権限を付与してください。 #94307 (Vladimir Cherkasov).
  • CREATE TABLE ... AS ... クエリでは、これまで誤ってチェックされていた SHOW TABLES ではなく、SHOW COLUMNS 権限が必要になりました。 #94556 (pufit).

挿入と重複排除の変更

  • すべての挿入で、重複排除がデフォルトで有効になりました。以前は、非同期挿入と materialized view では無効でしたが、同期挿入では有効でした。従来の動作を維持するには、deduplicate_insert='backward_compatible_choice' を明示的に設定してください (deduplicate_blocks_in_dependent_materialized_views についても同様です) 。#95970 (Sema Checherinda).

システムテーブルの変更

  • S3Queue および AzureQueue のインメモリメタデータに制限が設けられました。システムテーブルの名前も変更され、system.s3queuesystem.s3queue_metadata_cache に、system.azure_queuesystem.azure_queue_metadata_cache になりました。#95809 (Kseniia Sumarokova).

その他の互換性のない変更

  • 無効な入力で呼び出された際にクラッシュまたはハングする可能性があった h3 索引関数を修正しました。#93657 (Michael Kolupaev) 。

新機能

認証

  • 認証方法として、時間ベースのワンタイムパスワード (TOTP) のサポートを追加しました。 #71273 (Vladimir Cherkasov).

関数

  • 指定した区切り文字で区切られた文字列内の部分文字列の順序を逆にする reverseBySeparator 関数を追加しました。#91780 (Xuewei Wang).
  • sRGB 色空間と OKLAB 色空間の間で変換する colorOKLABToSRGB および colorSRGBToOKLAB 関数を追加しました。#93361 (Pranav Tiwari).
  • 2 点間の コサイン距離 を近似する cosineDistanceTransposed 関数を追加しました。#93621 (Raufs Dunamalijevs).
  • xxh3_128 ハッシュ関数を追加しました。#96055 (Raúl Marín).
  • MergeTree の索引の使用状況を分析する mergeTreeAnalyzeIndex() 関数を追加しました。#92954 (Azat Khuzhin).
  • 関数で、新しい FunctionVariantAdaptor を介した Variant 型のサポートが追加されました。#90900 (Bharat Nallan).
  • 一部の関数は、SQL で括弧なしで呼び出せるようになりました。#94678 (Aly Kafoury).

システムテーブル

  • UDF の読み込み状態と設定を監視するための system.user_defined_functions テーブルを追加しました。#90340 (Xu Jia).
  • system.zookeeper_info テーブルを追加しました。#90809 (Smita Kulkarni).
  • 昇順の素数を含む system.primes テーブルと primes テーブル関数を追加しました。#92776 (Nihal Z. Miaji).
  • 各データパート内のファイル数を示す files カラムを system.parts テーブルに追加しました。#94337 (Match).
  • 既存の failpoint とその有効化状態を確認するための system.fail_points テーブルを追加しました。#96762 (Pedro Ferreira).

テーブルエンジンとストレージ

  • Array カラムのテキスト索引のサポートを追加しました。 #89895 (Jimmy Aguilar Mena).
  • Paimon REST catalog のサポートを追加しました。 #92011 (JIaQi Tang).
  • icebergLocalCluster テーブル関数を追加しました。 #93323 (Anton Ivashkin).
  • lazy_load_tables データベース設定を追加しました。有効にすると、データベースの起動時にテーブルは読み込まれず、代わりに軽量な StorageTableProxy が作成され、実際のテーブルエンジンは初回アクセス時に実体化されます。 #96283 (xiaohuanlin).
  • DatabaseReplicated 向けに補助 ZooKeeper のサポートを追加しました。 #91683 (RinChanNOW).
  • キャッシュ内のデータファイルとシステムファイルを別々のセグメントに分割できるようになりました。 #87834 (MikhailBurdukov).
  • 冗長なファイルダウンロードを回避して読み取り性能を向上させるため、Parquet メタデータ用の新しい SLRU キャッシュを追加しました。このキャッシュは SYSTEM DROP PARQUET METADATA CACHE で削除できます。 #89750 (Grant Holly).
  • データレイクテーブルで、Parquet reader v3 における PREWHERE と多段階 PREWHERE をサポートするようになりました。 #93542 (Konstantin Vedernikov).
  • 複数のレプリカにまたがる分散索引解析を追加しました。共有ストレージや大容量データで効果があります。 #86786 (Azat Khuzhin).

挿入と重複排除

  • 非同期挿入の重複排除が、依存する materialized view でも機能するようになりました。block_id の衝突が発生すると、元のブロックから衝突した block_id に関連する行がフィルタリングで除外され、残りの行は関連するすべての materialized view クエリを通じて変換されます。 #89140 (Sema Checherinda).
  • 非同期挿入で parallel quorum がサポートされるようになりました。挿入されたデータはクォーラムにレプリケートされ、重複が見つかった場合、クエリは以前に挿入されたデータのレプリケーションも完了するまで待機します。 #93356 (Sema Checherinda).
  • 統一された重複排除ハッシュへの移行を有効にする insert_deduplication_version サーバー設定を追加しました。 #95409 (Sema Checherinda).
  • 重複排除ハッシュの移行を開始しました。 #97562 (Sema Checherinda).

SQL とクエリ機能

  • 既存の SYSTEM DROP [...] CACHE に代わる、よりわかりやすい構文として SYSTEM CLEAR [...] CACHE 構文が追加されました。従来の構文も引き続き利用できます。 #93727 (Pranav Tiwari).
  • 結果パートを確定せずにマージをシミュレートするための OPTIMIZE <table> DRY RUN PARTS <part names> クエリが追加されました。マージの正確性の検証、マージ関連のバグの再現、マージ性能のベンチマークに役立ちます。 #96122 (Anton Popov).
  • ignore_on_cluster_for_replicated_database 設定を有効にすると、ON CLUSTER を含む DDL クエリを Replicated データベースに対して実行できるようになりました。クラスタ名は無視されます。 #92872 (Kirill).
  • PROJECTION 索引機能を簡素化および拡張するための新しい構文とフレームワークが導入されました。 #91844 (Amos Bird).

設定と構成

  • 挿入ブロックの形成をより細かく制御するための max_insert_block_size_bytes 設定を追加しました。#92833 (Kirill Kopnev).
  • use_primary_key 設定を追加しました。これを false に設定すると、主キーに基づく granule のプルーニングが無効になります。#93319 (Nihal Z. Miaji).
  • default_dictionary_database 設定を追加しました。これにより、ClickHouse はデータベース修飾子なしで参照される外部 Dictionary を、指定したデフォルトデータベースで解決できるようになります。これにより、XML で定義されたグローバル Dictionary から、SQL で定義されたデータベース単位の Dictionary への移行が簡単になります。#91412 (Dmitrii Plotnikov).
  • テーブルで使用されている名前付きコレクションの削除を防ぐための check_named_collection_dependencies 設定 (デフォルトで有効) を追加しました。#96181 (Pablo Marcos).
  • 同時実行制御のための max-min fair スケジューラを追加し、多数のクエリが限られた CPU スロットを奪い合う高オーバーサブスクリプション環境で、より高い公平性を実現しました。concurrent_threads_scheduler サーバー設定のデフォルトは fair_round_robin ではなく max_min_fair になり、短時間で終了するクエリが長時間実行されるクエリによって不利にならなくなりました。#94732 #95300 (Sergei Trifonov).
  • ClickHouse の起動時および停止時に、それぞれコンソールログレベルを上書きするための logger.startup_console_level および logger.shutdown_console_level 構成オプションを追加しました。#95919 (Garrett Thomas).

監視

  • バージョン情報を含む ClickHouse_Info メトリクスを Prometheus の /metrics エンドポイントに追加しました。これにより、時間の経過に伴う詳細なバージョン情報の推移を追跡するチャートを作成できるようになりました。#91125 (Christoph Wurm) 。

実験的機能

  • ベクトル検索で、クラスタ内のレプリカ間に負荷を分散できるようになり、単一の VM のメモリ容量を超える大規模なベクトル索引をサポートできるようになりました。 #95876 (Shankar Iyer).
  • ast_fuzzer_runs および ast_fuzzer_any_query 設定で制御されるサーバー側の AST ファザーを追加しました。有効にすると、サーバーは通常の実行後に各クエリにランダムな変異を加えて実行し、その結果を破棄します。 #97568 (Alexey Milovidov).

改善

クエリとSQL

  • 相関サブクエリで、より多くのテーブルエンジンとデータソースの種類がサポートされるようになりました。 #90175 (Dmitry Novik).
  • スカラーに対して、非定数の IN がサポートされるようになりました (例: val1 NOT IN if(cond, val2, val3)) 。#93495 (Yarik Briukhovetskyi).
  • JOIN での拡張テーブル別名のサポートを追加しました (例: SELECT * FROM (SELECT 1) AS t(a) JOIN (SELECT 1) AS u(b) ON a = b) 。#95331 (Yarik Briukhovetskyi).
  • EXPLAIN indices = 1 が、EXPLAIN indexes = 1 のエイリアスとして利用できるようになりました。#92774 (Pranav Tiwari) 。
  • numbers および primes テーブル関数のフィルタリングプッシュダウンが改善されました。ClickHouse は WHERE 条件から安全側の値の範囲を導出してシーケンス生成を制限できるようになり、無制限のスキャンを回避できます。#96115 (Nihal Z. Miaji).
  • 等価Setの最適化が、連続する複数のINNER JOIN操作全体で機能するようになり、その連鎖内の任意のテーブルに適用されたフィルタリングが、関連するすべてのテーブルに自動的にプッシュダウンされるようになりました。#96596 (Vladimir Cherkasov) 。
  • FROM 内の単一のサブクエリで、自動クラスタテーブル関数が使用されるようになりました。#96332 (phulv94)。
  • プレフィックスが ASCII 文字のみで構成されている場合、startsWithUTF8 によるフィルタリングで主キー索引が使用されるようになりました。#97055 (vkcku).
  • assumeNotNullcoalesce、およびifNullにより、キーカラムがこれらの関数でラップされている場合、範囲述語に対して主キーおよびスキップ索引のプルーニングを行えるようになりました。#94754 (Nihal Z. Miaji).
  • 使用されていないカラムは、MergeTree から読み取る際に読み取りステップからも削除されるようになりました。これは特に、フィルタリングが PREWHERE にプッシュダウンされる場合に有用です。#89982 (János Benjamin Antal).
  • use_join_disjunctions_push_down 最適化はデフォルトで有効になりました。#89313 (Alexey Milovidov) 。
  • enable_join_runtime_filters 最適化はデフォルトで有効になりました。#89314 (Alexey Milovidov) 。
  • JOIN ランタイムフィルターのオーバーヘッドは、Bloom フィルターで立っているビットが多すぎる場合、またはフィルタリングされる行が少なすぎる場合に、フィルターを自動的に無効化することで削減されるようになりました。#91578 (Alexander Gololobov).
  • use_hash_table_stats_for_join_reordering 設定 (デフォルトで有効) を追加し、JOIN の並べ替えにランタイムのハッシュテーブルサイズの統計値を使用するかどうかを制御できるようにしました。#93912 (Vladimir Cherkasov).
  • 索引の解析は、クエリがローカルで実行される場合でも並列レプリカで実行される場合でも、現在は1回だけ行われます。 #94854 (Nikita Taranov).
  • FINAL クエリで、主キーに含まれるカラムにスキップ索引がある場合、他のパーツでの追加の主キー交差チェックはスキップされるようになりました。#93899 (Shankar Iyer).
  • DROP DATABASE は、データベースに読み込み依存関係を持つテーブルが含まれている場合のクラッシュ耐性を向上させるため、依存関係の逆順でテーブルを削除するようになりました。#97057 (Alexey Milovidov).
  • ミューテーションの同期待機が、クエリのキャンセルおよび時間制限に従うようになりました。#96756 (Alexey Milovidov).
  • DROP COLUMN ミューテーションの直後に ADD COLUMN をすばやく実行した場合に、削除されたデータが再び現れるのを防止しました。#96713 (Alexey Milovidov).
  • UPDATE および RENAME COLUMN を含む競合する ALTER 式では、論理エラーではなく適切な例外が発生するようになりました。#96022 (Alexey Milovidov).
  • 集約キーのカラムに対して、推定総行数とNDV (異なる値の数) の統計値が収集されるようになりました。 #92812 (Alexander Gololobov).
  • すべてのレプリカが、並列レプリカ読み取りにおいて孤立した範囲を並行して引き取れるようになり、ロードバランシングが改善され、ロングテールレイテンシが低減されました。#91374 (zoomxi).
  • 高選択性の PREWHERE フィルタリングに対する自動並列レプリカの推定精度を向上させました。#97231 (Nikita Taranov).
  • joinGet が一時テーブルをサポートするようになりました。#92973 (Eduard Karacharov).
  • 外部集約、ソート、結合が、あらゆるコンテキストでクエリ設定 temporary_files_codec に従うようになりました。#92388 (Vladimir Cherkasov).
  • ベクトル類似度検索プランの最適化は、検索対象のカラムに索引が存在する場合にのみ適用されるようになりました。 #94998 (Eduard Karacharov).

テーブルエンジンとストレージ

  • StorageEmbeddedRocksDB が、主キーとして複数のカラムをサポートするようになりました。#33917 (usurai).
  • ALTER TABLE <table> ATTACH PART <part_name> FROM <directory_name> 構文が追加され、ファイルシステム上で手動で名前を変更しなくても、detached/ 配下の任意のサブディレクトリ (例: broken-on-start または unexpected プレフィックスを持つパート) からパーツをアタッチできるようになりました。#74816 (Anton Popov).
  • min_free_disk_bytes_to_perform_insert が、JBOD ボリュームでも正しく動作するようになりました。#90878 (Aleksandr Musorin).
  • max_parts_to_merge_at_once が、有効期限 (TTL) の drop-part マージ中にも適用されるようになりました。#95315 (Kseniia Sumarokova).
  • バックグラウンド処理 (mutate、merge) は、default プロファイル経由で通常のクエリと設定を共有するのではなく、background プロファイルで個別に設定できるようになりました。#93905 (Arsen Muk).
  • サイズを正しく計算するようになったことでサブカラムの読み取りが改善され、メモリ使用量が削減されるとともに、速度も向上しました。#96251 (Pavel Kruglov).
  • 過剰なメモリ消費を避けるため、split_intersecting_parts_ranges_into_layers で生成されるパイプラインストリーム数を制限しました。#96478 (Nikita Taranov).
  • テキスト索引が GA になりました。#96794 (Robert Schulze).
  • QBit が GA になりました。#95358 (Raufs Dunamalijevs).
  • QBit を等値比較できるようになりました。#94078 (Raufs Dunamalijevs).
  • enable_positional_arguments_for_projections を使用してテーブルスキーマを保存する際、位置引数ではなく式が使われるようになり、この設定を無効にした状態でもサーバーを再起動できるようになりました。#96372 (Alexey Milovidov).
  • Replicated データベースでは、ダミークエリごとにキャッシュされたクラスタが更新されなくなりました。#96897 (Tuan Pham Anh).
  • DDLWorker の状態をリセットする SYSTEM RESET DDL WORKER [ON CLUSTER] クエリが追加され、ホスト ID の更新時にレプリカのアクティビティを更新する際に役立ちます。#93780 (Tuan Pham Anh).

データレイク

  • DeltaLake の deletion vector サポートを追加しました。#93852 (Kseniia Sumarokova).
  • deltaLakeCluster でも deletion vector がサポートされるようになりました。#94365 (Kseniia Sumarokova).
  • DeltaLake が macOS で利用可能になりました。#95985 (Alexey Milovidov).
  • DeltaLake がメタデータから count() の結果を取得し、system.tables に正しいテーブル統計情報 (合計バイト数/行数) を表示するようになりました。#96190 (Kseniia Sumarokova).
  • system.tables から DeltaLake テーブルをクエリする際に、オブジェクトストレージの読み取りをスキップするようになりました。#95899 (Antonio Andelic).
  • delta-kernel のロギングをデバッグするための SYSTEM RELOAD DELTA KERNEL TRACING <level> コマンドを追加しました。#96763 (Kseniia Sumarokova).
  • Glue メタデータで metadata_location が指定されていない場合、Iceberg テーブルのメタデータの場所を自動的に推定するようになりました。#91994 (Andrey Zvonov).
  • Iceberg の manifest ファイルエントリで、position delete ファイル名の下限値と上限値を解析するようになり、データファイルの選択が改善されました。#93980 (Daniil Ivanik).
  • Iceberg テーブルで PREWHERE 最適化を有効にしました。#95476 (Konstantin Vedernikov).
  • Iceberg テーブルで、スレッドおよびメモリの制限がデータファイルリーダーと position delete ファイルリーダーの間で共有されるようになりました。#94701 (Yang Jiang).
  • Iceberg テーブルで ALTER TABLE RENAME COLUMN のサポートを追加しました。#97455 (murphy-4o).
  • データレイク向けに Google Cloud Storage のサポートを追加しました。#93866 (Konstantin Vedernikov).
  • Unity Catalog 使用時の長時間実行クエリ中に、S3 アクセストークンが動的に更新されるようになりました。#95069 (Konstantin Vedernikov).
  • aws_role_arn および aws_role_session_name 設定による Glue catalog へのロールベースアクセスを追加しました。#90825 (Antonio Andelic).

S3Queue

  • S3Queue は、ordered mode で Hive パーティションを追跡するようになりました。#81040 (Anton Ivashkin).
  • S3Queue の ordered mode の処理がバケットを用いるようにリファクタリングされ、Keeper へのリクエスト数が削減され、パフォーマンスが向上しました。#92889 (Kseniia Sumarokova).
  • S3Queue の ordered mode に、より汎用的なパーティション化のサポートが追加されました。#94321 (Bharat Nallan).
  • ordered mode の S3Queue に、パーティションキーに基づくバケット化が追加されました。#94698 (Bharat Nallan).
  • keeper_path 設定を介した、S3Queue の補助 ZooKeeper サポートが追加されました。#95203 (Diego Nieto).
  • S3(Azure)Queue の ordered mode では、制限を追跡することで失敗したノードをクリーンアップするようになりました。#94412 (Kseniia Sumarokova).

S3 とオブジェクトストレージ

  • S3 の x-amz-server-side-encryption ヘッダーは、HeadObjectUploadPartCompleteMultipartUpload リクエストには伝播されなくなりました。 #64577 (Francisco J. Jurado Moreno).
  • S3 テーブルエンジンおよび s3 テーブル関数の名前付きコレクションで、storage_class_name を指定できるようになりました。 #91926 (János Benjamin Antal).
  • インスタンスプロファイル認証情報を使用して多数の S3 クエリを同時実行した際に発生していた、EC2 メタデータエンドポイントのスロットリングを修正しました。認証情報プロバイダーはキャッシュされ、すべてのクエリ間で共有されるようになりました。 #92891 (Sav).
  • AWS S3 C++ SDK に MinIO 互換サポートを追加し、MinIO 固有のエラーに対するエラーコードマッピングを実装することで、セルフホスト型 MinIO クラスタでの信頼性を向上させました。 #93082 (XiaoBinMu).
  • S3 の認証エラーメッセージを改善し、認証情報をチェックするためのヒントを追加しました。 #95648 (Gerald Latkovic).
  • Azure Blob Storage では、ネイティブコピーが何らかのエラーで失敗した場合、読み取り/書き込みコピーにフォールバックするようになりました (以前は Unauthorized の場合のみ) 。 #92888 (Smita Kulkarni).

関数

  • avg() が、引数として DateDateTimeTime の各値をサポートするようになりました。#87845 (Yarik Briukhovetskyi).
  • mapContainsKeyLikemapContainsValueLike で、mapKeys() または mapValues() に対するテキスト索引を利用できるようになりました。#93049 (Michael Jarrett).
  • flipCoordinatesGeometry 型をサポートするようになりました。#93303 (Bharat Nallan).
  • hasAnyTokens 関数および hasAllTokens 関数の 64 トークン制限を削除しました。#95152 (Elmi Ahmadov).
  • 他の距離関数との一貫性を保つため、cosineDistance のエイリアスとして distanceCosine を追加しました。#96065 (Raufs Dunamalijevs).
  • ClickHouse KQL に iif 関数を追加しました。#94790 (happyso).
  • use_variant_as_common_type がデフォルトで有効になり、ArrayUNION クエリ、if/multiIf/case 分岐内で互換性のない型を扱えるようになりました。#90677 (Alexey Milovidov).

設定と構成

  • use_skip_indexes_on_data_read はデフォルトで有効になりました。#93407 (Shankar Iyer) 。
  • add_minmax_index_for_time_columns 設定を追加しました — 有効にすると、すべての DateDate32TimeTime64DateTimeDateTime64 カラムに対して、minmax 索引が自動的に作成されます。#93355 (Michael Jarrett) 。
  • materialize_statistics_on_merge 設定 (デフォルトで有効) を追加し、マージ中に統計値をマテリアライズするかどうかを制御できるようにしました。#93379 (Han Fei).
  • 悪意のあるペイロードを防止するため、バイナリ形式でデコードできる型ノードの総数を制限する input_format_binary_max_type_complexity 設定を追加しました。#92519 (Raufs Dunamalijevs).
  • trace_profile_event を使用したトレース対象を特定のイベント名に限定するための trace_profile_events_list 設定を追加しました。#92298 (Alexey Milovidov).
  • type_json_allow_duplicated_key_with_literal_and_nested_object 設定を追加し、一方がリテラルでもう一方がネストされたオブジェクトである JSON 内で、重複するパスを許可できるようにしました。これは、パスの重複排除が強制される前に作成されたデータとの後方互換性を確保するためです。#93604 (Pavel Kruglov).
  • マージ時および解析時に JSON カラム内の動的サブカラム数を制限するため、merge_max_dynamic_subcolumns_in_compact_part MergeTree 設定と max_dynamic_subcolumns_in_json_type_parsing クエリレベル設定を追加しました。#94184 (Pavel Kruglov).
  • allow_statistics_optimize のエイリアスとして use_statistics を追加し、use_primary_key および use_skip_indexes との一貫性を持たせました。#94366 (Robert Schulze).
  • 要素の存在をチェックするために、Numbers-to-Enum 変換で input_format_numbers_enum_on_conversion_error を有効にしました。#94384 (Elmi Ahmadov) 。
  • テーブルに行ポリシーがあるにもかかわらず、現在のユーザーに適用されるものがない場合に、設定ミスの可能性を検出するために例外を送出する設定が追加されました。 #95014 (Vitaly Baranov).
  • 互換性バージョン 26.2 以降では、enable_max_bytes_limit_for_min_age_to_force_merge がデフォルトで有効になりました。 #95917 (Christoph Wurm).
  • core_dump.size_limit は、サーバーの再起動なしでホットリロードできるようになりました。#96524 (Miсhael Stetsyuk).
  • 設定の再読み込み時に、コマンドラインによるオーバーライドが反映されるようになりました。 #80295 (Alexey Milovidov) 。
  • サーバーログに、複合ローテーション方式 (サイズ + 時間) を追加しました。#87620 (Jianmei Zhang).
  • 分散索引分析を、パーツ数 (distributed_index_analysis_min_parts_to_activate) および索引サイズ (distributed_index_analysis_min_indexes_size_to_activate) に応じて有効化できるようになりました。#95216 (Azat Khuzhin) 。
  • 統計値キャッシュは、更新間隔が300秒でデフォルトで有効になりました。#95841 (Han Fei) 。
  • path 設定パラメータは、起動時に作業ディレクトリからの相対パスとして解釈されるようになり、データディレクトリが想定外の場所に配置されるのを防止します。#96305 (Alexey Milovidov).

システムテーブルと監視

  • 診断性向上のため、system.mutationsparts_postpone_reasons カラムを追加しました。#92206 (Shaohua Wang).
  • system.data_skipping_indicescreation (implicit/explicit) カラムを追加しました。#92378 (Raúl Marín).
  • 実行中のタスクが system.background_schedule_pool および対応するログテーブルに反映されるようになりました。#92587 (Azat Khuzhin).
  • 実行中の内部クエリ以外のクエリ数を追跡する QueryNonInternal メトリクスを追加しました。これにより、max_concurrent_queries 制限に対する同時実行数を監視しやすくなります。#94284 (Ashwath Singh).
  • 最長実行中のマージの経過時間を示す非同期メトリクスを追加しました。#94825 (Raúl Marín).
  • 物理接続を反映するため、query_logconnection_addressconnection_port を追加しました (プロキシ経由で接続している場合に有用です) 。#95471 (Yakov Olkhovskiy).
  • system.crash_log にさらに多くの情報を追加しました。#94112 (Miсhael Stetsyuk).
  • system.aggregated_zookeeper_log にコンポーネント名を追加しました。#95882 (Antonio Andelic).
  • 利用可能なすべてのトークナイザーを表示する system.tokenizers テーブルを追加しました。#96753 (Robert Schulze).
  • jemalloc メモリアロケーターの統計値を対話的に可視化するための system.jemalloc_stats テーブルと /jemalloc.html HTTP エンドポイントを追加しました。#97077 (Antonio Andelic).
  • jemalloc ヒーププロファイルの読み取りと分析を行うための system.jemalloc_profile_text テーブルを追加しました。raw、symbolized、collapsed の各出力形式をサポートしています。#97218 (Antonio Andelic).
  • MUTATE_PART および MUTATE_PART_START イベント向けに、system.part_logmutation_ids を追加しました。#93811 (Shaohua Wang).
  • ネストされたグローバルサーバー設定 (例: logger.level) が system.server_settings に部分的に表示されるようになりました。#94001 (Hechem Selmi).
  • view_duration_ms には、スレッド継続時間の合計ではなく、グループがアクティブだった時間が表示されるようになりました。#94966 (Sema Checherinda).
  • system.blob_storage_log が Azure Blob Storage、Local、HDFS でも利用可能になりました。あわせて error_code カラムも追加しました。#93105 (Alexey Milovidov).
  • 平均より遅いバックグラウンドタスクが、設定可能なしきい値 (background_schedule_pool_log.duration_threshold_milliseconds、デフォルトは 30ms) を超えた場合にログへ記録されるようになりました。#92965 (Azat Khuzhin).
  • URL ストレージのパスワードがクエリログに表示されなくなりました。#93245 (Konstantin Vedernikov).

ClickHouse Keeper

  • 最後にコミットされたインデックスより前にログがある場合でも、Keeper のログエントリ内の欠落を正しく処理するようになりました。#90403 (Antonio Andelic).
  • Keeper リクエスト用の OpenTelemetry トレーシングを追加しました。#91332 (Miсhael Stetsyuk).
  • 新しい Keeper メトリクス KeeperChangelogWrittenBytesKeeperChangelogFileSyncMicrosecondsKeeperSnapshotWrittenBytesKeeperSnapshotFileSyncMicrosecondsKeeperBatchSizeElementsKeeperBatchSizeBytes を追加しました。#92149 (Miсhael Stetsyuk).
  • CHECK_STAT および TRY_REMOVE の Keeper 拡張機能がデフォルトで有効になりました。#93886 (Mikhail Artemenko).
  • 壊れたスナップショットや不整合な変更ログを検出した場合、Keeper は abort するのではなく例外を送出するようになり、より安全に復旧するために手動での介入が必要になります。#94168 (Antonio Andelic).
  • getChildren Keeper リクエストに with_data および with_stat 拡張機能を追加し、子要素をデータおよび統計情報とあわせて 1 回の操作で取得できるようにしました。#94826 (Nikolay Degterinsky).
  • クラスタの構成失敗につながる可能性がある Keeper の設定不備をチェックする機能を追加しました。#94682 (Konstantin Bogdanov).
  • Database Replicated でのテーブル取得を改善するため、with_data Keeper 拡張機能のサポートを追加しました。#96090 (Nikolay Degterinsky).
  • 補助 ZooKeeper に対して system.zookeeper 経由で挿入できるようになりました。#92092 (RinChanNOW).

メモリ管理

  • ファイルシステムキャッシュの領域予約を最適化し、排出候補を排他ロックを保持せずに収集できるようにしました。#82764 (Kseniia Sumarokova).
  • リモートテーブルエンジン/関数向けに、ファイルシステムキャッシュの読み取りバッファで並列読み取りを有効にしました。#71781 (Kseniia Sumarokova).
  • jemalloc のダーティページの即時パージを有効にし、Linux 以外のシステムでのメモリ使用量を削減しました。#93360 (Eduard Karacharov).
  • jemalloc のダーティページのパージが、メインの MemoryWorker スレッドとは別スレッドで実行されるようになりました。総メモリ使用率に基づいてパージを行うための memory_worker_purge_total_memory_threshold_ratio 設定を追加しました。#94902 (Antonio Andelic).
  • ClickHouse が継続的なメモリ逼迫状態にある場合、jemalloc のダーティページの decay が動的に無効化されるようになりました。#95145 (Antonio Andelic).
  • MergeTree からデータを読み取る前に、明示的なメモリ消費チェックを追加し、本番環境での運用経験に基づいてスレッドプールのキューサイズを引き下げました。#94692 (Nikita Mikhaylov).
  • ユーザー認証の前に総メモリ制限をチェックするようになり、制限を超過している場合は memory limit exceeded をスローします。#95003 (Nikolai Kochetov).
  • クエリ条件キャッシュにおけるメモリ計上の誤りを修正しました。#95478 (Nikita Mikhaylov).
  • 集約/ソート中にディスクへスピルする際のクエリメモリ使用量の検出を、より堅牢にしました。#92500 (Azat Khuzhin).
  • CPU 枯渇時にプロセスを保護するため、スケジューラが MemoryWorker スレッドを優先するようになりました。#94864 (Nikita Mikhaylov).
  • テーブルの読み取り時に、一部のケースで ClickHouse がメモリ制限を尊重しなかった問題を修正しました。#93715 (Nikita Mikhaylov).

データ形式

  • Parquet リーダーで、Tuple または マップ カラムを JSON として読み取れるようになりました。#92864 (Michael Kolupaev).
  • Parquet リーダーが空のタプルをサポートするようになりました。#92868 (Michael Kolupaev).
  • Date 型は、Arrow/ArrowStream 形式において Arrow ネイティブの date32 型としてシリアライズされるようになりました (従来は uint16) 。以前の動作は、output_format_arrow_date_as_uint16 設定でリストアできます。#96860 (Alexey Milovidov).
  • Hash 出力形式がブロックサイズに依存しなくなりました。#94503 (Alexey Milovidov).
  • Pretty JSON 形式では、単純な型が個別の行に出力されなくなりました。#93836 (Pavel Kruglov).
  • スキーマ推論で allow_experimental_nullable_tuple_type が考慮されるようになりました。有効にすると、欠落しているネストされたオブジェクトは、NULL 要素のタプルではなく NULL になる場合があります。#95525 (Nihal Z. Miaji).
  • SQL フォーマッタは、SELECT を括弧で囲む代わりに、AS SELECT の前に COMMENT を出力するようになりました。#96293 (Alexey Milovidov).
  • simdcomp を使用して postings list の圧縮を最適化しました。#92871 (Peng Jian).

バックアップとリストア

  • リフレッシャブルmaterialized view のデータをバックアップ対象に含めるかどうかを制御するための backup_data_from_refreshable_materialized_view_targets バックアップ設定を追加しました。APPEND リフレッシュ戦略を使用する RMV のターゲットは、常にバックアップされます。#93658 (Julia Kartseva).
  • S3 および Azure Blob Storage 向けの BACKUP/RESTORE で、SQL で定義された名前付きコレクションのサポートを追加しました。#94605 (Pablo Marcos).

名前付きコレクションとDictionary

  • MongoDB テーブル関数で、名前付きコレクションのパラメータ上書きが許可されるようになりました。#89616 (vanchaklar).
  • YTsaurus の Dictionary とテーブルで、名前付きコレクションが有効になりました。#94582 (MikhailBurdukov).
  • YTsaurus の動的テーブルの Dictionary ソースに、カラムの説明を渡せるようになりました。#92391 (MikhailBurdukov).
  • 明示的に指定した場合、パラメータ化されたビューのスキーマが表示されるようになりました。#90220 (Grigorii Sokolik).

重複排除

  • 後方互換性オプションを追加するため、insert_select_deduplicate設定を改訂しました。#92951 (Sema Checherinda).
  • materialized view が関係する場合でも、非同期挿入での重複排除が可能になりました。#93957 (Sema Checherinda).

その他の改善

  • SYSTEM INSTRUMENT ADD/REMOVE の UX を改善しました。関数名に文字列リテラルを使えるようになり、一致するすべての関数にパッチが適用されるようになったほか、REMOVEfunction_name がサポートされました。#93345 (Pablo Marcos).
  • 一時停止可能な failpoint 向けの SYSTEM NOTIFY FAILPOINT と、PAUSE/RESUME 向けの SYSTEM WAIT FAILPOINT を追加しました。#92368 (Shaohua Wang).
  • system.trace_logsystem.symbols、および demangle 関数で、C++ 関数名が正しく表示されるようになりました。#93075 (Alexey Milovidov).
  • jemalloc プロファイルがシンボル付きで書き込まれるようになり、ヒーププロファイルの生成時にバイナリが不要になりました。#93099 (Azat Khuzhin).
  • スタックアンワインド中に dropReplicationSlot が例外をスローした場合に、MaterializedPostgreSQL データベースへテーブルをアタッチするとクラッシュする不具合を修正しました。#96871 (Alexey Milovidov).
  • CREATE TABLE が失敗した際に、不要な残存物が残る可能性がある問題を修正しました。#94174 (Azat Khuzhin).
  • パスワードで保護された TLS キーを使用した際に、未初期化メモリにアクセスする不具合を修正しました。#94182 (Konstantin Bogdanov).
  • ロック取得中に alter table ... modify setting ... がタイムアウトした場合、論理エラーではなくタイムアウトエラーを返すようになりました。#93856 (Han Fei).
  • CPU プロファイラおよびリアルタイムプロファイラとソケットタイムアウトの相互運用性を改善しました。#96601 (Sergei Trifonov).
  • リリースビルドで高速な libcxx ハードニング (主に範囲外チェック) を有効にしました。性能への目立った影響はありません。#94757 (Miсhael Stetsyuk).

パフォーマンスの向上

JOIN パフォーマンス

  • ColumnVector::replicate に動的ディスパッチを実装し、一部のハッシュ JOIN 操作を高速化しました。#79573 (Raúl Marín).
  • より多くのフィルタリングを JOIN にプッシュダウンできるようになりました。#85556 (Nikita Taranov).
  • フィルタリングが片側の入力だけを使用する場合、ANYSEMIANTI JOIN について、JOINON 条件からのフィルタリングのプッシュダウンを拡張しました。#92584 (Dmitry Novik).
  • SEMI JOIN のフィルタリングをプッシュダウンするために、同値 Set を使用できるようになりました。#92837 (Dmitry Novik).
  • 複雑な述語に対して、ParallelHashJoin における非結合行の処理を並列化しました。これは parallel_non_joined_rows_processing 設定で制御されます (デフォルトで有効) 。#92068 (Yarik Briukhovetskyi).
  • 右側が空の場合、ハッシュ JOIN は左側の読み取りを完全にスキップするようになり、重いフィルタリングや集約による不要な処理を回避します。#94062 (Alexander Gololobov).
  • RIGHT OUTER JOIN で JOIN ランタイムフィルターがサポートされるようになりました。#96183 (Hechem Selmi).
  • PREWHERE の最適化は JOIN ランタイムフィルターの最適化後まで延期されるようになり、ランタイムフィルターも PREWHERE にプッシュダウンできるようになりました。#95838 (Alexander Gololobov).

クエリ最適化

  • パーティションキーがソートキーと一致するか、そのプレフィックスである場合、ウィンドウ関数に対するソート順最適化を無効化し、並列実行のパフォーマンスを向上させました。#87299 (Nikita Taranov).
  • 外側のフィルタがビューにプッシュダウンされるようになり、ローカルノードとリモートノードの両方で PREWHERE を適用できるようになりました。#88316 (Igor Nikonov).
  • 小数値の LIMIT および OFFSET について、パフォーマンスとメモリ使用量を最適化しました。#91167 (Ahmed Gouda).
  • 仮想カラムに対する定数フィルタリングが重複して評価されなくなりました。#91588 (c-end).
  • 主キー内の任意の決定的な式 (例: ORDER BY cityHash64(user_id)) をデータスキップに使用できるようになりました。ClickHouse はこの式をクエリ定数に適用し、その結果を =, IN, has による主キー索引のルックアップに使用します。単射な式については、否定形 (!=, NOT IN, NOT has) もサポートされます。#92952 (Nihal Z. Miaji).
  • read-in-order 最適化で、WHERE 条件によって ORDER BY のカラムが定数になっている場合を認識できるようになり、効率的な逆順読み取りが可能になりました。これは WHERE tenant='42' ORDER BY tenant, event_time DESC のようなマルチテナントクエリに有効です。#94103 (matanper).
  • 主キー条件の後にスキップ索引を使用する FINAL クエリでは、PrimaryKeyExpand ステップが、最初に絞り込まれた主キー範囲のみをチェックするようになりました。#94903 (Shankar Iyer).
  • 遅延マテリアライズ最適化が UNION ALL クエリの最初の分岐だけでなく、すべての分岐に適用されるようになりました。これにより、異なる MergeTree テーブルからの複数のソート済みかつ件数制限付き読み取りを組み合わせるクエリで、I/O を削減できます。#96832 (Federico Ginosa).

関数および集約のパフォーマンス

  • JIT コンパイルの対象となる関数を拡大しました。#88770 (Alexey Milovidov).
  • distinctJSONPaths 集約関数を最適化し、JSON カラム全体ではなく、データパートから JSON パスのみを読み取るようにしました。#92196 (Pavel Kruglov).
  • 同一要素が連続して現れることが多い場合の uniqExact を最適化しました。#93268 (Alexey Milovidov).
  • 入力値がすべて ASCII の場合の isValidASCII を高速化しました。#93347 (Robert Schulze).
  • 可能な場合 (NULL ではない、-If ではない、GROUP BY なし、IPv6 または String ではない) に挿入をバッチ化することで、数値型に対する uniq を高速化しました。#95904 (Raúl Marín).

ストレージおよび I/O パフォーマンス

  • Parquet Reader V3 Prefetcher を修正し、より高速なランダムリードロジックを使用するようにしました。#91435 (Arsen Muk).
  • icebergCluster のパフォーマンスを改善しました。#91537 (Yang Jiang).
  • 適応的書き込みバッファを有効化することで、Wide パーツを持つ非常に幅の広いテーブルでの INSERT およびマージ時のメモリ使用量を削減しました。さらに、暗号化ディスクに対する適応的書き込みバッファのサポートも追加しました。#92250 (Azat Khuzhin).
  • テキスト索引と sparseGrams トークナイザを使用した全文検索のパフォーマンスを、検索対象のトークン数を削減することで改善しました。#93078 (Anton Popov).
  • x86 で動的ディスパッチを使用することで、T64 コーデックの圧縮を高速化しました。#95881 (Raúl Marín).
  • x86 における 32 バイトブロックの LZ4 展開を高速化しました。#96778 (Raúl Marín).
  • テキスト索引の直接読み取り最適化が部分的に機能するようになりました。マテリアライズドされたテキスト索引を持つパーツではそれが使用され、持たないパーツでは元のフィルタ式にフォールバックします。#96411 (Anton Popov).
  • 不要なデータコピーを削除し、数値カラムに対するベクトル化された min/max 計算を有効化することで、INSERT 中の minmax スキップ索引の計算を最適化しました。#97392 (Raúl Marín).
  • system log テーブルに対し、フィルタリングを高速化するため、時間カラムに minmax セカンダリ索引を、query_id/initial_query_id カラムに bloom_filter 索引を追加しました。#96712 (Alexey Milovidov).
  • 重複排除が有効でない場合の INSERT におけるメモリ使用量のリグレッションを回避しました。#96503 (Alexey Milovidov).

メモリ最適化

  • ハイライトおよび VALUES のパースが有効でない場合、未使用フィールドを削除することで ASTLiteral のメモリフットプリントを削減しました。#93974 (Ilya Yatsishin).
  • 汎用的な ASTLiteral の子要素ではなく、値パラメータを文字列/整数の組として格納する専用の Enum AST クラスを導入し、メモリ消費を削減しました。#94178 (Ilya Yatsishin).
  • カラム名を汎用的な AST リテラルノードではなく文字列として直接格納することで、名前付きタプル AST オブジェクトのメモリ消費を最適化しました。#94704 (Ilya Yatsishin).
  • CachedOnDiskReadBufferFromFile 構造体のサイズを約 1/50 に削減しました。#96098 (Azat Khuzhin).
  • テーブルが空の場合、HashTable::resize は古いデータをコピーしなくなりました。#96180 (Raúl Marín).

内部最適化

  • クエリパイプライン内でデータをパーティション分割するために "fastrange" (Daniel Lemire) 手法を採用し、並列ソートと JOIN の性能を向上させました。#93080 (Alexey Milovidov).
  • 追加のリンカーオプションにより、デバーチャライゼーションを改善しました。#94737 (Nikita Taranov).
  • ZooKeeper リクエストをバッチ処理することで、多数のパーツを持つ ReplicatedMergeTree テーブルにおけるレプリカのクローン処理性能を改善しました。#94847 (c-end).
  • より高速なハッシュ化とロックフリーカウンターへの切り替えにより、observeOperations に起因する ZooKeeper の受信スレッドの CPU 使用量を 20% 超削減しました。#95962 (Miсhael Stetsyuk).

バグ修正

すべてのバグ修正 (クリックして展開)

JOINの修正

  • outer-to-inner join の最適化が適用された際に Join ストレージで発生していた INCOMPATIBLE_TYPE_OF_JOIN エラーを修正しました。#84292 (Vladimir Cherkasov).
  • USING 句と join_use_nulls を使用した、複数の JOIN を含むクエリで発生する論理エラーを修正しました。#92251 (Vladimir Cherkasov).
  • join_use_nulls 使用時の join の並べ替えにおける論理エラーを修正しました。#92289 (Vladimir Cherkasov).
  • join_on_disk_max_files_to_merge 設定で発生する可能性があるクラッシュを修正しました。#92335 (Bharat Nallan).
  • 外部結合を内部結合に変換する際に、クエリプランが意図せず変更されることで発生していた LOGICAL_ERROR を修正しました。また、結合時に集約キーで単射関数が使用される場合にも適用できるよう、最適化の要件を緩和しました。 #92503 (János Benjamin Antal).
  • 定数条件での複数の JOIN と join_use_nulls に関する論理エラーを修正しました。 #92892 (Vladimir Cherkasov).
  • LowCardinality(Nullable(T)) カラムでの full_sorting_join における NULL != NULL のケースを修正しました。 #92924 (Vladimir Cherkasov).
  • 右側の結合キーがスパースカラムだった場合の結合結果を修正しました。#93038 (Amos Bird) 。
  • LEFT ANTI JOIN に追加の条件がある場合に、ランタイムフィルターが正しく動作しない問題を修正しました。 #91824 (Alexander Gololobov).
  • 右側のテーブルに対する totals を含むクエリでランタイムフィルターを使用した際に発生していた論理エラーを修正しました。#93330 (Alexander Gololobov) 。
  • 一部のケースで、重複した const カラムが誤って返されることにより、JOIN ランタイムフィルターがクエリプランに追加された際に発生していた論理エラーを修正しました。 #93144 (Alexander Gololobov).
  • 結合ランタイムフィルターで使用される __applyFilter 関数が、一部の有効な場合に ILLEGAL_TYPE_OF_ARGUMENT を返していた不具合を修正しました。#93187 (Alexander Gololobov).
  • すでにデータが入っている右側のテーブルと結合する際に、ランタイムフィルターが追加されない問題を修正しました。#93211 (Alexander Gololobov) 。
  • ランタイムフィルター有効時に、結合されたテーブルが同じカラムを複数回返すと NOT_FOUND_COLUMN_IN_BLOCK エラーが発生する不具合を修正しました。 #93526 (Alexander Gololobov).
  • Mergeテーブルに対してJOINランタイムフィルターが適用された際に、FilterStepが適切に追加されない問題を修正しました。#94021 (Alexander Gololobov).
  • USING 句を使用した Join ストレージの結合処理における、スーパータイプへの型変換を修正しました。#94000 (Dmitry Novik).
  • 並列レプリカおよび非MergeTreeテーブルとのJOINを含むクエリを修正しました。 #93902 (Igor Nikonov).
  • ランタイムフィルターにおけるNullable結合カラムの競合状態の問題を修正しました。 #95775 (Hechem Selmi).
  • Nullable(String) キーを持つ Join テーブルで、空文字列が NULL になってしまう問題を修正しました。#96002 (Alexey Milovidov) 。
  • 空のMergeTreeテーブルに対してdirect結合アルゴリズムを使用した際のNOT_SUPPORTEDエラーを修正しました。#95935 (Vladimir Cherkasov).
  • 外部結合と複数の INNER JOIN を組み合わせたクエリにおいて、外部結合の ON 条件がそれまでに結合された複数のテーブルのカラムを参照している場合に、不正な結合順序の並べ替えによって誤った結果が返される問題を修正しました。 #96193 (Vladimir Cherkasov).
  • TupleカラムでNullableのサブフィールドに対して発生していたランタイムフィルターの例外を修正しました。 #96509 (Alexey Milovidov).
  • CROSS JOIN を含むクエリで、並列レプリカを有効にした際に誤った結果が返される問題を修正しました。 #96848 (Igor Nikonov).
  • INNER JOIN および WHERE 句とともに使用した際に arrayJoin が重複した行を生成する不具合を修正しました。原因は、部分的な述語プッシュダウンにより、arrayJoin を含むフィルタリングが JOIN の下に誤って押し下げられていたことです。#96989 (Alexey Milovidov).
  • WHERE 句内の arrayJoin が JOIN の両側のカラムを参照していた場合に発生していた LOGICAL_ERROR を修正しました。#97239 (Alexey Milovidov) 。
  • USING を使用する JOIN の VALUES 句内で、ラムダ関数内にマッチャー (*) を使用した際に発生する論理エラーを修正しました。#95661 (Vladimir Cherkasov).
  • USING カラムの型が異なる場合に、matcher (*table.*) および analyzer_compatibility_join_using_top_level_identifier で発生する可能性があった論理エラーを修正しました。#95808 (Vladimir Cherkasov).
  • analyzer_compatibility_join_using_top_level_identifier と ALIAS カラムに関連する論理エラーを修正しました。#97297 (Vladimir Cherkasov).
  • 重複した別名を含む JOIN を使用した際に、旧アナライザーでクラッシュする問題を修正しました。 #96405 (Ilya Golshtein).

クエリとアナライザーの修正

  • 事前定義済みのクエリハンドラーで、末尾の空白文字が INSERT 時にデータとして解釈される不具合を修正しました。 #83604 (Fabian Ponce).
  • Enum 要素の拡張など、メタデータのみを変更する ALTER の後に、プロジェクション付き集約で例外が発生する問題を修正しました。#84143 (Alexey Milovidov).
  • ウィンドウ関数および複数引数に対する count_distinct_optimization パスを修正しました。 #92376 (Raúl Marín).
  • 否定されたリテラルを含む arrayElement のASTフォーマットの不整合を修正しました。 #92293 (Pavel Kruglov).
  • 定数でない配列引数を使用する NOT IN が誤った値を返す不具合を修正しました。#93314 (Yarik Briukhovetskyi).
  • Nothing 型に関する null-safe 比較のエラーを修正しました。#91884 (Yarik Briukhovetskyi).
  • use_top_k_dynamic_filtering 最適化で発生する Not found column エラーを修正しました。#93316 (Nikolai Kochetov).
  • スカラー相関サブクエリがある場合に、サブクエリから未使用のカラムが削除される問題を修正しました。#93273 (Dmitry Novik).
  • キーが符号付き整数型の場合、分散クエリで optimize_inverse_dictionary_lookup が機能しない問題を修正しました。#93848 (Nihal Z. Miaji).
  • 分散 remote() クエリで lag/lead が機能しない問題を修正しました。#93858 (Nihal Z. Miaji) 。
  • WHEREnot match(...) を使用した際のデータスキップロジックのバグを修正し、誤った結果が返される問題を解消しました。#92726 (Nihal Z. Miaji).
  • WHEREnot materialize(...) または not CAST(...) を使用した際に、データスキップロジックの不具合によって誤った結果が返される問題を修正しました。 #93017 (Nihal Z. Miaji).
  • 空の配列が has 関数で使用された場合に、索引の解析中に発生していた論理エラーを修正しました。#92995 (Nihal Z. Miaji).
  • 空のタプルを Map カラムで使用したまれなケースで発生する論理エラーを修正しました。#93814 (Nihal Z. Miaji).
  • PK 分片を使用するクエリで、条件が false の場合に失敗していた問題を修正しました。#92815 (Yarik Briukhovetskyi) 。
  • Merge テーブルエンジンのクエリプランニングで、ローカルテーブルとリモート/分散テーブルをマージする際に hostName() に対して ILLEGAL_COLUMN が発生していた問題を修正しました。#93286 (Jinlin).
  • 別名を持つテーブル上の Merge エンジンで発生していた NO_SUCH_COLUMN_IN_TABLE エラーを修正しました。#92910 (Pavel Kruglov).
  • 複数のカラムに対する述語を含み、Bloom フィルターのスキップ索引と OR および NOT 条件の両方を使用する SELECT クエリで、不整合な結果が返される問題を修正しました。#94026 (Shankar Iyer) 。
  • フィルタリングにサブカラムが含まれる場合のプロジェクションの適用を修正しました。#93141 (Pavel Kruglov) 。
  • マージ中にプロジェクションが再構築された際に発生する_part_offsetの破損を修正し、不要な読み取りを回避することでプロジェクション処理を最適化しました。#93827 (Amos Bird) 。
  • 実質的に同じカラムの別名である場合に、ブロック内で異なる補間済みカラムが同一のカラムに折りたたまれるのを防止しました。#93197 (Yakov Olkhovskiy).
  • マージ時にプロジェクションが再構築される際、未使用のカラムを削除することで、メモリ使用量を削減し、作成される一時パーツ数も減らしました。#93233 (Nikolai Kochetov).
  • 分散クエリで負の LIMIT/OFFSET を使用した一部のケースで発生していた論理エラーを修正しました。#95357 (Nihal Z. Miaji).
  • 分散クエリで小数の LIMIT/OFFSET を使用した際に、一部のケースで発生していた論理エラーを修正しました。 #96475 (Nihal Z. Miaji).
  • transform_null_in が有効な場合に、NULL 値に対して IN 関数が誤った結果を返す問題を修正しました。#95674 (Nihal Z. Miaji).
  • 単一のカラム参照を含むIN (col)UNSUPPORTED_METHODエラーで失敗する不具合を修正しました。#97646 (Alexey Milovidov).
  • 集約関数の引数が LowCardinality(Nullable) の場合に、optimize_syntax_fuse_functionssum/count/avgsumCount() に書き換えていた問題を修正しました。#96239 (Nihal Z. Miaji).
  • not IN および not has 関数における誤ったパーティションプルーニングを修正しました。#96241 (Nihal Z. Miaji).
  • prewhere 内のラムダ式が原因で発生していた prewhere フィルタリングエラーを修正しました。 #95395 (Xiaozhe Yu).
  • 具体的な値が期待される箇所にラムダ式が渡された場合に、クエリアナライザーで発生していた LOGICAL_ERROR を修正しました。#96892 (Alexey Milovidov).
  • ラムダ関数を含む特定の式におけるヌルポインタ参照を修正しました。 #96479 (Alexey Milovidov).
  • CTE およびサブクエリ内の file などのテーブル関数に、各サブクエリの SETTINGS が適用されない問題を修正しました。 #96882 (Alexey Milovidov).
  • CTE で折りたたまれた定数に対するクエリ条件キャッシュのハッシュ衝突を修正しました。この問題により、誤ったクエリ結果が返される可能性がありました。 #96172 (Alexey Milovidov).
  • analyzer を有効にした状態で merge() テーブル関数を介して、ALIAS カラム内にラムダ式を含むテーブルをクエリする際に発生していた BAD_ARGUMENTS エラーを修正しました。#97551 (Alexey Milovidov).
  • EXCEPT ALLINTERSECT ALL が行の多重度を無視し、それぞれ DISTINCT 版と同様に動作していた問題を修正しました。#96876 (Alexey Milovidov).
  • PRECEDING オフセットが大きい場合に WindowTransform で発生するアサーション失敗を修正しました。#96026 (Alexey Milovidov) 。
  • group_by_use_nulls = 1 および CUBE/ROLLUP/GROUPING SETS を併用してウィンドウ関数を使用した際に発生していた例外を修正しました。#96878 (Alexey Milovidov).
  • GROUPING SETSgroup_by_use_nulls、および LowCardinality を伴う Tuple の組み合わせで、予期しないブロック構造が生成される問題を修正しました。#96358 (Alexey Milovidov).
  • キーに Nullable(Tuple(...)) 内の LowCardinality(Nullable(...)) が含まれている場合の GROUP BY ... WITH ROLLUP/CUBE における論理エラーを修正しました。#97647 (Alexey Milovidov) 。
  • if または transformNullable(String) を返す場合に IfTransformStringsToEnumPass で発生するアサーション失敗を修正しました。#97002 (Alexey Milovidov).
  • optimize_inverse_dictionary_lookupdictGet(...) の述語を書き換える際、CREATE TEMPORARY TABLE 権限のないユーザーで ACCESS_DENIED が発生していた問題を修正しました。#97484 (Nihal Z. Miaji) 。
  • PREWHERE と型推論を伴う分散クエリのまれなケースにおいて、if 関数の UInt64Int32 間の型不一致を修正しました。#96012 (Alexey Milovidov).
  • Bool 型を使用する JIT コンパイルされたクエリを修正しました。#96013 (Alexey Milovidov).
  • JITでコンパイル済みの式がDateTimeDateTime64に変換する際に誤った結果を返す問題を修正しました (たとえば、DateTime型が混在するCASE/if/multiIfの場合) 。 #96879 (Alexey Milovidov).
  • 固定幅でないフォーマッタを使用した formatDateTime における未初期化の値の使用を修正しました。#96133 (Alexey Milovidov).
  • 互換性のない型で呼び出された場合に indexOfAssumeSorted で発生する std::terminate を修正しました。 #96877 (Alexey Milovidov).
  • ジオメトリ関数が、Geometry バリアント型に加えて、個別のジオメトリサブタイプも受け入れるようになりました。#97571 (Alexey Milovidov).
  • 索引が row policy/PREWHERE および FINAL を含むクエリの結果に影響していた問題を修正しました。 #97076 (Yarik Briukhovetskyi).
  • read-in-order 最適化で行ポリシーを利用できるようにしました。#97538 (Janos Benjamin Antal).
  • QUALIFY 句でテキスト索引が設定されたカラムを使用した際の LOGICAL_ERROR を修正しました。 #97313 (Alexey Milovidov).
  • WHERE 句に AND/OR で結合された式が 32 個を超えて含まれている場合に発生する可能性があったクラッシュを修正しました。#97698 (Shankar Iyer).
  • FINAL を使用するテーブルで、スター展開に indexHint を使用した場合の removeUnusedColumns 最適化におけるブロック構造の不一致を修正しました。#97622 (Alexey Milovidov).
  • 括弧内のエイリアス付きタプルリテラルにおける AST のフォーマットのラウンドトリップの不整合を修正しました。 #97418 (Alexey Milovidov).
  • NOT (1, 1, 1) の AST のフォーマットの不整合を修正しました。#97653 (Alexey Milovidov).

MergeTree とストレージの修正

  • ファイルシステムで大文字と小文字が区別されない場合、MergeTree では常にファイル名をハッシュに置き換えるようにしました。従来は macOS において、カラム/サブカラム名の違いが大文字と小文字だけだった場合、データ破損を引き起こす可能性がありました。#86559 (Pavel Kruglov).
  • materialized view は、作成先のデータベースを実行コンテキストとして使用するようになり、ビューの SELECT クエリで明示的なデータベース修飾を省略できるようになりました。#88193 (Dmitry Kovalev).
  • materialized view 内の基になるクエリに対し、作成時に完全な権限チェックを追加しました。#89180 (pufit).
  • その後ロールバックされたアクティブなトランザクション内のパーツを、トランザクションを伴わないミューテーションが変更してしまう場合に発生していた論理エラーを修正しました。#90469 (Shaohua Wang).
  • 通常のデータベースを Atomic データベースに変換した後、system.warnings が正しく更新されない問題を修正しました。#90473 (sdk2).
  • ATTACH AS REPLICATED 実行時に発生する LOGICAL_ERROR: Storage does not support transaction を修正しました。#91772 (Shaohua Wang).
  • ratio_of_defaults_for_sparse_serialization=0.0 を使用したスパースなカラムのミューテーション後に発生する可能性があった FILE_DOESNT_EXIST エラーを修正しました。 #92860 (Pavel Kruglov).
  • alter によって ratio_of_defaults_for_sparse_serialization1.0 に変更された際に、スパースカラムのミューテーション後に発生する可能性がある FILE_DOESNT_EXIST エラーを修正しました。 #93016 (Pavel Kruglov).
  • 共有パーツに対する TOCTOU 競合により古いパーツが使用される可能性があった問題を修正しました。 #93022 (Azat Khuzhin).
  • MergeTree のミューテーション時にソースパートのシリアライズ情報の設定を継承するようにし、データ型のシリアライズ変更後にミューテーション済みパーツに対するクエリ結果が不正になる可能性がある問題を修正しました。 #92419 (Pavel Kruglov).
  • 同じ名前のカラムとサブカラムの競合によって、誤ったシリアル化やクエリの失敗が発生する可能性があった問題を修正しました。#92453 (Pavel Kruglov).
  • パーティション式にサブカラムを含むテーブルへの挿入時に発生する NOT_FOUND_COLUMN_IN_BLOCK を修正しました。#92905 (Pavel Kruglov).
  • ソーステーブルのALTER時に、MVでサブカラムが欠落する可能性がある問題を修正しました。#93276 (Pavel Kruglov).
  • 重複排除の競合により ReplicatedMergeTree の復元時に発生していた LOGICAL_ERROR を修正しました。#93612 (Pablo Marcos).
  • 直接デシリアライズ時の有効期限 (TTL) 更新でスパースカラムを使用するように修正し、Unexpected type of result TTL column エラーを防止しました。#93619 (Pavel Kruglov).
  • 有効期限 (TTL) 集約時に必要な場合、SET 式の結果に対する LowCardinality ラッパーをリストアしました。#92971 (Seva Potapov) 。
  • ALTER TABLE REWRITE PARTS における Cannot add action to empty ExpressionActionsChain の問題を修正しました。#92754 (Azat Khuzhin) 。
  • ON CLUSTER 使用時の CREATE USER 認証方式におけるクエリパラメータ置換を修正しました。#92777 (xiaohuanlin).
  • MergeTree テーブルが読み取り専用ディスク上にある場合、起動時に一時ディレクトリの削除を試行しないようになりました。#92748 (Alexey Milovidov).
  • サブカラム上に作成されたスキップ索引のマテリアライズ処理を修正しました。#93708 (Anton Popov).
  • 依存インデックスがある場合の CLEAR COLUMN を修正しました。#94057 (Raúl Marín) 。
  • 再起動後に interserver host が変更された場合に、Replicated データベースをアタッチできない問題を修正しました。 #93779 (Tuan Pham Anh).
  • CREATE TABLE ... AS urlCluster()Replicated データベースエンジンにおける論理エラーを修正しました。#92418 (Kseniia Sumarokova).
  • REPLACE PARTITION とバックグラウンドミューテーションの間で発生していた競合状態を修正し、古いデータと新しいデータの両方が見えてしまう可能性を解消しました。 #96955 (Alexey Milovidov).
  • REPLACE PARTITION とバックグラウンドミューテーションの間に残っていた競合状態を修正し、古いデータが再び現れる可能性のある問題を解消しました。#97105 (Alexey Milovidov) 。
  • PartCheckThread が、すでにミューテーション済みのパートに対する GET_PART を再度キューに追加した際に、ミューテーションが停止したままになる問題を修正しました。#97162 (Alexey Milovidov).
  • 同じカラムに対して以前に論理更新が行われていた場合に、ALTER TABLE DROP COLUMN が失敗する不具合を修正しました。#96861 (Anton Popov)。
  • 論理更新時にパッチパーツを適用する際に発生するヌルポインタの逆参照を修正しました。 #97583 (Alexey Milovidov).
  • 不明なプロジェクションを持つパーツは、永久に失われたものとしてマークされなくなりました。#95952 (Mikhail Artemenko).
  • CREATE TABLE ... CLONE AS ... がソーステーブルの完全修飾名を無視する問題を修正しました。#96415 (Hasyimi Bahrudin) 。
  • メタデータの変更中に、レプリケーションされたテーブルで暗黙的な索引の再生成が発生する問題を修正しました。#96600 (Raúl Marín).
  • エイリアスカラムを含む暗黙的インデックスの問題を修正し、作成前に完全な検証を行うようにしました。 #97115 (Raúl Marín) 。
  • TTLマージ後にすべての行がフィルタリングされた場合、min(timestamp)_minmax_count_projection 経由でエポック (1970-01-01) を返す問題を修正しました。 #96703 (Raquel Barbadillo).
  • use_const_adaptive_granularityindex_granularity_bytes (非適応粒度) の組み合わせによって計算が誤る問題を修正しました。#96143 (Alexey Milovidov) 。
  • 非適応型の索引粒度を使用するテーブルを ORDER BY ... LIMIT で読み取る際に発生していた、Number of rows in lazy chunk does not match number of offsets 例外を修正しました。#97270 (Alexey Milovidov).
  • 他のレプリカが共有パーツの取得を完了する前に削除される可能性があったゼロコピーレプリケーションの回帰不具合を修正しました。#95597 (filimonov).
  • SYSTEM RESTART REPLICA において、テーブルの再作成が ZooKeeper 以外の例外で失敗した場合にデータベースからテーブルが消失し、DatabaseReplicated でメタデータダイジェストの不一致が発生する不具合を修正しました。#97276 (Alexey Milovidov).
  • ALTER TABLE MODIFY COLUMN によってカラムの型が変更された後、カラム統計値の作成時に発生していた assert_cast 例外を修正しました。#97027 (Alexey Milovidov).
  • テーブルに統計値が定義されていない場合、ClickHouse は不要なオーバーヘッドを避けるため、それらを読み込もうとしなくなりました。 #96233 (Han Fei).
  • 分散 DDL の完了待機中に Replicated データベースを同時に削除した場合に発生する There was an error: Cannot obtain error message という論理エラーを修正しました。#95664 (Alexander Tokmakov).
  • テーブルの主キーがNullableで、クエリで第1引数に定数を指定したcoalesceを使用した場合にKeyConditionで発生していた論理エラーを修正しました。#96340 (Alexey Milovidov).

データ型とシリアライゼーションの修正

  • Dynamic/JSON 型の size サブカラムの読み取り時に発生する可能性のあったエラーを修正しました。#95573 (Pavel Kruglov).
  • JSON 配列に tupleElement を適用した際に発生するクラッシュを修正しました。#95647 (Pavel Kruglov) 。
  • ネストされたパスを持つ JSON に対して tupleElement を実行すると誤った結果が返される不具合を修正しました。#95907 (Pavel Kruglov).
  • 型ヒント付きパスに対する JSON で tupleElement が例外をスローしていた不具合を修正しました。#97728 (Pavel Kruglov).
  • JSONデータ型におけるパスのスキップ処理を修正しました。従来、JSON(SKIP path) は接頭辞 path を持つすべてのキー (pathpath のようなキーも含む) をスキップしていたため、データ損失につながる可能性がありました。現在は、完全に一致するキーのみがスキップされます。#95948 (Pavel Kruglov).
  • JSON 内の型付きパスに type_json_allow_duplicated_key_with_literal_and_nested_object を適用する際の不具合を修正しました。#97422 (Pavel Kruglov).
  • JSON型で、互換性のない型付きパスのチェックに関する不具合を修正しました。#92539 (Pavel Kruglov).
  • JSON 内のパス 'skip' に対する型ヒントの作成に関する不具合を修正しました。 #92842 (Pavel Kruglov).
  • analyzer におけるカラム別名内の動的サブカラム解決を修正しました。#92583 (Pavel Kruglov).
  • Variantカラムに対する誤ったインプレースフィルタリング最適化により発生していた Nested columns sizes are inconsistent with local_discriminators エラーを修正しました。#96410 (Alexey Milovidov).
  • GROUP BY で使用される Variant 引数を持つ ifNull で発生するクラッシュを修正しました。#96790 (Alexey Milovidov).
  • arrayROCAUC のように定数引数を必要とする関数で発生していた FunctionVariantAdaptor の論理エラーを修正しました。#97116 (Bharat Nallan).
  • 関数が Nothing 型を返した場合に FunctionVariantAdaptor で発生する LOGICAL_ERROR を修正しました。#97213 (Alexey Milovidov).
  • LowCardinality 型を含む Variant カラムと NULL を比較した際に発生する論理エラーを修正しました。 #97379 (Alexey Milovidov).
  • LowCardinality を内部に含む Variant 型の引数がある場合に concat で発生する LOGICAL_ERROR を修正しました。#97654 (Alexey Milovidov).
  • LowCardinality カラムが Nullable に変換された際に、誤った結果が返される問題を修正しました。#96483 (Nihal Z. Miaji).
  • cast_keep_nullable が有効になっている場合に、CASTLowCardinality Nullable 型が正しく処理されるよう修正しました。#95747 (Alexey Milovidov).
  • 複雑なネスト型をキャストする際に発生していた ColumnNullable is not compatible with original 例外を修正しました。#96924 (Alexey Milovidov) 。
  • Nullable(Tuple(... Nullable(T) ...)) 型のサブカラムに対して isNull/isNotNull を使用した際に発生していた LOGICAL_ERROR を修正しました。#97582 (Alexey Milovidov).
  • Array から QBit への変換時のLOGICAL_ERRORを修正しました。#97413 (Alexey Milovidov).
  • スパースカラムとそのサブカラムを同時に読み取る際の LOGICAL_ERROR を修正しました。#97515 (Pavel Kruglov).
  • PREWHERE を伴う Tuple 内のスパースな Nullable(String).size サブカラムを読み取る際に発生する LOGICAL_ERROR を修正しました。#97264 (Alexey Milovidov) 。
  • 内部スパースサブカラムを持つカラムの処理時に、Set および MergeTreeIndexSet で発生するアサーション失敗を修正しました。#97493 (Alexey Milovidov).
  • 空のタプルカラムのソート時に発生する可能性があったエラー SIZES_OF_COLUMNS_DOESNT_MATCH を修正しました。 #92520 (Pavel Kruglov).
  • ネイティブ Parquet リーダーにおいて、繰り返しの多い文字列データに影響する DELTA_BYTE_ARRAY のデコード不具合を修正しました。#91929 (Daniel Muino).
  • クエリ内の別の箇所で prewhere 式の一部が使用されていた場合に、Parquet ファイルの読み取り時に発生していたアサーションを修正しました。#90635 (Max Kainov).
  • PREWHERE フィルタリング用カラムにブール値ではない UInt8 値が含まれていた場合に、Parquet V3 ネイティブリーダーで発生する LOGICAL_ERROR を修正しました。#96594 (Alexey Milovidov).
  • 古いリーダーで、JSONカラムがTupleカラムの後にある場合のParquetスキーマ推論を修正しました。#92867 (Michael Kolupaev).
  • glob によるスキーマ推論時に、推論対象のファイルだけでなく、すべてのファイルで固定スキーマがキャッシュされていた問題を修正しました。#92006 (Pavel Kruglov).
  • 空のファイルから ProtobufList 形式を読み込む際に、空テーブルに対してゴーストレコードが生成される問題を修正しました。#96007 (Alexey Milovidov).
  • 明示的に指定したサイズがデータ型のサイズと一致しない場合に発生する Gorilla コーデックのリグレッションを修正しました。#96118 (Alexey Milovidov).
  • PostgreSQLエンジンで BOOLEAN[] を正しく読み取れるようになりました。#96006 (Alexey Milovidov) 。
  • SQLite の TEXT カラムから UUID カラムを読み取る際の論理エラーを修正しました。#96016 (Alexey Milovidov).
  • SQLite エンジンにおける DateTimeDateUUID、およびその他の型の変換を修正しました。#96017 (Alexey Milovidov).
  • SQLite および PostgreSQL へのクエリで、FixedString の値が誤ってエスケープされる問題を修正しました。#96019 (Alexey Milovidov).
  • Numbers から Enum への変換時の input_format_numbers_enum_on_conversion_error 設定を追加しました。#56240 (Nikolay Degterinsky) 。

テキスト索引とスキップ索引の修正

  • 4,294,967,295行を超えるパーツを持つテーブルでは、誤ったクエリ結果を防ぐため、テキスト索引の作成およびマテリアライズが一時的に無効化されています。#92644 (Anton Popov).
  • MergeTree テーブルのテキスト索引のマージ中に発生していた複数のクラッシュを修正しました。#92925 (Anton Popov) 。
  • 複雑な式 (concat(col1, col2) など) に基づいて作成されたテキスト索引のマージを修正しました。 #93073 (Anton Popov).
  • テキスト索引にトークンが含まれていない場合に、配列カラムに対するテキスト索引解析が正しく行われない問題を修正しました。 #93457 (Anton Popov).
  • サブカラム上に作成されたテキスト索引の再構築に関する不具合を修正しました。#93326 (Anton Popov).
  • 重複した検索クエリがある場合の、テキスト索引からの直接読み取りを修正しました。 #93516 (Anton Popov).
  • hasmapContainsKeymapContainsValue 関数におけるテキスト索引の解析の不整合を修正しました。これまでは、テキスト索引が使用されるかどうかによって異なる結果が返される可能性がありました。#93578 (Anton Popov).
  • system.parts におけるテキスト索引の非圧縮サイズ計算を修正しました。#92832 (Anton Popov) 。
  • ngram 長が > 8 の ngrambf_v1 索引で例外が発生する問題を修正しました。#92672 (Robert Schulze).
  • 非UTF-8データに対するngram_bf索引で、未初期化メモリの読み取りを引き起こす問題を修正しました。#93663 (Alexey Milovidov) 。
  • ベクトル類似度索引におけるstack-use-after-scopeを修正しました。 #96259 (Alexey Milovidov).
  • スキップ索引の式が定数カラムを生成した場合に発生していた論理エラーを修正しました。 #96880 (Alexey Milovidov).
  • 空の式 () を索引として指定してテーブルを作成した際に、無効なメモリアクセスが発生する不具合を修正しました。#96363 (Alexey Milovidov).
  • use_primary_key が無効で、論理和の数が非常に多い場合に発生する、索引分析における use-after-free を修正しました。#96112 (Alexey Milovidov).
  • WHERE 内の IN 句サブクエリを含む論理更新で、プライマリ索引が使用されるように修正しました。#92838 (Anton Popov).
  • hypothesis 索引の検証時に、適切なエラーコードを使用するように修正しました。#92559 (Raúl Marín).

データレイクの修正

  • split-by-buckets モードで Iceberg から読み込む際に、単一ノードのクラスタで発生していたクラッシュを修正しました。#91553 (Konstantin Vedernikov).
  • Iceberg の ORDER BY タプルを修正しました。#93225 (Konstantin Vedernikov) 。
  • DataLakeCatalog における Azure ADLS Gen2 の vended credentials のサポートを修正しました。Iceberg REST カタログから adls.sas-token.* キーを解析し、ABFSS URL の解析を修正しました。#93477 (Karun Anantharaman).
  • Iceberg 向けに、DateDate32 に置き換えました。#95322 (Konstantin Vedernikov) 。
  • Iceberg での ORDER BY に関するクラッシュを修正しました。 #96484 (Konstantin Vedernikov).
  • Iceberg のパーティショニングを修正しました。#96620 (Konstantin Vedernikov) 。
  • Iceberg のマニフェストエントリで position delete の参照が null の場合に、データファイルの境界情報が誤っていた問題を修正しました。 #96061 (Daniil Ivanik).
  • Iceberg のルートメタデータファイル設定に対する検証をさらに追加しました。#96754 (Daniil Ivanik).
  • 認証情報は、Icebergカタログにログ出力されなくなりました。#96831 (Konstantin Vedernikov).
  • パーティション化されたDelta Lakeデータのスカッシュ処理を修正しました。 #95773 (Kseniia Sumarokova).
  • 無効なauth_headerによってsystem.tablesが壊れる問題を引き起こしていたRESTfulデータレイクカタログを修正しました。#96680 (Han Fei).

S3/Azure/オブジェクトストレージの修正

  • 非決定的な関数がある場合に、S3テーブルエンジンがパーティションキーをキャッシュしてしまう問題を修正しました。#92844 (Miсhael Stetsyuk).
  • キャッシュ有効時に発生していたReadBufferFromS3のassertを修正しました。#93809 (Kseniia Sumarokova) 。
  • DiskObjectStorage のクリーンアップスレッドで発生する可能性があるエラーを修正しました。#87411 (Kseniia Sumarokova).
  • DiskObjectStorageTransaction で発生する可能性のあるデッドロックを修正しました。 #93810 (Kseniia Sumarokova).
  • 多数のエラーが発生した際に、DiskObjectStorage のクリーンアップスレッドで発生する可能性があった不具合を修正しました。#94048 (Kseniia Sumarokova).
  • copyS3File の multipart_tags におけるデータ競合を修正しました。#97227 (Azat Khuzhin) 。
  • オブジェクトストレージのファイルライクなテーブル (S3、Azure) に対して無効な ALTER UPDATE ミューテーションを実行しても、nullptr の逆参照が発生しなくなりました。#96162 (Alexey Milovidov) 。

S3Queue の修正

  • S3Queue の ordered モードで発生していた Failed to set file processing within 100 retries エラーを修正しました (現在は警告として扱われます) 。 #92814 (Kseniia Sumarokova).
  • S3Queue 設定 s3queue_migrate_old_metadata_to_buckets に関する不具合を修正しました。#93232 (Kseniia Sumarokova).
  • S3Queue/AzureQueue エンジンのメタデータを修正。#90498 (Kseniia Sumarokova) 。
  • S3Queue/AzureQueue ストレージにおけるデータ競合を修正しました。#95385 (Kseniia Sumarokova) 。
  • S3Queue/AzureQueueエンジンからのストリーミングにおける重複排除処理を修正しました。#95467 (Kseniia Sumarokova) 。

セキュリティとアクセス制御の修正

  • SYSTEM SYNC FILE CACHE における欠落していたアクセスチェックを修正しました。#92372 (Kseniia Sumarokova).
  • 過度に制限的だったワイルドカード権限付与に対するアクセス権限チェックの誤ったロジックを修正しました。#92725 (pufit).
  • merge テーブルエンジン経由で、SHOW COLUMNS 権限のないユーザーがテーブルのカラム一覧を取得できないようにしました。#93695 (János Benjamin Antal).
  • groupConcat の状態デシリアライズにおける整数オーバーフローの脆弱性を修正しました。この脆弱性により、メモリ安全性の問題が発生する可能性がありました。#93426 (Raufs Dunamalijevs).
  • 展開後のバッファサイズが想定どおりであることを確認しました。#93690 (Raúl Marín).
  • デフォルトロールの取り消しに関する問題を修正しました。 #96103 (Vitaly Baranov).
  • 部分的な権限取り消し時に AccessRights::contains が誤った結果を返す問題を修正しました。#96170 (pufit).
  • 分散クエリで、初期ユーザーに割り当てられた行ポリシーの更新に関する不具合を修正しました。#95469 (Vitaly Baranov).
  • redis テーブル関数のパスワード引数は、ログおよびシステムテーブルでマスクされるようになりました。#95325 (Janos Benjamin Antal).
  • X509 証明書の読み取り時に発生する BIO オブジェクトのメモリリークを修正しました。 #96885 (Alexey Milovidov).
  • バッファオーバーフローを防ぐため、bech32 の witness バージョンを検証するようにしました。#96671 (Raúl Marín) 。
  • 多くのデータベースに対して限定的な権限しか持たないユーザーがシステムテーブルをクエリする際のパフォーマンス低下を修正しました。#95874 (pufit).

バックアップとリストアの修正

  • 不正なアーカイブエントリのサイズヘッダーが原因で発生していた Couldn't pack tar archive: Failed to write all bytes エラーを修正しました。#92122 (Julia Kartseva).
  • 多数の同時バックアップが同じファイルで競合した際に発生していたサーバークラッシュを修正しました。 #93659 (Alexey Milovidov).
  • plain_rewritable オブジェクトストレージディスクにアーカイブベースのバックアップ (.zip.tzst) を作成する際に発生していたスタックオーバーフローを修正しました。#96872 (Alexey Milovidov) 。
  • ディスク容量不足やその他の I/O エラーが原因でバックアップに失敗した場合に発生していたサーバークラッシュを修正しました。#96873 (Alexey Milovidov) 。
  • use-after-free が原因で発生していた StorageKeeperMap のバックアップ時の segfault を修正しました。#97336 (Alexey Milovidov) 。

クラッシュおよび安定性の修正

  • 切断された Connection から読み取ろうとした際に発生するクラッシュを修正しました。#92807 (Raufs Dunamalijevs).
  • tokens() 関数で、2 番目の引数が null の場合に発生する可能性のあるクラッシュを修正しました。#92586 (Raúl Marín).
  • tokens が非 const のトークナイザーパラメータで呼び出された際に発生していたサーバークラッシュを修正しました。#93383 (Robert Schulze).
  • 同時実行中のカラム縮小またはフィルタリング時に、基盤となる const PREWHERE カラムがインプレースで変更されることで発生する可能性があったクラッシュを修正しました。 #92588 (Arsen Muk).
  • バックグラウンドスケジュールプールの終了時に発生し得るハングを修正しました。この問題により、シャットダウン時にサーバーがハングする可能性がありました。 #93008 (Azat Khuzhin).
  • 分散クエリの事前キャンセル後に、接続が壊れた状態のまま残る問題を修正しました。#93029 (Azat Khuzhin).
  • estimateCompressionRatio()Cannot finalize buffer after cancellation が発生する可能性がある問題を修正しました。#93068 (Azat Khuzhin).
  • シャットダウン時に ZooKeeper が確実に終了処理されるようにし、発生する可能性のあるハングを修正しました。 #93602 (Azat Khuzhin).
  • ZooKeeper ストレージで、バックグラウンドでの名前付きコレクションの再読み込み中に発生していた未捕捉例外を修正しました。 #92717 (Kseniia Sumarokova).
  • ReadWriteBufferFromHTTP における未初期化の値の使用を修正しました。#94058 (Alexey Milovidov) 。
  • TraceSender のバッファサイズが更新されず、その結果、異なるスレッドからのフラッシュが混在していた問題を修正しました。#93966 (Miсhael Stetsyuk).
  • PipelineExecutor の実行中に IStorage オブジェクトが破棄されないよう、QueryPipeline にストレージの共有ポインタを保持するようにしました。#93746 (Miсhael Stetsyuk).
  • キャンセル時に分散クエリで発生する可能性があったクラッシュを修正しました。#95466 (Aleksandr Musorin).
  • クエリと並行して実行されている DROP WORKLOAD で発生していたクラッシュを修正しました。#95856 (Alexey Milovidov).
  • DROP WORKLOAD におけるデータ競合を修正しました。#96614 (Sergei Trifonov) 。
  • ThreadPoolCallbackRunnerLocal の使用方法をめぐる複数の重大なバグを修正しました。#95818 (Raúl Marín) 。
  • メモリのオーバーコミットトラッカーの作動時にロック順序の逆転によって ProcessList で発生する可能性があったデッドロックを修正しました。#96182 (Antonio Andelic).
  • max_execution_time が大きいクエリにおける cancellation checkerスレッドのライブロックを修正しました。#96450 (Sergei Trifonov).
  • 競合状態により MemoryWorker のパージスレッドがハングしたままになる不具合を修正しました。#96819 (Antonio Andelic).
  • clearCaches で、キャッシュされたストレージスナップショットが早期に破棄されることによって発生していたクラッシュを修正しました。 #96995 (Alexey Milovidov).
  • 制約を含む CREATE TABLE における heap-use-after-free を修正しました。#96669 (Nikita Taranov) 。
  • StorageKafka2 における use-after-free の可能性を修正しました。#97520 (Bharat Nallan) 。
  • DatabaseMaterializedPostgreSQL における shutdown_called のデータレースを修正しました。#97554 (Alexey Milovidov) 。
  • 分片された HASHED Dictionary の並列読み込みにおける競合状態を修正し、一部の行が読み込まれなくなる可能性があった問題を解消しました。#96953 (Alexey Milovidov) 。
  • ある Dictionary が、それ自身を再帰的に参照する Merge テーブルを参照していた場合に、Dictionary でデッドロックが発生する問題を修正しました。#96120 (Alexey Milovidov).
  • 新しいサーバーがクエリプランのデシリアライズ中に未知の設定を送信した場合に発生していた、BaseSettings::readBinary の範囲外アクセスを修正しました。#97585 (Michael Stetsyuk).
  • dropReplicationSlot がスタックのアンワインド中に例外を送出した場合に、テーブルを MaterializedPostgreSQL データベースにアタッチするとクラッシュする問題を修正しました。#96871 (Alexey Milovidov) 。
  • HTTP 接続が閉じられないようにするため、insert select のリクエストストリームを解放しました。#92175 (Sema Checherinda).
  • Backupデータベースに対する SHOW CREATE DATABASE で発生するデッドロックを修正しました。 #92541 (Azat Khuzhin).

その他のバグ修正

  • hasAllTokens および hasAnyTokens 関数における handleAllTokens の空配列の処理を修正しました。#93328 (Anton Popov).
  • グローバルプロファイラの周期を修正しました — 設定値ではなく切り捨てられた値が使用されていたため、不要に頻繁にウェイクアップしていました。 #96048 (Antonio Andelic) 。
  • system.asynchronous_metric_logevent_date を修正しました。#95947 (Raúl Marín).
  • 内部関数で、system.functionscategories = 'Internal' ではなく空文字列が表示される問題を修正しました。#97315 (Robert Schulze).
  • ip_trie Dictionary において、キーの型が String でない場合に発生する可能性がある論理エラーを修正しました。 #97555 (Bharat Nallan).
  • system.query_log.exception で stderr のキャプチャを有効にすることで、UDF のデバッグに関する問題を修正しました。#92209 (Xu Jia)。
  • 常に false となる述語に対する filterPartsByVirtualColumns の不具合を修正しました。#97620 (Bharat Nallan).
  • ColumnConst が squashing の前にマテリアライズされない不具合を修正しました。#97019 (Hasyimi Bahrudin).