Cloud 向け v25.6 の変更履歴
後方互換性のない変更
- 関数
geoToH3()は、入力を (lat, lon, res) の順序(ジオメトリ関数の標準的な順序)で受け取るようになりました。従来の入力順序 (lon, lat, res) に基づく結果を維持したい場合は、設定geotoh3_lon_lat_input_order = trueを有効にしてください。 #78852 (Pratima Patel). full_text型のインデックスはginに改名されました。これは PostgreSQL やその他のデータベースでより一般的な用語に合わせたものです。既存のfull_text型インデックスは引き続きロード可能ですが、検索で使用しようとすると例外がスローされ(代わりにginインデックスを提案します)、使用できません。 #79024 (Robert Schulze).- ファイルシステムキャッシュ設定
allow_dynamic_cache_resizeを追加しました。デフォルト値はfalseで、trueに設定するとファイルシステムキャッシュの動的なリサイズを許可します。理由: 特定の環境(ClickHouse Cloud)では、すべてのスケーリングイベントがプロセスの再起動を通じて行われるため、この機能を明示的に無効化して挙動をより細かく制御したいこと、さらに安全対策としての目的があります。このPRは後方互換性のない変更としてマークされています。なぜなら、以前のバージョンでは動的キャッシュリサイズは特別な設定なしにデフォルトで有効だったためです。 #79148 (Kseniia Sumarokova). - レガシーインデックスタイプ
annoyおよびusearchのサポートを削除しました。これらはいずれも長い間ダミー実装であり、レガシーインデックスを使用しようとするすべての試みは、結局はエラーを返していました。まだannoyやusearchインデックスを保持している場合は、削除してください。 #79802 (Robert Schulze). #*format_alter_commands_with_parenthesesサーバー設定を削除しました。この設定は 24.2 で導入され、デフォルトでは無効化されていました。25.2 でデフォルト有効になりました。新しいフォーマットをサポートしない LTS バージョンは存在しないため、この設定を削除できます。 #79970 (János Benjamin Antal). #* マイナー変更:backup_threadsおよびrestore_threadsサーバー設定が 0 ではない値でなければならないようにしました。 #80224 (Raúl Marín). Stringに対するbitNot()が、ヌル終端文字列を返すように修正しました。 #80791 (Azat Khuzhin).
新機能
CREATEクエリで対象カラムに対して圧縮コーデックが明示的に定義されていない場合に使用されるデフォルトの圧縮コーデックを指定できるよう、MergeTree のSETTINGSに新しいオプションを追加しました。これにより #42005 が解決されました。 #66394 (gvoelfin)。- https://github.com/ClickHouse/ClickHouse/pull/71943 に対するフォローアップです。この PR では
Time/Time64データ型を実装します。新しいデータ型として Time (HHH:MM:SS) と Time64 (HHH:MM:SS.<fractional>) を追加し、いくつかの基本的なキャスト関数および他のデータ型と相互運用するための関数を実装しました。また、キャスト関数でtoTime関数が必要になるため、既存の関数名toTimeをtoTimeWithFixedDateに変更しました。#75735(Yarik Briukhovetskyi)。 WHERE句内のEXISTS式の引数として相関サブクエリをサポートしました。#72459 をクローズしました。#76078(Dmitry Novik)。- Merge テーブルエンジンへの書き込みを許可しました。 #77484 (Anton Ivashkin).
- レプリケートされた MergeTree テーブル向けの分散
INSERT SELECTでは、異なるノードで異なるデータを選択して独立に挿入することで、INSERTを並列化するために parallel replicas を効率的に利用するようになりました。 #78041 (Igor Nikonov)。 mapContainsValuesLike/mapContainsValues/mapExtractValuesLike関数を追加し、map の値を対象としたフィルタリングと、bloom filter ベースのインデックスでのサポートを可能にしました。 #78171 (UnamedRus)。system.iceberg_historyテーブルを追加しました。 #78244 (Smita Kulkarni).- ワークロード用にクエリスロットのスケジューリング機能を追加しました。詳細は https://clickhouse.com/docs/operations/workload-scheduling#query_scheduling を参照してください。 #78415 (Sergei Trifonov).
getServerSetting関数とgetMergeTreeSetting関数を追加し、https://github.com/clickhouse/clickhouse/issues/78318 をクローズ。 #78439(NamNguyenHoai)。- 設定制約で許可されない値の指定をサポート。#78499 (Bharat Nallan)。
version-hint.textファイルを活用するための新しい設定iceberg_enable_version_hintを追加しました。 #78594 (Arnaud Briche).LIKEキーワードでフィルタリングしたデータベース内の特定のテーブルを TRUNCATE できるようになりました。 #78597 (Yarik Briukhovetskyi).clickhouse-local(およびその短縮エイリアスであるch)は、処理対象の入力データが存在する場合に暗黙的なFROM tableを使用するようになりました。これにより、#65023 が解決しました。また、通常のファイルを処理する際に--input-formatが指定されていない場合、clickhouse-localでフォーマットの自動推論が有効になりました。#79085(Alexey Milovidov)。icebergHashとicebergBucketTransform関数を追加し、bucket transfomでパーティション分割されたIcebergテーブルにおけるデータファイルのプルーニングをサポートします。#79262 (Daniil Ivanik)。- CoalescingMergeTree のサポートを追加しました。これにより #78869 がクローズされました。#79344 (Konstantin Vedernikov)。
- ランダムまたは暗号化されている可能性のあるデータを検索するための
stringBytesUniq関数およびstringBytesEntropy関数を追加しました。 #79350 (Sachin Kumar Singh)。 - MergeTree ファミリーのテーブルで
_part_starting_offset仮想カラムをサポートしました。このカラムは、現在のパーツ一覧に基づいてクエリ時に計算される、すべての先行パーツの累積行数を表します。累積値はクエリ実行全体を通じて保持され、パーツのプルーニング後も有効なままです。この挙動をサポートするために、関連する内部ロジックがリファクタリングされました。 #79417 (Amos Bird)。 - 単一のクエリ内に含まれるすべてのサブクエリで同じストレージスナップショットを共有できるようにする設定
enable_shared_storage_snapshot_in_queryを追加しました。これにより、クエリ内で同じテーブルを複数回参照する場合でも、そのテーブルから一貫した読み取りが行えます。 #79471 (Amos Bird)。 - CH JSON 列を Parquet 形式に書き出すことと、Parquet の JSON 列を CH JSON 列として直接読み込むことをサポートしました。 #79649 (Nihal Z. Miaji)。
chdigを ClickHouse に同梱しました。ClickHouse の一部として動作する、top風の TUI インターフェイスです。#79666(Azat Khuzhin)。pointInPolygonでMultiPolygonをサポートするようにしました。 #79773 (Nihal Z. Miaji).- Geo Parquet をサポートしました。これにより #75317 がクローズされます。 #79777 (Konstantin Vedernikov)。
- ローカルファイルシステムにマウントされた Delta テーブルを
deltaLakeLocalテーブル関数でクエリできるようにサポートを追加しました。 #79781 (roykim98). - Base32 のエンコード/デコード機能を追加しました。 #79809 (Joanna Hulboj).
- ClickHouse ベクトル検索は、事前フィルタリングと事後フィルタリングの両方をサポートするようになり、より細かな制御のための関連設定も提供されます。(issue #78161)。#79854(Shankar Iyer)。
- WKB 形式の読み取りをサポートする関数を追加しました。これにより、#43941 が一部解決されます。 #80139 (Konstantin Vedernikov).
- String 型から DateTime 型へのキャスト時に DateTime の解析モードを選択できる新しい設定
cast_string_to_date_time_modeを追加しました。 #80210 (Pavel Kruglov). Bech32とBech32mのエンコードおよびデコード関数を追加しました (issue #40381)。 #80239 (George Larionov)。- Atomic および Ordinary データベースエンジンで
disk設定をサポートし、テーブルのメタデータファイルを保存するディスクを指定できるようにしました。 #80546 (Tuan Pham Anh)。 - MergeTree パーツを展開および比較するためのサポート関数を追加。 #80573 (Mikhail Artemenko).
timeSeries*ヘルパー関数は、時系列データを扱う際の一部の処理を高速化するためのものです。具体的には次の機能を提供します: - 指定した開始タイムスタンプ、終了タイムスタンプ、およびステップに従って、データを時間グリッドに再サンプリングする - PromQL 互換のdelta、rate、idelta、irateを計算する。 #80590 (Alexander Gololobov).- クエリ対象として選択されたパーツを、配置されているディスク単位でフィルタリングできるようにしました。 #80650 (tanner-bruce).
- 埋め込み Web ツールの一覧を表示するランディングページを追加。ブラウザライクなユーザーエージェントから要求されたときに開きます。 #81129 (Alexey Milovidov).
arrayFirst、arrayFirstIndex、arrayLast、arrayLastIndexでNULL値をフィルタリング可能にしました。 #81113 を修正。 #81197(Lennard Eijsackers)。
実験的機能
- iceberg データレイク向けの Hive metastore カタログ。 #77677 (Konstantin Vedernikov).
- 明示的パラメータがキーと値のペアで指定できるようになりました。現在サポートされているパラメータは、必須の
tokenizerと、任意指定のmax_rows_per_postings_listおよびngram_sizeの 2 つです。 #80262 (Elmi Ahmadov). - 実験的な
gin型インデックスはtextに名称変更されました。既存のgin型インデックスは引き続きロード可能ですが、検索で使用しようとすると例外をスローします(代わりにtextインデックスの利用を提案します)。 #80855 (Robert Schulze).
パフォーマンス向上
- 複数のグラニュールに対して一度に式を評価することで、セカンダリインデックスを高速化しました。 #64109 (Alexey Milovidov).
parallel_hash_join_threshold設定で制御されるしきい値を導入し、右テーブルのサイズがこのしきい値未満の場合にhashアルゴリズムへフォールバックするようにしました。 #76185 (Nikita Taranov)。- 現在の
Pipe::resizeの実装では、パイプラインのトポロジーに単一のResizeまたはStrictResizeノードを挿入することで、それを作成し、このノードがすべての入力ストリーム(上流ノード)を統一された出力ストリーム集合(下流ノード)へと接続する中央ハブとして機能します。この設計により、特にコア数の多い環境では、パイプライングラフの実行中にExecutingGraph::Node::status_mutexへの競合が発生します。パイプラインが数十から数百のストリームにスケールすると、この競合により次のような結果が生じます。#77562 (Zhiguo Zhou). S3Queue/AzureQueueのパフォーマンスを、INSERTの実行を並列化できるようにすることで改善しました(parallel_inserts=trueキュー設定で有効化可能)。これまではS3Queue/AzureQueueはパイプラインの最初の部分(ダウンロードとパース)だけを並列化でき、INSERTは単一スレッドでした。そしてINSERTがボトルネックになることがほとんどです。今回の変更により、processing_threads_numに対してほぼ線形にスケールするようになります。 #77671 (Azat Khuzhin).- コンパクトパートの形式を変更し、各サブストリームのマークを保存して個々のサブカラムを読み取れるようにしました。従来のコンパクト形式は読み取りでは引き続きサポートされ、書き込みでは MergeTree 設定
write_marks_for_substreams_in_compact_partsを使用して有効化できます。コンパクトパートのストレージ形式が変わるため、より安全にアップグレードできるよう、デフォルトでは無効になっています。今後のいずれかのリリースでデフォルト有効化される予定です。 #77940 (Pavel Kruglov)。 - 新しい設定
use_skip_indexes_in_final_exact_modeが導入されました。ReplacingMergeTreeテーブルに対するクエリでFINAL句が指定されている場合、スキップインデックスに基づいてテーブル範囲のみを読み取ると、誤った結果が返される可能性があります。この設定を使用すると、スキップインデックスによって返されたプライマリキー範囲と重複する、より新しいパーツをスキャンすることで、正しい結果が返されるようにできます。無効化するには 0、有効化するには 1 を設定します。#78350(Shankar Iyer)。 - これにより、並列レプリカを有効にした読み取り時のタスクサイズを、レプリカ数に基づいて決定するようになりました。これによって、読み取るデータ量がそれほど大きくない場合でも、レプリカ間の負荷分散が改善されます。 #78695 (Nikita Taranov).
- 分散集約の最終段階で
uniqExact状態を並列にマージできるようにしました。 #78703 (Nikita Taranov)。 - キー付き集約における
uniqExact状態の並列マージで発生し得るパフォーマンス低下を修正。 #78724 (Nikita Taranov). #*DELETE FROM ... WHERE 1クエリをTRUNCATEに置き換え(後にリバート)。 #78739 (Konstantin Vedernikov). - Azure Storage に対する List Blobs API の呼び出し回数を削減。 #78860 (Julia Kartseva).
- 可能な場合は、フィルタークエリプランステップから等価条件を
JOIN条件に統合し、ハッシュテーブルのキーとして利用できるようにしました。 #78877 (Dmitry Novik). - 正規表現の代わりに
extractKeyValuePairsを使用することで、Hive パス解析の性能を改善しました。 #79067 (Arthur Passos). - 並列レプリカ対応の分散
INSERT SELECTのパフォーマンスを改善しました。#79441 (Azat Khuzhin)。 - サブカラムを含む条件式を
PREWHEREに移動できるようにしました。 #79489 (Pavel Kruglov). - すべての Bloom Filter 種別においてパフォーマンスを改善しました。 #79800 (Delyan Kratunov).
- 高い並行性のシナリオにおいてロック競合とパフォーマンス低下を避けるために、
LogSeriesLimiterがインスタンス生成のたびにクリーンアップを実行しないようにしました。 #79864 (filimonov). compile_expressions(通常の式の断片向けのJITコンパイラ)をデフォルトで有効化しました。これにより #51264 と #56386 および #66486 が解決されました。#79907(Alexey Milovidov)。- 単純な count の最適化によりクエリを高速化。 #79945 (Raúl Marín).
UniqExactSet::mergeにおいて、一方のセットが空の場合の高速な処理パスを導入しました。また、左辺のセットが2レベル構造で右辺が1レベル構造の場合でも、右辺を2レベル構造に変換しないようにしました。 #79971 (Nikita Taranov).__attribute__((always_inline))をconvertDecimalsImplに追加しました。 #79999 (Konstantin Bogdanov).input_format_parquet_bloom_filter_push_downをデフォルトで true に設定しました。また、設定変更履歴の誤りを修正しました。 #80058 (Alexey Milovidov). #* ログ記録をデフォルトで非同期にしました。<logger>セクションで<async>false</async>を設定することで無効化できます。 #80125 (Raúl Marín).- 2 レベルのハッシュテーブル使用時におけるメモリ再利用効率を改善し、ページフォールトを削減しました。 #80245 (Jiebin Sun).
- QueryConditionCache において不要な更新を避け、ロック競合を削減しました。 #80247 (Jiebin Sun).
- 並列ハッシュ結合に役立つ可能性がある、
concatenateBlocksの小規模な最適化。#80328(李扬)。 - 主キー範囲からマーク範囲を選択する際、主キーが関数でラップされていると二分探索は使用できませんでした。この PR ではこの制限を緩和し、主キーが常に単調な関数チェーンでラップされている場合、または RPN に常に真となる要素が含まれている場合でも、二分探索を適用できるようにしました。この PR は #45536 をクローズします。 #80597 (zoomxi)。
- Kafka エンジンのシャットダウン速度を改善しました(複数の Kafka テーブルがある場合に発生していた追加の 3 秒の遅延を削除)。 #80796 (Azat Khuzhin).
- 非同期挿入のメモリ使用量を削減し、INSERT クエリのパフォーマンスを向上します。 #80972 (Raúl Marín).
- ログテーブルが無効化されている場合はプロセッサのプロファイリングを行わないようにしました。 #81256 (Raúl Marín).
- ソースが要求どおりである場合の
toFixedStringを高速化。#81257 (Raúl Marín). - ユーザーにクォータ制限がない場合はクォータ値を処理しません。 #81549 (Raúl Marín).
- ProcfsMetricsProvider を thread_local にして、タスク間でファイルを開いたまま保持するようにしました。 #81576 (Raúl Marín).
- メモリトラッキングで発生していたパフォーマンス低下を修正しました。 #81694 (Michael Kolupaev).
改善
#* clickhouse-localは、--pathコマンドライン引数を指定することで、再起動後もデータベースを保持するようになります。これにより#50647が解決されます。これにより#49947が解決されます。#71722 (Alexey Milovidov)。
EXPLAIN SYNTAXは新しいアナライザーを使用するようになりました。これにより、クエリツリーから構築された抽象構文木 (AST) を返します。クエリツリーを AST に変換する前に実行される処理パスの数を制御するためのオプションquery_tree_passesを追加しました。 #74536 (Vladimir Cherkasov). #* ファイルシステムキャッシュで、デフォルトのキャッシュポリシーとして SLRU を使用するようにしました。 #75072 (Kseniia Sumarokova).- ビューへのプッシュ処理ロジックをリファクタリングしました。 #77309 (Sema Checherinda).
- オブジェクトストレージ用クラスターテーブル関数(例:
s3Cluster)は、キャッシュ局所性を向上させるため、一貫性ハッシュに基づいて読み取り用のファイルをレプリカに割り当てるようになりました。#77326(Andrej Hoos)。 AuthenticationRequiredエラー発生後に S3 認証情報を再取得するようにしました。 #77353 (Vitaly Baranov).- ビルダーを利用して、一部の HTTP バッファにプロキシ設定を埋め込めるようにしました。 #77693 (Arthur Passos).
system.asynchronous_metricsに辞書メトリクスを追加しました。DictionaryMaxUpdateDelay- 辞書更新の最大遅延時間(秒)。DictionaryTotalFailedUpdates- すべての辞書で、最後の正常な読み込み以降に発生したエラーの総数。 #78175 (Vlad).- 右側の引数がゼロの場合に NULL を返す関数
divideOrNull,moduloOrNull,intDivOrNull,positiveModuloOrNullを追加しました。 #78276 (kevinyhzou). isIPAddressInRange関数を String、IPv4、IPv6、Nullable(String)、Nullable(IPv4)、Nullable(IPv6) データ型にも対応させました。 #78364 (YjyJeff).- PostgreSQL エンジンの接続プーラー設定を動的に変更可能にしました。 #78414 (Samay Sharma).
- 通常のプロジェクションで
_part_offsetを指定できるようにしました。これはプロジェクションインデックスを構築するための最初のステップです。#58224 と併用でき、https://github.com/ClickHouse/ClickHouse/pull/63207 の改善にも貢献します。#78429(Amos Bird)。 - 分散クエリにおけるシャーディングキーの最適化を強化しました。 #78452 (fhw12345).
system.named_collectionsに新しいカラム(create_queryとsource)を追加しました。 #78179 をクローズしました。 #78582(MikhailBurdukov)。- システムテーブル
system.query_condition_cacheにフィールドconditionを追加しました。このフィールドには、そのハッシュ値がクエリ条件キャッシュのキーとして使用されるプレーンテキストの条件が保存されます。 #78671 (Robert Schulze). - ClickHouse Keeper を使用して、StorageKafka2 向けに Kafka のリバランスに類似したロジックを実装します。各レプリカでは、恒久ロックと一時ロックという 2 種類のパーティションロックをサポートします。レプリカは可能な限り長く恒久ロックを保持しようとしますが、任意の時点でレプリカ上の恒久ロックの数は
all_topic_partitions / active_replicas_count(ここでall_topic_partitionsはすべてのパーティション数、active_replicas_countはアクティブなレプリカ数を表します)を超えません。もしそれより多くなった場合、レプリカはいくつかのパーティションを解放します。いくつかのパーティションは、レプリカによって一時的に保持されます。レプリカ上の一時ロックの最大数は、他のレプリカが一部のパーティションを恒久ロックとして取得できるように、動的に変化します。一時ロックを更新する際には、レプリカはそれらをすべて解放し、再度別のパーティションの取得を試みます。#78726(Daria Fomina)。 Kafkaテーブルエンジンに、SASL 設定および認証情報用のテーブル設定を追加しました。これにより、設定ファイルや名前付きコレクションを使用することなく、CREATE TABLEステートメント内で直接、Kafka および Kafka 互換システムに対する SASL ベースの認証を設定できるようになります。 #78810 (Christoph Wurm)。- 破損したテーブルを保存するために作成された可能性のあるデータベースに関する警告を追加しました。 #78841 (János Benjamin Antal).
BFloat16列に対してベクトル類似インデックスを作成できるようになりました。 #78850 (Robert Schulze).- ベストエフォートの DateTime64 パースで、小数部を含む Unix タイムスタンプをサポートします。 #78908 (Pavel Kruglov)。
- DeltaLake ストレージの delta-kernel 実装において columnMappingMode.name を修正し、スキーマ進化に関するテストを追加しました。 #78921 (Kseniia Sumarokova)。
- 値の変換を改善し、Values フォーマットでの Variant 列への挿入処理を改善しました。 #78923 (Pavel Kruglov).
S3Queueエンジンに_time仮想カラムを追加しました。 #78926 (Anton Ivashkin).tokens関数は拡張され、追加のtokenizer引数および tokenizer 固有の引数を受け取れるようになりました。 #79001 (Elmi Ahmadov)。SHOW CLUSTERステートメントは、引数内のマクロ(存在する場合)を展開するようになりました。 #79006 (arf42)。- ハッシュ関数で、配列、タプル、マップ内の
NULLがサポートされるようになりました(issues #48365 および #48623)。#79008(Michael Kolupaev)。 - 読み取り専用の MergeTree テーブルでのリフレッシュをサポートしました。#79033 (Alexey Milovidov)。 #* cctz をバージョン 2025a に更新しました。#79043 (Raúl Marín)。
- CPU 過負荷時の接続切断を制御する設定をホットリロード可能にしました。 #79052 (Alexey Katsman)。
- 使い勝手が向上します。 #79066 (Alexey Milovidov).
- デフォルトでクエリ条件キャッシュを有効化しました。#79080 (Alexey Milovidov). #* Web UI でタブの操作を元に戻せるようにしました。これにより #71284 がクローズされました。#79084 (Alexey Milovidov).
recoverLostReplica実行時の設定を、https://github.com/ClickHouse/ClickHouse/pull/78637 と同様に削除しました。#79113(Nikita Mikhaylov)。- Parquet インデックスのプルーニングをプロファイルするために、ProfileEvents の ParquetReadRowGroups および ParquetPrunedRowGroups を追加。 #79180 (flynn)。
- Azure Blob Storage 上のプレーンディスクについて、
system.tablesで報告されるデータパスにコンテナのプレフィックスを追加し、S3 および GCP と一貫した報告になるようにしました。 #79241 (Julia Kartseva). - クラスタ上のデータベースに対する ALTER をサポート。 #79242 (Tuan Pham Anh).
- QueryMetricLog の統計収集で取りこぼした実行は、ログが現在時刻に追いつくまでに長い時間がかかってしまうため、明示的にスキップするようにしました。 #79257 (Mikhail Artemenko).
- 設定
lightweight_deletes_sync = 0、apply_mutations_on_fly = 1の場合に、オンザフライで軽量削除を適用できる機能を追加しました。 #79281 (Anton Popov)。 - すべての行が削除されるパーツに対する
ALTER ... DELETEミューテーションを最適化しました。これにより、そのような場合にはミューテーションを実行せずに、元のパーツの代わりに空のパーツが作成されるようになりました。 #79307 (Anton Popov). CHColumnToArrowColumnに対するいくつかの細かな最適化。 #79308 (Bharat Nallan)。- 設定
allow_archive_path_syntaxは誤って experimental としてマークされていました。experimental な設定がデフォルトで有効になってしまうのを防ぐテストを追加しました。 #79320 (Alexey Milovidov). - ページキャッシュ設定をクエリ単位で設定可能にしました。これは、高速な実験や、高スループットかつ低レイテンシーなクエリ向けにきめ細かくチューニングできるようにするために必要です。 #79337 (Alexey Milovidov).
- 64-bit ハッシュの典型的な値のように見える数値に対しては、pretty フォーマットで number tips を出力しないようにしました。これにより #79334 がクローズされます。 #79338 (Alexey Milovidov).
- ターミナルに
Prettyフォーマットでデータが表示されており、後続のブロックも同じ列幅を持つ場合は、カーソルを上に移動して前のブロックに「貼り付け」、前のブロックの続きとして表示できるようになりました。これにより #79333 が解決されました。この機能は新しい設定output_format_pretty_glue_chunksによって制御されます。#79339(Alexey Milovidov)。 - 高度なダッシュボード上のグラフの色は、対応するクエリのハッシュから計算されます。これにより、ダッシュボードをスクロールする際にグラフを識別・見つけやすくなります。 #79341 (Alexey Milovidov)。
- 非同期メトリクス
FilesystemCacheCapacityを追加しました。cache仮想ファイルシステムの合計容量を表し、グローバルインフラストラクチャの監視に有用です。 #79348 (Alexey Milovidov). - system.parts へのアクセスを最適化し、要求された場合にのみカラム/インデックスのサイズを読み取るようにしました。 #79352 (Azat Khuzhin).
- クエリ
SHOW CLUSTER <name>で、すべてのフィールドではなく重要なフィールドのみを選択するようにしました。 #79368 (Tuan Pham Anh). DatabaseCatalogのストレージ設定を指定できるようになりました。 #79407 (Kseniia Sumarokova).- Delta Kernel でローカルストレージをサポートしました。 #79416 (Kseniia Sumarokova).
- delta-kernel-rs を有効にするクエリレベル設定
allow_experimental_delta_kernel_rsを追加しました。 #79418 (Kseniia Sumarokova). - Azure/S3 BLOB ストレージから BLOB を一覧取得中に発生し得る無限ループを修正しました。 #79425 (Alexander Gololobov).
- 現在、ClickHouse ではクエリパラメータとして
param_<name>(アンダースコア)に加えてparam-<name>(ハイフン)も受け付けるようになりました。これにより、#63093 が解決されました。#79429(Engel Danila)。 - ローカルからリモートの S3 へチェックサムを有効にしてデータをコピーする際の帯域幅割引に関する詳細な警告メッセージを追加。 #79464 (VicoWu).
clickhouse-benchmarkでは、再接続の動作に応じて 0、1、または N を値として指定できるように、reconnectオプションを再構成しました。 #79465 (Sachin Kumar Singh)。input_format_max_block_size_bytes設定を追加し、入力フォーマットで作成されるブロックのサイズをバイト単位で制限できるようにしました。これにより、各行に大きな値が含まれている場合のデータインポート時のメモリ使用量の増加を抑えるのに役立ちます。 #79495 (Pavel Kruglov).- sparseGrams の速度とメモリ使用量を改善しました。 #79517 (Konstantin Vedernikov)。
- 可能な場合には、Compact パートへの挿入時にブロックの不要なコピーを行わないようにしました。 #79536 (Pavel Kruglov).
DeltaLakeストレージの delta-kernel 実装をデフォルトで有効化しました。 #79541 (Kseniia Sumarokova).- URL から読み込む際に複数回リダイレクトされる場合、チェーン内のすべてのリダイレクトに対して
enable_url_encodingの設定が正しく適用されるようになりました。 #79563 (Shankar Iyer). - 異なる plain_rewritable ディスク上のテーブルに対して
ALTER TABLE ... MOVE|REPLACE PARTITIONを実行できるようにしました。 #79566 (Julia Kartseva)。 WHERE句でのスカラー相関サブクエリをサポートしました。#6697 をクローズしました。#79600(Dmitry Novik)。- 以前は
input_format_parquet_max_block_size = 0の場合に ClickHouse がハングしてしまう問題がありましたが、この挙動は修正されました。これにより #79394 がクローズされます。#79601(abashkeev)。 - startup_scripts 用の
throw_on_error設定を追加しました。throw_on_errorが true の場合、すべてのクエリが正常に完了するまでサーバーは起動しません。デフォルトではthrow_on_errorは false で、従来の動作が維持されます。 #79732 (Aleksandr Musorin)。 - 参照ベクトルが
Array(BFloat16)型の場合にも、ベクトル類似度インデックスが使用されるようになりました。 #79745 (Shankar Iyer). system.error_logテーブルにlast_error_message、last_error_trace、query_idを追加しました。関連チケット #75816。#79836(Andrei Tinikov)。 #* 既定でクラッシュレポートの送信を有効にしました。これはサーバーの設定ファイルで無効化できます。 #79838 (Alexey Milovidov).- システムテーブル
system.functionsで、各関数が最初に導入された ClickHouse バージョンを確認できるようになりました。 #79839 (Robert Schulze). access_control_improvements.enable_user_name_access_type設定を追加しました。この設定により、https://github.com/ClickHouse/ClickHouse/pull/72246 で導入された、ユーザー/ロールに対する厳密な権限付与を有効/無効にできます。レプリカにバージョン 25.1 より前のものを含むクラスタがある場合は、この設定をオフにすることを検討してください。#79842(pufit)。ASTSelectWithUnionQuery::clone()メソッドの実装で、is_normalizedフィールドも考慮されるようになりました。これは #77569 の解決に役立つ可能性があります。#79909(Nikita Mikhaylov)。- 簡単なケースでは、射影リスト内の相関サブクエリをサポートしました。 #79925 (Dmitry Novik).
EXCEPT演算子を使用する一部のクエリにおけるフォーマットの不整合を修正しました。EXCEPT演算子の左辺が*で終わる場合、フォーマット後のクエリから括弧が失われ、その結果EXCEPT修飾子付きの*としてパースされてしまいます。これらのクエリはファザーによって検出されたものであり、実際の利用環境で見つかる可能性は低いです。これにより #79950 がクローズされました。#79952(Alexey Milovidov)。- 任意の種類の
http_handlersにhttp_response_headersを追加できるようにしました。 #79975 (Andrey Zvonov). - variant のデシリアライズ順序のキャッシュを利用することで、JSON 型のパースをわずかに改善しました。 #79984 (Pavel Kruglov).
- 適用可能な場合は
GLOBAL [NOT] IN述語をPREWHERE句に移動できるようにしました。 #79996 (Eduard Karacharov)。 s3_slow_all_threads_after_network_error設定を追加。 #80035 (Vitaly Baranov).- 選択されたパーツをマージする際のログレベルが誤っており、Information になっていました。 #80061 をクローズ。 #80062(Alexey Milovidov)。
- 関数
reverseが Tuple データ型をサポートしました。#80053 をクローズしました。#80083(flynn)。 enble_url_encoding設定のデフォルト値がFalseに変更されました。 #80088 (Shankar Iyer).- この小さなパッチは、
system.zookeeperテーブルからauxiliary_zookeepersのデータを取得できるようにし、#75817 を解決します。 #80146(Nikolay Govorov)。 - ベクトル類似度インデックスを使用したベクトル検索機能は、従来の実験的ステータスからベータ版になりました。 #80164 (Robert Schulze).
- サーバーの TCP ソケットに関する非同期メトリクスを追加しました。これによりオブザーバビリティが向上します。#80187 をクローズしました。#80188(Alexey Milovidov)。
- 関数
tokensに、トークナイザーとしてstringのサポートが追加されました。 #80195 (Robert Schulze). - Parallel replicas: すべての読み取りタスクが他のレプリカに割り当て済みの場合、未使用の低速レプリカを待機しないようにしました。 #80199 (Igor Nikonov).
simpleAggregateFunctionでanylast_respect_nullsとany_respect_nullsをサポートするようになりました。 #80219 (Diskein).- レプリケーテッドデータベースに対して不要な
adjustCreateQueryForBackup()呼び出しを削除しました。 #80282 (Vitaly Baranov). #*clickhouse-localで、-- --config.value='abc'のように--の後に続く追加オプションを、等号(=)なしでも指定できるようにしました。 #80292 をクローズ。 #80293 (Alexey Milovidov). SHOW ... LIKEクエリでメタ文字をハイライトするようにしました。これにより #80275 がクローズされます。#80297(Alexey Milovidov)。Time/Time64間の比較のサポートを追加。#80327(Yarik Briukhovetskyi)。- 事前の DISTINCT ステップに対する EXPLAIN プランの説明を修正。 #80330 (UnamedRus).
- ODBC/JDBC で名前付きコレクションを使用できるようになりました。 #80334 (Andrey Zvonov).
- 複数のプロジェクションを用いたフィルタリングをサポートし、パートレベルのフィルタリングで複数のプロジェクションを使用できるようにしました。これは #55525 への対応です。これは、#78429 に続く、プロジェクションインデックスを実装するための第 2 段階です。#80343(Amos Bird)。
- 読み取り専用ディスクおよび故障ディスクの数に関するメトリクス。DiskLocalCheckThread が開始されたときにログへ記録される指標。#80391(VicoWu)。
s3_plain_rewritableストレージでのプロジェクションサポートを実装しました。以前のバージョンでは、プロジェクションを参照する S3 内のメタデータオブジェクトは、移動しても更新されませんでした。#70258 をクローズしました。#80393(Sav)。- Parallel replicas では専用の接続タイムアウトを使用するようになりました。
parallel_replicas_connect_timeout_ms設定を参照してください。以前は、connect_timeout_with_failover_ms/connect_timeout_with_failover_secure_ms設定が parallel replicas クエリの接続タイムアウト値として使用されていました(デフォルトでは 1 秒)。#80421(Igor Nikonov)。 SYSTEM UNFREEZEコマンドは、読み取り専用ディスクおよび一度きり書き込み可能なディスク上のパーツを検索しようとしなくなりました。これにより #80430 が解決されます。#80432(Alexey Milovidov)。- マージ済みパーツに関するメッセージのログレベルを INFO から TRACE に変更しました。 #80476 (Hans Krutzer).
- Dynamic と JSON に対するフラット化シリアル化を Native フォーマットで実装しました。これにより、Dynamic の shared variant や JSON の shared data といった特別な構造を使用せずに、Dynamic および JSON データをシリアル化/デシリアル化できます。このシリアル化方式は、
output_format_native_use_flattened_dynamic_and_json_serializationを設定することで有効化できます。また、この方式は、さまざまな言語で実装されたクライアントにおける TCP プロトコルでの Dynamic および JSON のサポートを容易にするために利用できます。 #80499 (Pavel Kruglov). - Iceberg テーブルのパーティションプルーニングにおけるデフォルト動作を変更しました。 #80583 (Melvyn Peignon).
- インデックス検索アルゴリズムの可観測性向上のため、2 つの新しい ProfileEvents
IndexBinarySearchAlgorithmとIndexGenericExclusionSearchAlgorithmを追加しました。#80679(Pablo Marcos)。 - 古いカーネルにおける
MADV_POPULATE_WRITEの非対応について、ログに警告を出さないようにしました(ログがノイズで埋まらないようにするため)。 #80704 (Robert Schulze). - TTL で Date32 および DateTime64 がサポートされるようになりました。 #80710 (Andrey Zvonov).
max_merge_delayed_streams_for_parallel_writeの互換性向け設定値を調整。 #80760 (Azat Khuzhin).- クラッシュを修正: デストラクタで一時ファイル(ディスク上に一時データをスピルするために使用される)の削除を試みる際に例外がスローされると、プログラムが異常終了する可能性があった問題を修正しました。 #80776 (Alexey Milovidov)。
SYSTEM SYNC REPLICAにIF EXISTS修飾子を追加。 #80810 (Raúl Marín).- 「Having zero bytes, but read range is not finished...」という例外メッセージを拡張し、system.filesystem_cache' に finished_download_time 列を追加しました。 #80849 (Kseniia Sumarokova).
- 以前は、フルテキストインデックスに対して
packedストレージはサポートされていませんでした。これは、セグメント ID がディスク上の (.gin_sid) ファイルの読み書きによってその場で更新されていたためです。packedストレージでは、コミット前のファイルから値を読み出すことがサポートされておらず、そのため問題が発生していました。#80852(Elmi Ahmadov)。 indexes = 1を指定してEXPLAINを使用する場合、出力に検索アルゴリズムのセクションを追加しました。ここには「binary search」または「generic exclusion search」のいずれかが表示されるようになりました。 #80881 (Pablo Marcos)。- 2024年初め、新しい analyzer がデフォルトで有効化されていなかったため、MySQL handler では
prefer_column_name_to_aliasが True にハードコードされていました。現在では、このハードコードは解除されています。#80916(Yarik Briukhovetskyi)。 system.iceberg_historyは、glue や iceberg rest といったカタログデータベースの履歴を表示するようになりました。また、一貫性を保つために、system.iceberg_history内のtable_nameおよびdatabase_nameカラムを、それぞれtableおよびdatabaseにリネームしました。 #80975 (alesapin)。mergeテーブル関数で読み取り専用モードを許可し、その利用にCREATE TEMPORARY TABLE権限を付与しなくても済むようにしました。 #80981 (Miсhael Stetsyuk).- インメモリキャッシュの内部状態の確認性を改善しました(不完全な
system.asynchronouse_metricsではなく、system.metricsでキャッシュに関する情報を公開)。インメモリキャッシュのサイズ(バイト単位)をdashboard.htmlに追加しました。VectorSimilarityIndexCacheSize/IcebergMetadataFilesCacheSizeはVectorSimilarityIndexCacheBytes/IcebergMetadataFilesCacheBytesに名前を変更しました。 #81023 (Azat Khuzhin)。 - system.rocksdb から読み取る際に、RocksDB テーブルを含むことができないエンジンを持つデータベースを無視するようになりました。 #81083 (Pervakov Grigorii).
clickhouse-localの設定ファイルでfilesystem_cachesとnamed_collectionsを使用できるようにしました。 #81105 (Alexey Milovidov).INSERTクエリにおけるPARTITION BYのハイライトを修正しました。以前のバージョンでは、PARTITION BYはキーワードとしてハイライトされていませんでした。 #81106 (Alexey Milovidov). #* Web UI に 2 つの小さな改善があります。出力を持たないCREATEやINSERTなどのクエリを正しく処理するようにしました(最近まで、これらのクエリではスピナーが回り続けていました)。また、テーブルをダブルクリックした際に、先頭までスクロールするようにしました。 #81131 (Alexey Milovidov). #*c-aresをv1.34.5に更新しました。 #81159 (Konstantin Bogdanov). #* CVE-2025-5025 と CVE-2025-4947 に対応するため、curl を 8.14 にアップグレードしました。 #81171 (larryluogit). #* 次の脆弱性に対応するため、libarchive を 3.7.9 にアップグレードしました: CVE-2024-20696 CVE-2025-25724 CVE-2024-48958 CVE-2024-57970 CVE-2025-1632 CVE-2024-48957 CVE-2024-48615。 #81174 (larryluogit). #* libxml2 を 2.14.3 にアップグレードしました。 #81187 (larryluogit).MemoryResidentWithoutPageCacheは、ユーザー空間のページキャッシュを除いた、サーバープロセスが使用している物理メモリ量をバイト単位で示します。これは、ユーザー空間のページキャッシュが利用されている場合に、実際のメモリ使用状況をより正確に把握するのに役立ちます。ユーザー空間のページキャッシュが無効になっている場合、この値はMemoryResidentと同じになります。 #81233 (Jayme Bird)。- client、local server、keeper client、および disks アプリで手動でログ出力された例外を logged としてマークし、二重にログが記録されないようにしました。 #81271 (Miсhael Stetsyuk).
use_skip_indexes_if_finalとuse_skip_indexes_if_final_exact_modeの設定値のデフォルトは、現在Trueになりました。FINAL句を含むクエリは、(該当する場合には)スキップインデックスを使用してグラニュールを絞り込み、さらに一致するプライマリキー範囲に対応する追加のグラニュールも読み取るようになりました。以前と同様の近似的(厳密ではない)結果を必要とするユーザーは、慎重に評価したうえでuse_skip_indexes_if_final_exact_modeをFALSEに設定できます。 #81331 (Shankar Iyer). #* Web UI で複数のクエリがある場合、カーソル位置のクエリが実行されるようになりました。#80977 の継続対応です。 #81354 (Alexey Milovidov).- このPRでは、変換関数の単調性チェックにおける
is_strictの実装上の問題に対処します。現在、toFloat64(UInt32) や toDate(UInt8) など一部の変換関数が、本来は true を返すべきにもかかわらず、誤って is_strict として false を返しています。#81359 (zoomxi). #* ジャーナル付きファイルシステムでは、mkdirはディスクに永続化されるファイルシステムのジャーナルに書き込まれます。ディスクが遅い場合、これには長い時間がかかる可能性があります。reserve lock のスコープ外に出すのが、明らかに妥当です。#81371 (Kseniia Sumarokova). KeyConditionが連続した範囲に合致するかをチェックする際、キーが非厳密な関数チェーンでラップされている場合には、Constraint::POINTをConstraint::RANGEに変換する必要があることがあります。例えば、toDate(event_time) = '2025-06-03'はevent_timeに対して ['2025-06-03 00:00:00', '2025-06-04 00:00:00') という範囲を意味します。この PR はこの挙動を修正します。 #81400 (zoomxi). #*postgres16.9 を使用します。 #81437 (Konstantin Bogdanov). #*openssl3.2.4 を使用します。 #81438 (Konstantin Bogdanov). #*abseil-cpp2025-01-27 を使用します。 #81440 (Konstantin Bogdanov). #*mongo-c-driver1.30.4 を使用します。 #81449 (Konstantin Bogdanov). #*krb51.21.3-final を使用します。 #81453 (Konstantin Bogdanov). #*orc2.1.2 を使用します。 #81455 (Konstantin Bogdanov). #*clickhouse-localにおいて--database引数をサポートしました。既に作成済みのデータベースに切り替えることができます。これにより #44115 がクローズされました。 #81465 (Alexey Milovidov). #*clickhouse/chエイリアスは、--hostまたは--portが指定されている場合、clickhouse-localではなくclickhouse-clientを起動します。 #79422 の継続です。 #65252 をクローズします。 #81509 (Alexey Milovidov).- keeper のレスポンス時間分布データが取得できたので、ヒストグラムのバケットを調整できるようになりました。 #81516 (Miсhael Stetsyuk)。
- Iceberg マニフェストファイルの読み込みを、クエリの初回実行時まで遅延させます。 #81619 (Daniil Ivanik).
#*
grpc1.73.0 を使用します。 #81629 (Konstantin Bogdanov). #*delta-kernel-rsv0.12.1 を使用します。 #81707 (Konstantin Bogdanov). - プロファイルイベント
PageCacheReadBytesを追加。 #81742 (Kseniia Sumarokova).
バグ修正(公式安定版リリースにおけるユーザーから見て明らかな誤動作)
SELECT EXCEPTクエリを使用するパラメータ化ビューの問題を修正。 #49447 をクローズ。 #57380 (Nikolay Degterinsky)。- Analyzer: JOIN における列型昇格後の列プロジェクションの名前を修正。#63345 をクローズ。#63519(Dmitry Novik)。
- マテリアライズドビューが、(例えば、それにストリーミングする Kafka テーブルの開始後など)遅れて開始されてしまうことがある。#72123 (Ilya Golshtein).
- analyzer_compatibility_join_using_top_level_identifier が有効な場合に、カラム名の衝突が発生する際に起きていた論理エラーを修正しました。 #75676 (Vladimir Cherkasov).
alter_sync = 0を指定した複数の非同期RENAME COLUMNおよびADD COLUMNクエリの実行後に、MergeTreeテーブルからの読み取り時にまれに発生していたクラッシュを修正しました。 #76346 (Anton Popov).SELECTクエリの書き換えが、analyzer 有効時のVIEW作成時に正しく行われない問題を修正。closes #75956. #76356 (Dmitry Novik).allow_push_predicate_ast_for_distributed_subqueriesが有効な場合の、プッシュダウンされた述語における CTE の扱いを修正。 #75647、#79672 を修正。 #77316(Dmitry Novik)。- サーバーからの
async_insertの適用(apply_settings_from_server経由)を修正しました(以前はクライアント側でUnknown packet 11 from serverエラーの原因となっていました)。 #77578 (Azat Khuzhin). - レプリケートされたデータベースにおいて、新しく追加されたレプリカで refresh 可能なマテリアライズドビューが動作しない問題を修正しました。 #77774 (Michael Kolupaev).
- バックアップを破損させていたリフレッシュ可能なマテリアライズドビューを修正しました。 #77893 (Michael Kolupaev).
transformの古い発火ロジックにあった論理エラーを修正。 #78247 (Yarik Briukhovetskyi).SYSTEM SYNC REPLICA LIGHTWEIGHT 'foo'が、指定したレプリカが存在しない場合でも成功を報告していた問題を修正しました。コマンドは、同期を試行する前に Keeper 内にレプリカが存在するかを正しく検証するようになりました。 #78405 (Jayme Bird).- analyzer によってセカンダリインデックスが適用されないケースがいくつか存在していた問題を修正しました。#65607 と #69373 を解決します。#78485(Nikolai Kochetov)。
- HTTP プロトコルで圧縮が有効な場合に、プロファイルイベント(
NetworkSendElapsedMicroseconds/NetworkSendBytes)のダンプが正しく行われるよう修正(誤差がバッファサイズ、通常は約 1MiB を超えないようにする)。#78516 (Azat Khuzhin). #* ```sql CREATE TABLE t0 ( key Int32, value Int32 ) ENGINE=MergeTree() PRIMARY KEY key PARTITION BY key % 2;. #78593 (Vlad). ALIAS列を含むJOIN ... USINGを使用した際にLOGICAL_ERRORを発生させてしまっていた analyzer を修正し、代わりに適切なエラーを返すようにしました。 #78618 (Yakov Olkhovskiy).- アナライザーを修正: SELECT 句に位置指定引数が含まれている場合に
CREATE VIEW ... ON CLUSTERが失敗する問題を修正しました。 #78663 (Yakov Olkhovskiy). SELECTにスカラーサブクエリが含まれている場合に、スキーマ推論を行うテーブル関数宛てのINSERT SELECT実行時に発生するBlock structure mismatchエラーを修正。 #78677 (Pervakov Grigorii).- アナライザーを修正: Distributed テーブルに対する SELECT クエリで
prefer_global_in_and_join=1が設定されている場合、in関数はglobalInに置き換えられるようにしました。 #78749 (Yakov Olkhovskiy)。 MongoDBエンジンを使用するテーブル、またはmongodbテーブル関数から読み取るSELECTクエリのいくつかのパターンを修正しました。修正対象には、WHERE句内で定数値が暗黙的に型変換されるクエリ(例:WHERE datetime = '2025-03-10 00:00:00')や、LIMITとGROUP BYを含むクエリが含まれます。以前は、これらのクエリが誤った結果を返す可能性がありました。#78777(Anton Popov)。- 異なる JSON 型間の変換処理を修正しました。現在は、いったん String 型に変換してから元の型に戻す単純なキャストとして実行されます。効率は低下しますが、結果は 100% 正確です。 #78807 (Pavel Kruglov)。
- Dynamic 型から Interval 型への変換時の論理エラーを修正。 #78813 (Pavel Kruglov).
- JSON パースエラー時のカラムロールバックの問題を修正。 #78836 (Pavel Kruglov).
- 定数のエイリアス列を使った
JOINで発生していた「bad cast」エラーを修正。 #78848 (Vladimir Cherkasov)。 - マテリアライズドビューにおいて、ビューとターゲットテーブルで型が異なる列に対する
PREWHEREを許可しないようにしました。 #78889 (Pavel Kruglov). - Variant 列の不正なバイナリデータをパースする際に発生する論理エラーを修正。 #78982 (Pavel Kruglov).
- Parquet バッチサイズが 0 に設定されている場合に例外をスローするようにしました。以前は
output_format_parquet_batch_size = 0の場合、ClickHouse がハングしていましたが、この動作は修正されました。 #78991 (daryawessely). - コンパクトパーツにおける basic フォーマットでの variant 判別子のデシリアライズを修正しました。この問題は https://github.com/ClickHouse/ClickHouse/pull/55518 で導入されました。#79000(Pavel Kruglov)。
complex_key_ssd_cache型の辞書は、block_sizeおよびwrite_buffer_sizeパラメータの値として 0 または負の値を受け付けなくなりました(issue #78314)。#79028(Elmi Ahmadov)。- SummingMergeTree で非集約列に Field を使用することは避けてください。SummingMergeTree で使用される Dynamic/Variant 型で予期しないエラーを引き起こす可能性があります。 #79051 (Pavel Kruglov).
- analyzer において、ヘッダーが異なる Distributed 宛先テーブルを使用するマテリアライズドビューからの読み取りを修正しました。 #79059 (Pavel Kruglov)。
ON CLUSTERクエリのCONSTRAINTセクションでcurrentDatabase関数が使用された、ごく限定的な状況で発生していたクラッシュを修正しました。Closes #78100. #79070 (pufit).- バッチ挿入が行われたテーブルで
arrayUnion()が余分な(誤った)値を返していた不具合を修正しました。#75057。#79079(Peter Nguyen)。 #*OpenSSLInitializerにおけるセグメンテーションフォルトの不具合を修正しました。#79092 をクローズ。#79097(Konstantin Bogdanov)。 - サーバー間クエリにおける外部ロールの受け渡しを修正。 #79099 (Andrey Zvonov).
- S3 の ListObject に対して常に prefix を設定するようにしました。 #79114 (Azat Khuzhin)。
- バッチ挿入を行うテーブルに対して、
arrayUnion()が余分な(誤った)値を返していたバグを修正しました。 #79157 を修正。 #79158(Peter Nguyen)。 - フィルターのプッシュダウン後に発生する論理エラーを修正。 #79164 (Pervakov Grigorii).
- SingleValueDataGeneric では Field の代わりに IColumn を使用するようにしました。これにより、
Dynamic/Variant/JSON型に対するargMaxなどの一部の集約関数で発生していた誤った戻り値の問題を修正しました。 #79166 (Pavel Kruglov). - http ベースのエンドポイントと組み合わせて使用した場合に
delta-kernel実装の DeltaLake table engine が正しく動作しない問題と、NOSIGNの問題を修正しました。#78124 をクローズ。#79203(Kseniia Sumarokova)。 - Keeper の修正: マルチリクエスト失敗時にウォッチがトリガーされないようにしました。 #79247 (Antonio Andelic).
INで Dynamic 型および JSON 型の使用を禁止しました。現在のINの実装では、これらを許可すると結果が不正確になる可能性があります。INにおけるこれらの型の適切なサポートは複雑であり、将来的に対応される可能性があります。#79282(Pavel Kruglov)。- JSON 型のパース時における重複パスの検査処理を修正。 #79317 (Pavel Kruglov).
- SecureStreamSocket の接続に関する問題を修正。 #79383 (Konstantin Bogdanov).
- データを含む plain_rewritable ディスクのロード処理を修正。 #79439 (Julia Kartseva).
- MergeTree の Wide パーツにおける動的サブカラム検出時のクラッシュを修正。 #79466 (Pavel Kruglov).
- テーブル名の長さは初回の作成クエリに対してのみ検証します。後方互換性の問題を避けるため、2回目以降の作成では検証を行わないでください。 #79488 (Miсhael Stetsyuk).
- スパースカラムを使用するテーブルにおいて、いくつかのケースで発生していた
Block structure mismatchエラーを修正しました。 #79491 (Anton Popov). Logical Error: Can't set alias of * of Asterisk on aliasが発生する 2 つのケースを修正しました。 #79505 (Raúl Marín).- Azure Blob Storage 向けの
use_native_copyおよびallow_azure_native_copy設定の適用方法を修正し、資格情報が一致する場合にのみネイティブコピーを使用するよう更新して、#78964 を解決しました。 #79561 (Smita Kulkarni). - Atomic データベースのリネーム時に誤ったパスが使用される不具合を修正。 #79569 (Tuan Pham Anh)。
- JSON 列と他の列を併用した ORDER BY の動作を修正。 #79591 (Pavel Kruglov).
use_hedged_requestsとallow_experimental_parallel_reading_from_replicasの両方が無効化されている場合に、リモート読み取り時に結果が重複する問題を修正しました。 #79599 (Eduard Karacharov)。- Unity Catalog 使用時における delta-kernel 実装のクラッシュを修正。 #79677 (Kseniia Sumarokova).
- autodiscovery クラスター向けのマクロを解決できるようにしました。 #79696 (Anton Ivashkin).
- このカラムが相関付けられているかを確認する際に、カラムの由来するスコープが不明な場合に発生していた論理エラーを修正しました。#78183 を修正。#79451 を修正。#79727(Dmitry Novik)。
- ColumnConst と Analyzer を含む grouping sets で誤った結果が返される問題を修正。 #79743 (Andrey Zvonov).
- ローカルレプリカが古くなっている場合にディストリビューテッドテーブルから読み取ると発生する、ローカルシャードの結果の重複を修正しました。 #79761 (Eduard Karacharov).
- 不正に設定された
page_cache_limitsを適切に処理するようにしました。 #79805 (Bharat Nallan). - 可変長のフォーマッタ(例:
%W、曜日のMondayやTuesdayなど)の後に、複合フォーマッタ(複数の要素を一度に出力するフォーマッタ、例:%D、アメリカ式の日付05/04/25)が続く場合の SQL 関数formatDateTimeの結果を修正しました。 #79835 (Robert Schulze). - IcebergS3 は count() の最適化をサポートしますが、IcebergS3Cluster はサポートしません。その結果、クラスターモードで返される count() の結果がレプリカ数の倍数になることがあります。 #79844 (wxybear).
- 負の符号ビットを持つ NaN のソート順序を修正。 #79847 (Pervakov Grigorii).
GROUP BY ALLはGROUPING部分を考慮しなくなりました。 #79915 (Yarik Briukhovetskyi)。- 遅延マテリアライゼーションにおいて、プロジェクションまでクエリ実行に列が一切使用されない場合に発生する
AMBIGUOUS_COLUMN_NAMEエラーを修正しました。例: SELECT * FROM t ORDER BY rand() LIMIT 5。 #79926 (Igor Nikonov)。 TopK/TopKWeighted関数の誤った状態のマージにより、容量を使い切っていない場合でも誤差が過度に大きくなる問題を修正しました。 #79939 (Joel Höner).- クエリ
CREATE DATABASE datalake ENGINE = DataLakeCatalog(\'http://catalog:8181\', \'admin\', \'password\')に含まれるパスワードをマスクするようにしました。 #79941 (Han Fei). JOIN USINGでエイリアスを指定できるようにしました。列名が変更されている場合(例:ARRAY JOINによる変更など)に、このエイリアスを指定します。#73707 を修正しました。#79942(Nikolai Kochetov)。azure_blob_storageオブジェクトストレージでreadonly設定が尊重されるようになりました。 #79954 (Julia Kartseva).match(column, '^…')をバックスラッシュでエスケープされた文字と共に使用した際に発生していた、誤ったクエリ結果およびメモリ不足によるクラッシュを修正しました。 #79969 (filimonov).- データレイクに対する Hive パーティショニングを無効化。この変更は次の Issue を部分的に解決します: https://github.com/issues/assigned?issue=ClickHouse%7CClickHouse%7C79937。#80005(Daniil Ivanik)。
- ラムダ式を含む Skip インデックスが適用されない問題を修正しました。インデックス定義内の高レベル関数がクエリ内のものと完全に一致する場合にも、Skip インデックスが正しく適用されるようにしました。 #80025 (Nikolai Kochetov).
- UNION を含むマテリアライズドビューが新しいレプリカでも正しく動作するようにしました。 #80037 (Samay Sharma).
- レプリケーションログからの
ATTACH_PARTコマンドを実行するレプリカでパーツをアタッチする際のメタデータバージョンを修正しました。 #80038 (Aleksei Filatov). - SQL 関数
parseDateTimeのフォーマット指定子%eは、これまではスペースでパディングされた値(例:3)のみを受け付けていましたが、現在は 1 桁の日(例:3)も認識するようになりました。これにより、MySQL と互換性のある動作になります。以前の動作を維持したい場合は、設定parsedatetime_e_requires_space_padding = 1を指定してください。(issue #78243)。#80057(Robert Schulze)。 - Executable User Defined Functions (eUDF) の名前は、他の関数とは異なり、
system.query_logテーブルのused_functionsカラムには追加されません。このPRでは、リクエスト内で eUDF が使用された場合に、その eUDF の名前が追加されるようにしました。 #80073 (Kyamran). #* ClickHouse のログに出力されるCannot find 'kernel' in '[...]/memory.stat'という警告を修正しました (issue #77410). #80129 (Robert Schulze). - Arrow 形式における LowCardinality(FixedString) の論理エラーを修正。 #80156 (Pavel Kruglov).
- Merge エンジンでのサブカラムの読み取りを修正。 #80158 (Pavel Kruglov).
KeyConditionにおける数値型同士の比較に関するバグを修正しました。 #80207 (Yarik Briukhovetskyi)。- プロジェクションを持つテーブルに lazy materialization が適用された際に発生するエラー
AMBIGUOUS_COLUMN_NAMEを修正。 #80251 (Igor Nikonov). - 暗黙のプロジェクションを使用している場合に、LIKE 'ab_c%' のような文字列プレフィックスフィルタに対する誤った COUNT の最適化を修正しました。これにより、#80250 が修正されます。#80261(Amos Bird)。
- MongoDB ドキュメント内で、ネストされた数値フィールドが文字列として不適切にシリアライズされる問題を修正しました。MongoDB ドキュメントに対する最大ネスト深度の制限を削除しました。 #80289 (Kirill Nikiforov).
- Replicated データベースでの RMT に対するメタデータチェックをより緩やかにしました。#80296 をクローズします。#80298(Nikolay Degterinsky)。
- PostgreSQL ストレージ向けの DateTime および DateTime64 のテキスト表現を修正。 #80301 (Yakov Olkhovskiy).
StripeLogテーブルでタイムゾーン付きのDateTime型を使用できるようにしました。これにより #44120 が解決されました。#80304(Alexey Milovidov)。- クエリプランステップが行数を変更する場合、非決定的関数を含む述語に対するフィルタープッシュダウンを無効化しました。#40273 を修正しました。#80329(Nikolai Kochetov)。
- サブカラムを含むプロジェクションで発生する可能性のあった論理エラーやクラッシュを修正しました。 #80333 (Pavel Kruglov).
ON式が自明な等価条件でない場合に、logical JOIN ステップのフィルタープッシュダウン最適化によって発生するNOT_FOUND_COLUMN_IN_BLOCKエラーを修正。#79647 および #77848 を修正。#80360(Nikolai Kochetov)。- パーティション化されたテーブルでキーを逆順に読み取る際に誤った結果が返る問題を修正しました。これにより #79987 が解決されました。 #80448 (Amos Bird)。
- NULL を許容するキーを持ち、
optimize_read_in_orderが有効になっているテーブルで、誤ったソート順になる問題を修正しました。 #80515 (Pervakov Grigorii). - SYSTEM STOP REPLICATED VIEW によってビューを一時停止した場合に、Fixed Refreshable マテリアライズドビューの DROP がハングしてしまう問題を修正しました。 #80543 (Michael Kolupaev).
- 分散クエリで定数タプルを使用した場合に発生する 'Cannot find column' エラーを修正しました。 #80596 (Yakov Olkhovskiy).
- Distributed テーブルにおける
join_use_nulls使用時のshardNum関数の不具合を修正しました。 #80612 (János Benjamin Antal). - Merge エンジンにおいて、一部のテーブルにのみ存在するカラムの読み取り時に誤った結果が返される問題を修正しました。 #80643 (Pavel Kruglov).
- これで iceberg_history テーブル内のタイムスタンプは正しくなっているはずです。 #80711 (Melvyn Peignon).
- オブジェクトストレージ用テーブル関数における、単一要素 enum のグロブ処理を修正。 #80716 (Konstantin Bogdanov)。
- Tuple(Dynamic) と String を用いる比較関数において誤った結果型が返され、論理エラーを引き起こしていた問題を修正しました。#80728 (Pavel Kruglov).
- Unity Catalog 向けに不足していたサポート対象データ型
timestamp_ntzを追加。#79535 と #79875 を修正。#80740(alesapin)。 IN cteを使用する分散クエリで発生するTHERE_IS_NO_COLUMNエラーを修正。#75032 を解決。#80757(Nikolai Kochetov)。- 外部
ORDER BYでファイル数が過剰になる問題(メモリ使用量の過大化につながる)を修正。 #80777 (Azat Khuzhin). #* この PR は #80742 をクローズする可能性があります。 #80783 (zoomxi). #* get_member_id() が NULL から std::string を生成していたことが原因で発生していた Kafka のクラッシュを修正(この問題は、ブローカーへの接続に失敗した場合にのみ発生していた可能性が高い)。 #80793 (Azat Khuzhin). - Kafka エンジンをシャットダウンする前にコンシューマを正しく
awaitするようにしました(シャットダウン後もアクティブなコンシューマが残存していると、さまざまなデバッグアサーションが発火したり、テーブルが drop / detach されたあとでもバックグラウンドでブローカーからデータを読み取ってしまう可能性があります)。 #80795 (Azat Khuzhin). predicate-push-down最適化が原因で発生するNOT_FOUND_COLUMN_IN_BLOCKを修正し、#80443 を解決。 #80834(Nikolai Kochetov)。USING付きJOINで使用されるテーブル関数において、アスタリスク(*)マッチャーの解決処理に関する論理エラーを修正しました。 #80894 (Vladimir Cherkasov).- Iceberg メタデータファイルキャッシュのメモリ計上を修正。 #80904 (Azat Khuzhin).
- NULL を許容するパーティションキーで誤ったパーティション分割が行われる問題を修正しました。 #80913 (Pervakov Grigorii).
- ソーステーブルがイニシエータ上に存在しない場合に、プッシュダウンされた述語(
allow_push_predicate_ast_for_distributed_subqueries=1)を伴う分散クエリで発生するTable does not existエラーを修正しました。#77281 の問題を解決します。#80915(Nikolai Kochetov)。 - 名前付きウィンドウを用いた入れ子になった関数の論理エラーを修正しました。 #80926 (Pervakov Grigorii).
- Nullable 列および浮動小数点列の極値の処理を修正。 #80970 (Pervakov Grigorii).
system.tablesからのクエリ実行時に発生しうるクラッシュを修正しました(特にメモリプレッシャー下で発生しやすい問題)。#80976 (Azat Khuzhin).- ファイル拡張子から圧縮方式を推論するファイルに対して、truncate を伴うアトミックな rename 操作を修正しました。 #80979 (Pablo Marcos). #* ErrorCodes::getName を修正しました。 #81032 (RinChanNOW).
- Unity Catalog で、すべてのテーブルに対する権限がないとユーザーがテーブルを一覧表示できないバグを修正しました。現在はすべてのテーブルが正しく一覧表示され、アクセス制限されたテーブルから読み取ろうとすると例外がスローされます。 #81044 (alesapin)。
- これにより、ClickHouse は
SHOW TABLESクエリにおいて、データレイクカタログからのエラーや予期しない応答を無視するようになりました。#79725 を修正しました。 #81046(alesapin)。 JSONExtractおよびJSON型のパース処理で、整数値からのDateTime64のパースを修正しました。 #81050 (Pavel Kruglov).date_time_input_format設定がスキーマ推論キャッシュに反映されるようにしました。 #81052 (Pavel Kruglov).- クエリ開始後からカラム送信前までの間にテーブルが DROP された場合に、
INSERTクエリがクラッシュする問題を修正。 #81053 (Azat Khuzhin). - quantileDeterministic における未初期化値の使用の問題を修正しました。 #81062 (Azat Khuzhin).
- MetadataStorageFromDisk ディスクのトランザクションにおけるハードリンク数の管理を修正し、テストを追加。 #81066 (Sema Checherinda).
- 他の関数と異なり、ユーザー定義関数 (UDF) の名前は
system.query_logテーブルに追加されていませんでした。このPRでは、リクエスト内でUDFが使用された場合に、そのUDF名が2つのカラムused_executable_user_defined_functionsまたはused_sql_user_defined_functionsのいずれかに追加されるようにしました。#81101 (Kyamran)。 - HTTP プロトコル経由でテキスト形式(
JSON、Valuesなど)を用いた挿入時に、Enumフィールドが省略されていた場合に発生するToo large size ... passed to allocatorエラーや、クラッシュが起こり得る問題を修正しました。 #81145 (Anton Popov). - Sparse カラムを含む INSERT ブロックが non-MT のマテリアライズドビューにプッシュされた場合に発生する LOGICAL_ERROR を修正。 #81161 (Azat Khuzhin).
- クロスレプリケーション環境で
distributed_product_mode_local=localを使用した際に発生するUnknown table expression identifierエラーを修正。 #81162 (Nikolai Kochetov). - フィルタリング後の Parquet ファイルの行数を誤ってキャッシュしていた問題を修正しました。 #81184 (Michael Kolupaev)。
- 相対キャッシュパス使用時の fs キャッシュ
max_size_to_total_space設定を修正。#81237 (Kseniia Sumarokova). - Parquet フォーマットで const のタプルまたはマップを出力する際にクラッシュしていた clickhouse-local の問題を修正しました。 #81249 (Michael Kolupaev).
- ネットワーク経由で受信した配列オフセットを検証するようにしました。 #81269 (Azat Khuzhin).
- 空のテーブルを結合し、かつウィンドウ関数を使用するクエリにおけるコーナーケースを修正しました。このバグにより並列ストリーム数が際限なく増加し、その結果 OOM を引き起こしていました。 #81299 (Alexander Gololobov).
- datalake の Cluster 関数(
deltaLakeCluster、icebergClusterなど)に対する修正: (1) 古い analyzer でCluster関数を使用した際にDataLakeConfigurationでセグメンテーションフォルトが発生する可能性を修正; (2) 重複していたデータレイクのメタデータ更新(余分なオブジェクトストレージへのリクエスト)を削除; (3) フォーマットが明示的に指定されていない場合のオブジェクトストレージでの冗長な一覧取得を修正(非 Cluster のデータレイクエンジンでは既に対応済み)。#81300(Kseniia Sumarokova)。 force_restore_dataフラグで失われた Keeper メタデータを復元できるようにしました。 #81324 (Raúl Marín).- delta-kernel におけるリージョンエラーを修正。これにより #79914 を解決。#81353(Kseniia Sumarokova)。
- divideOrNull に対する誤った JIT 処理を無効化しました。 #81370 (Raúl Marín).
- MergeTree テーブルのパーティション列名が長い場合に発生する INSERT エラーを修正。 #81390 (hy123q).
- 複数のマニフェストファイルの内容をメモリ上に保持しないようにしました。 #81470 (Daniil Ivanik).
- バックグラウンドプールのシャットダウン中に発生する可能性のあったクラッシュを修正しました(
background_.*pool_size)。#81473(Azat Khuzhin)。 URLエンジンでテーブルに書き込む際に発生していたNpyフォーマットにおける範囲外読み取りを修正しました。これにより #81356 が解決されました。 #81502 (Alexey Milovidov)。- Web UI に
NaN%が表示される可能性があります(JavaScript によくある問題です)。 #81507 (Alexey Milovidov)。 database_replicated_enforce_synchronous_settings=1設定有効時のDatabaseReplicatedの不具合を修正。 #81564 (Azat Khuzhin).- LowCardinality(Nullable(...)) 型のソート順を修正。 #81583 (Pervakov Grigorii).
- サーバーは、ソケットからリクエストを完全に読み取っていない場合、HTTP 接続を維持しないようにする必要があります。 #81595 (Sema Checherinda).
- スカラー相関サブクエリが射影式の結果を
Nullable型で返すようにしました。相関サブクエリが空の結果セットを生成する場合の不具合を修正しました。 #81632 (Dmitry Novik)。 ReplicatedMergeTreeへのATTACH中に発生するエラーUnexpected relative path for a deduplicated partを修正。 #81647 (Azat Khuzhin).- クエリ設定
use_iceberg_partition_pruningは、クエリコンテキストではなくグローバルコンテキストを使用しているため、Iceberg ストレージでは有効になりません。デフォルト値が true であるため重大な問題にはなりませんが、この PR によって修正されます。 #81673 (Han Fei). - マージツリー設定
merge_max_block_sizeが 0 でないことを保証するバリデーションを追加しました。 #81693 (Bharat Nallan). DROP VIEWクエリがハングしてしまうclickhouse-localの問題を修正しました。 #81705 (Bharat Nallan)。- 一部のケースでの StorageRedis の join を修正。 #81736 (Pervakov Grigorii).
- 空の
USING ()を使用し、旧アナライザーが有効な場合に発生するConcurrentHashJoinのクラッシュを修正。 #81754 (Nikita Taranov)。 - Keeper の修正: ログに無効なエントリが存在する場合は、新しいログのコミットをブロックするようにしました。以前は、リーダーが一部のログを誤って適用してしまっても、フォロワーがダイジェストの不一致を検出して処理を中断するにもかかわらず、新しいログのコミットを継続していました。 #81780 (Antonio Andelic).