後方互換性を持たない変更
- 関数
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です。理由: 特定の環境 (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クエリで圧縮コーデックが明示的に定義されていない場合にデフォルトの圧縮コーデックを指定できる、新しいオプションを MergeTreeSETTINGSに追加しました。これにより #42005 が解決されます。 #66394 (gvoelfin). - https://github.com/ClickHouse/ClickHouse/pull/71943 のフォローアップです。この PR では、
Time/Time64データ型を実装しています。新たに Time (HHH:MM:SS) と Time64 (HHH:MM:SS.<fractional>) のデータ型に加え、基本的な CAST 関数と、他のデータ型と連携するための関数も実装しました。また、CAST 関数でtoTime関数が必要になるため、既存のtoTime関数はtoTimeWithFixedDateに名称変更しました。#75735 (Yarik Briukhovetskyi). WHERE句内のEXISTS式の引数として、相関サブクエリをサポートしました。#72459 をクローズします。#76078 (Dmitry Novik) 。- Merge テーブルエンジンへの書き込みをサポートしました。#77484 (Anton Ivashkin).
- replicated MergeTree テーブル向けの Distributed
INSERT SELECTで、異なるノードで異なるデータを選択してそれぞれ独立に挿入することにより、並列レプリカを効率的に利用してINSERTを並列化できるようになりました。#78041 (Igor Nikonov) 。 - map の値でフィルタリングするための
mapContainsValuesLike/mapContainsValues/mapExtractValuesLike関数と、bloomfilter ベースの索引でのサポートを追加しました。#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) 。- Coalescing Merge Tree のサポートを追加しました。これにより #78869 はクローズされます。#79344 (Konstantin Vedernikov)。
stringBytesUniqとstringBytesEntropy関数を追加し、ランダムまたは暗号化されている可能性があるデータを検索できるようにしました。#79350 (Sachin Kumar Singh).- MergeTree ファミリーのテーブルで
_part_starting_offset仮想カラムをサポートしました。このカラムは、現在のパーツ一覧に基づいてクエリ実行時に計算される、それより前にあるすべてのパーツの累積行数を表します。累積値はクエリの実行中を通して保持され、パーツ剪枝の後も引き続き有効です。この動作をサポートするため、関連する内部ロジックもリファクタリングされました。 #79417 (Amos Bird). - 単一のクエリ内のすべてのサブクエリで同じストレージスナップショットを共有できるように、設定
enable_shared_storage_snapshot_in_queryが追加されました。これにより、1 つのクエリ内で同じテーブルが複数回参照される場合でも、常に同じスナップショットに対して一貫した読み取りが保証されます。#79471 (Amos Bird). - CH JSONカラムをParquetに書き込めるようにし、Parquet JSONカラムをCH JSONカラムとして直接読み込めるようにしました。 #79649 (Nihal Z. Miaji) 。
chdigを ClickHouse の一部として同梱 — ClickHouse 向けの TUI インターフェイス (top 風) 。#79666 (Azat Khuzhin) 。pointInPolygonにMultiPolygonの対応を追加しました。#79773 (Nihal Z. Miaji) 。- Geo Parquet をサポートしました。これで #75317 をクローズします。 #79777 (Konstantin Vedernikov).
- ローカルファイルシステムにマウントされた delta テーブルを
deltaLakeLocalテーブル関数経由でクエリできるようになりました。#79781 (roykim98). - base32 のエンコード/デコード機能を追加しました。#79809 (Joanna Hulboj) 。
- ClickHouse の vector search で、事前フィルタリングと事後フィルタリングの両方がサポートされるようになり、よりきめ細かく制御するための関連設定も追加されました。 (issue #78161) 。#79854 (Shankar Iyer) 。
- WKB フォーマットを読み取る関数をサポートしました。これにより、#43941 に部分的に対応しました。#80139 (Konstantin Vedernikov) 。
- String から DateTime へのキャスト時のパースモードを選択できる新しい設定
cast_string_to_date_time_modeを追加しました。#80210 (Pavel Kruglov) 。 Bech32およびBech32mのエンコード/デコード関数を追加しました (issue #40381) 。#80239 (George Larionov)。- Atomic および Ordinary の DB エンジンで
disk設定がサポートされ、テーブルのメタデータファイルを保存するディスクを指定できるようになりました。#80546 (Tuan Pham Anh) 。 - MergeTreeパーツを展開して比較する関数をサポートしました。 #80573 (Mikhail Artemenko).
- 時系列データを扱う際の一部のユースケースを高速化する
timeSeries*ヘルパー関数: - 開始タイムスタンプ、終了タイムスタンプ、step を指定した時間グリッドにデータを再サンプリング - 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).
- 右テーブルのサイズがこの閾値を下回る場合は
hashアルゴリズムにフォールバックするための閾値 (parallel_hash_join_threshold設定で制御) を導入しました。#76185 (Nikita Taranov) 。 Pipe::resizeの既存実装では、ResizeまたはStrictResizeノードを 1 つ作成し、それをパイプラインのトポロジーに挿入します。このノードは、すべての入力ストリーム (upstream nodes) を統合された一連の出力ストリーム (downstream nodes) に接続する中央ハブとして機能します。この設計により、パイプライングラフの実行中、特にコア数の多い環境では、ExecutingGraph::Node::status_mutexをめぐる競合が発生します。パイプラインが数十から数百のストリームまでスケールすると、この競合により次のような結果になります。 #77562 (Zhiguo Zhou).S3Queue/AzureQueueでINSERTによるデータ挿入を並列に実行できるようにし、パフォーマンスを向上しました (parallel_inserts=trueの queue 設定で有効化できます) 。これまでS3Queue/AzureQueueで並列実行できたのはパイプラインの最初の部分 (ダウンロード、パース) のみで、INSERTはシングルスレッドでした。しかも、INSERTはほぼ常にボトルネックになります。これにより、processing_threads_numに対してほぼ線形にスケールするようになりました。#77671 (Azat Khuzhin).- 個別のサブカラムを読み取れるよう、各サブストリームのマークを保存するように compact パーツのフォーマットが変更されました。従来の compact フォーマットも引き続き読み取りでサポートされており、書き込みでは MergeTree setting
write_marks_for_substreams_in_compact_partsを使って有効化できます。これは compact パーツのストレージ形式を変更するため、より安全にアップグレードできるようデフォルトでは無効になっています。今後のリリースのいずれかで、デフォルトで有効になる予定です。 #77940 (Pavel Kruglov). - 新しい設定
use_skip_indexes_in_final_exact_modeが導入されました。ReplacingMergeTreeテーブルに対するクエリにFINAL句が含まれる場合、スキップ索引に基づいてテーブルの範囲のみを読み取ると、誤った結果になる可能性があります。この設定を使用すると、スキップ索引が返した主キー範囲と重複する新しいパーツをスキャンすることで、正しい結果を返せるようになります。無効にするには 0、有効にするには 1 を設定します。#78350 (Shankar Iyer) 。 - 現在は、並列レプリカを有効にした読み取りにおけるタスクサイズの決定に、レプリカ数を使用するようになりました。これにより、読み取るデータ量がそれほど多くない場合でも、レプリカ間での作業分散が改善されます。 #78695 (Nikita Taranov).
- 分散aggregationの最終段階で、
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) 。- trivial count 最適化でクエリを高速化しました。 #79945 (Raúl Marín).
UniqExactSet::mergeにおいて、いずれかのセットが空の場合の高速パスを追加しました。さらに、LHS のセットが 2 レベルで RHS が 1 レベルの場合は、RHS を 2 レベルに変換しないようになりました。#79971 (Nikita Taranov) 。convertDecimalsImplに__attribute__((always_inline))を追加。#79999 (Konstantin Bogdanov) 。- デフォルトで
input_format_parquet_bloom_filter_push_downを true に設定するようにしました。また、設定変更履歴の誤りを修正しました。#80058 (Alexey Milovidov). #* デフォルトでログを非同期化するようにしました。これは<logger>の下で<async>false</async>を設定すると無効にできます。#80125 (Raúl Marín). - 二段階ハッシュテーブルの使用時におけるメモリ再利用効率を改善し、ページフォールトを削減しました。#80245 (Jiebin Sun) 。
- QueryConditionCache における不要な更新を回避し、ロック競合を軽減しました。#80247 (Jiebin Sun).
- 並列ハッシュ結合に効果が見込める、
concatenateBlocksの小規模な最適化。 #80328 (李扬). - 主キーの範囲から mark の範囲を選択する際、主キーが関数でラップされていると、binary search は使用できません。この PR では、この制限が改善されました。主キーが常に単調な関数 chain でラップされている場合や、RPN に常に true となる要素が含まれている場合でも、binary search を適用できます。この PR は #45536 をクローズします。#80597 (zoomxi).
- Kafka エンジンのシャットダウン速度を改善 (複数の Kafka テーブルがある場合の余分な 3 秒の遅延を解消) 。#80796 (Azat Khuzhin) 。
- 非同期 INSERT のメモリ使用量を削減し、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) 。
- オブジェクトストレージ向けの cluster table function (例:
s3Cluster) では、cache の局所性を向上させるため、読み取り時のファイルがコンシステントハッシュに基づいてレプリカに割り当てられるようになりました。#77326 (Andrej Hoos) 。 - エラー
AuthenticationRequired発生後に S3 の認証情報を更新します。 #77353 (Vitaly Baranov). - ビルダーを使って、一部の HTTP バッファにプロキシ設定を埋め込めるようにしました。#77693 (Arthur Passos).
system.asynchronous_metricsに Dictionary のメトリクスを追加しました -DictionaryMaxUpdateDelay- Dictionary 更新の最大遅延 (秒) 。 -DictionaryTotalFailedUpdates- すべての Dictionary で最後に正常にロードされて以降に発生したエラー数。 #78175 (Vlad).- 右側の引数がゼロの場合にNULLを返す関数
divideOrNull,moduloOrNull,intDivOrNull,positiveModuloOrNullを追加しました。 #78276 (kevinyhzou). isIPAddressInRange関数を、String、IPv4、IPv6、Nullable(String)、Nullable(IPv4)、Nullable(IPv6) の各データ型に対応するよう拡張しました。#78364 (YjyJeff) 。- PostgreSQL engine の接続プーラーの設定を動的に変更できるようになりました。 #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が追加されました。これは、query condition cache でキーとして使用されるハッシュに対応する平文の条件を格納します。#78671 (Robert Schulze). - ClickHouse Keeper を使用して、StorageKafka2 に Kafka のリバランスに似たロジックを実装しました。各レプリカでは、2 種類のパーティションロック (永続ロックと一時ロック) をサポートします。レプリカは可能な限り永続ロックを保持しようとしますが、任意の時点で 1 つのレプリカが保持する永続ロック数は
all_topic_partitions / active_replicas_countを超えません (ここでall_topic_partitionsはすべてのパーティション数、active_replicas_countはアクティブなレプリカ数です) 。これを超える場合、レプリカはいくつかのパーティションを解放します。一部のパーティションは、レプリカによって一時的に保持されます。1 つのレプリカが保持できる一時ロックの最大数は、他のレプリカにも一部のパーティションを永続ロックとして取得する機会を与えるため、動的に変化します。一時ロックを更新する際には、レプリカはそれらをすべて解放し、改めて別のロックの取得を試みます。#78726 (Daria Fomina). Kafkaテーブルエンジンに、SASL の設定と認証情報に関するテーブル設定が追加されました。これにより、設定ファイルや名前付きコレクションを使わなくても、Kafka および Kafka 互換システム向けの SASL ベースの認証をCREATE TABLEステートメント内で直接設定できるようになります。#78810 (Christoph Wurm) 。- 破損したテーブルの保存用として作成された可能性のあるデータベースに関する警告を追加しました。#78841 (János Benjamin Antal) 。
BFloat16カラムに対してベクトル類似度索引を作成できるようになりました。#78850 (Robert Schulze) 。- best-effort の DateTime64 パースで、小数部を含む Unix timestamp をサポートしました。#78908 (Pavel Kruglov) 。
- storage の Delta Lake delta-kernel 実装で
columnMappingMode.nameを修正し、スキーマ進化に関するテストを追加しました。#78921 (Kseniia Sumarokova). - 値の変換を改善し、Values フォーマットでの Variant カラムへの insert を改善しました。 #78923 (Pavel Kruglov).
S3Queueエンジンに仮想カラム_timeを追加しました。#78926 (Anton Ivashkin) 。tokens関数が拡張され、追加の “tokenizer” 引数と、さらにトークナイザー固有の引数を受け取れるようになりました。#79001 (Elmi Ahmadov) 。SHOW CLUSTERステートメントで、引数内のマクロ (ある場合) が展開されるようになりました。 #79006 (arf42).- ハッシュ関数が、Array、Tuple、Map 内の
NULLをサポートするようになりました。 (issue #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).- profile parquet 索引のプルーニングに関する ProfileEvents として、ParquetReadRowGroups と ParquetPrunedRowGroups を追加しました。#79180 (flynn).
- Azure blob storage のプレーンディスクについて、system.tables で報告されるデータパスにコンテナーのプレフィックスを追加し、報告内容を S3 および GCP と統一しました。#79241 (Julia Kartseva).
- クラスター上でのデータベース変更をサポート。 #79242 (Tuan Pham Anh).
- QueryMetricLog の統計情報収集では、実行し損ねた回を明示的にスキップするようにしました。これにより、ログが現在時刻に追いつくまで長時間かかるのを防げます。 #79257 (Mikhail Artemenko).
- 論理削除をその場で適用できるようになりました (設定
lightweight_deletes_sync = 0,apply_mutations_on_fly = 1を使用) 。 #79281 (Anton Popov). - すべての行を削除する必要があるパーツに対する
ALTER ... DELETEmutation を最適化しました。これにより、そのような場合は mutation を実行せず、元のパーツの代わりに空のパーツが作成されるようになりました。#79307 (Anton Popov) 。 CHColumnToArrowColumnの小規模な最適化。#79308 (Bharat Nallan) 。- 設定
allow_archive_path_syntaxは、誤って実験的な設定として扱われていました。実験的な設定がデフォルトで有効化されないようにするテストを追加しました。#79320 (Alexey Milovidov). - page cache の設定をクエリ単位で調整可能にしました。これにより、より迅速に実験できるようになり、高スループット・低レイテンシのクエリに向けた細かなチューニングも可能になります。#79337 (Alexey Milovidov).
- 大半の 64 ビットハッシュのように見える数値については、Pretty フォーマットで数値ヒントを表示しないようにしました。これで #79334 をクローズします。#79338 (Alexey Milovidov) 。
- Prettyフォーマットのデータがターミナルに表示されていて、後続のブロックのカラム幅が同じ場合は、カーソルを上に移動して前のブロックに結合し、前のブロックから続けて表示できます。これにより、#79333 がクローズされます。この機能は、新しい設定
output_format_pretty_glue_chunksで制御されます。 #79339 (Alexey Milovidov). - 高度なダッシュボード上のグラフの色は、対応するクエリのハッシュに基づいて決定されます。これにより、ダッシュボードをスクロールしながらでもグラフを覚えたり見つけたりしやすくなります。#79341 (Alexey Milovidov).
- 非同期メトリクス
FilesystemCacheCapacityを追加しました。これは、cache仮想filesystemの総容量を表します。インフラストラクチャ全体の監視に役立ちます。#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 ブロブストレージからブロブを列挙する際に発生する可能性がある無限ループを修正しました。 #79425 (Alexander Gololobov).
- 現在、ClickHouse は
param_<name>(アンダースコア) に加えて、param-<name>(ダッシュ) 形式のクエリパラメータも受け付けるようになりました。これで #63093 が解決しました。#79429 (Engel Danila) 。 #* ファイルシステムキャッシュの設定max_size_ratio_to_total_spaceを追加しました。#79460 (Kseniia Sumarokova) 。 - checksum を有効にしてローカルからリモート S3 にデータをコピーする際の帯域幅割引について、より詳細な警告メッセージを追加。#79464 (VicoWu) 。
clickhouse-benchmarkで、reconnectオプションを再設定し、再接続回数として 0、1、または N を指定できるようにしました。#79465 (Sachin Kumar Singh).- 入力フォーマットで作成されるブロックのサイズをバイト単位で制限する設定
input_format_max_block_size_bytesを追加しました。これにより、行に大きな値が含まれる場合のデータ取り込み時に、メモリ使用量の増大を抑えることができます。 #79495 (Pavel Kruglov). - sparseGrams の速度とメモリ使用量を改善しました。#79517 (Konstantin Vedernikov) 。
- 可能な場合、compact パーツへの挿入時に
blockの不要なコピーを回避します。#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).- 単純なケースにおいて、SELECT リスト内の相関サブクエリをサポートしました。#79925 (Dmitry Novik) 。
EXCEPT演算子を含む特定のクエリで発生していた不整合なフォーマットを修正しました。EXCEPT演算子の左辺が*で終わる場合、整形後のクエリから括弧が失われ、結果としてEXCEPT修飾子付きの*としてパースされていました。これらのクエリはファザーによって見つかったもので、実際に見つかる可能性は低いと考えられます。これにより #79950 をクローズします。#79952 (Alexey Milovidov).- あらゆる種類の
http_handlersにhttp_response_headersを追加できるようにしました。#79975 (Andrey Zvonov) 。 - Variant のデシリアライズ順序の cache を利用することで、JSON type のパースをわずかに改善しました。 #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) 。- この小さなパッチで #75817 が解決され、
system.zookeepertable からauxiliary_zookeepersのデータを取得できるようになりました。#80146 (Nikolay Govorov). - ベクトル類似度索引を使用するベクトル検索が、ベータになりました (以前は実験的でした) 。#80164 (Robert Schulze) 。
- サーバーのTCPソケットに関する非同期メトリクスを追加しました。これにより、オブザーバビリティが向上します。#80187 をクローズします。#80188 (Alexey Milovidov).
- 関数
tokensが、トークナイザーとしてstringをサポートするようになりました。#80195 (Robert Schulze) 。 - 並列レプリカ: すべての読み取りタスクが他のレプリカに割り当てられている場合、低速で使われていないレプリカを待たないようにしました。 #80199 (Igor Nikonov) 。
simpleAggregateFunctionでanylast_respect_nullsとany_respect_nullsをサポート。#80219 (Diskein) 。- Replicatedデータベースに対して不要な
adjustCreateQueryForBackup()の呼び出しを削除しました。#80282 (Vitaly Baranov) 。 #*clickhouse-localで、追加オプション (-- --config.value='abc'のように--の後ろに続くもの) を、等号なしでも許可しました。#80292 をクローズ。#80293 (Alexey Milovidov) 。 SHOW ... LIKEクエリでメタ文字を強調表示するようにしました。これにより #80275 をクローズします。#80297 (Alexey Milovidov). #*clickhouse-localで SQL UDF が永続化されるようにしました。以前に作成した関数は起動時に読み込まれます。これにより #80085 をクローズします。#80300 (Alexey Milovidov).TimeとTime64の比較をサポートしました。#80327 (Yarik Briukhovetskyi).- 予備的な DISTINCT ステップに対する EXPLAIN プランの説明を修正しました。#80330 (UnamedRus) 。
- ODBC/JDBC で named collections を使用できるようにしました。#80334 (Andrey Zvonov) 。
- 複数のプロジェクションによるフィルタリングのサポートを追加し、パートレベルのフィルタリングで複数のプロジェクションを使用できるようにしました。これにより、#55525 に対応しています。これは、#78429 に続く、プロジェクション索引を実装するための第2段階です。 #80343 (Amos Bird) 。
- readonly および破損したディスク数のメトリクス。DiskLocalCheckThread の開始時に、インジケータがログに記録されます。#80391 (VicoWu).
- プロジェクション対応の
s3_plain_rewritableストレージのサポートを実装しました。以前のバージョンでは、プロジェクションを参照するS3内のメタデータオブジェクトは、移動しても更新されませんでした。#70258 を修正しました。#80393 (Sav)。 - 並列レプリカでは、別個の接続タイムアウトを使用します。
parallel_replicas_connect_timeout_ms設定を参照してください。以前は、connect_timeout_with_failover_ms/connect_timeout_with_failover_secure_ms設定が、並列レプリカのクエリの接続タイムアウト値として使用されていました (デフォルトは 1 秒) 。#80421 (Igor Nikonov) 。 SYSTEM UNFREEZEコマンドは、読み取り専用および一度しか書き込めないディスク上のパーツを検索しようとしなくなりました。これにより #80430 が解決されます。#80432 (Alexey Milovidov).- マージ済みパーツに関するメッセージのログレベルを INFO から TRACE に変更しました。#80476 (Hans Krutzer).
- Dynamic と JSON について、Dynamic の shared variant や JSON の shared data といった特別な構造を使わずにデータをシリアライズ/デシリアライズできる Native format の flattened シリアライゼーションを実装しました。このシリアライゼーションは、
output_format_native_use_flattened_dynamic_and_json_serializationを設定することで有効にできます。これにより、異なる言語のクライアントでも、TCP プロトコルでの Dynamic と JSON のサポートをより容易に実装できます。#80499 (Pavel Kruglov) 。 - Iceberg テーブルのパーティションプルーニングのデフォルト動作を変更しました。 #80583 (Melvyn Peignon).
- 索引検索アルゴリズムのオブザーバビリティのため、
IndexBinarySearchAlgorithmとIndexGenericExclusionSearchAlgorithmという 2 つの新しい ProfileEvents を追加しました。#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ストレージはサポートされていませんでした。これは、ディスク上の (.gin_sid) ファイルを読み書きして segment id をその場で更新していたためです。packedストレージでは、未コミットのファイルから値を読み取ることがサポートされておらず、これが問題の原因となっていました。#80852 (Elmi Ahmadov). indexes = 1を指定してEXPLAINを使用すると、出力に検索アルゴリズムのセクションが追加されます。ここには、“binary search” または “汎用排除検索” のいずれかが表示されます。#80881 (Pablo Marcos).- 2024年初頭、新しいアナライザがデフォルトで有効になっていなかったため、MySQL ハンドラーでは
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 appで手動でログに記録された例外をログ記録済みとしてマークし、二重にログへ記録されないようにしました。 #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 は、conversion functions の単調性チェックにおける
is_strictの実装上の問題に対処するものです。現状では、toFloat64(UInt32) や toDate(UInt8) など一部の変換関数が、本来 true を返すべきところで、誤って is_strict に false を返しています。#81359 (zoomxi). #* ジャーナル付きの filesystem では、mkdirは filesystem のジャーナルに書き込まれ、その内容がディスクに永続化されます。ディスクが低速な場合、これには時間がかかることがあります。これを 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). #*--hostまたは--portが指定されている場合、clickhouse/ch別名は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).- アナライザ: join でカラム型を昇格した後のカラムプロジェクション名を修正しました。#63345 をクローズしました。#63519 (Dmitry Novik).
- materialized view の起動が遅すぎて、たとえばその materialized view にストリーミングする 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). - アナライザが有効な場合の
VIEW作成時におけるSELECTクエリの書き換えを修正しました。#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). - 新たに追加されたレプリカで、Replicatedデータベース内のリフレッシャブルmaterialized view が動作しない問題を修正しました。 #77774 (Michael Kolupaev) 。
- リフレッシュ可能なマテリアライズドビューがバックアップを破損させる問題を修正しました。 #77893 (Michael Kolupaev).
transformにおける古い発火ロジックのエラーを修正しました。#78247 (Yarik Briukhovetskyi) 。SYSTEM SYNC REPLICA LIGHTWEIGHT 'foo'で、指定したレプリカが存在しない場合でも成功と報告されていた問題を修正しました。このコマンドは今後、同期を試みる前に、そのレプリカが Keeper に存在することを適切に検証するようになりました。#78405 (Jayme Bird).- アナライザ使用時にセカンダリ索引が適用されない場合があった問題を修正。 #65607、 #69373 を修正。 #78485 (Nikolai Kochetov).
- 圧縮が有効な HTTP プロトコルでの profile events (
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). JOIN ... USINGにALIASカラムが含まれる場合に、アナライザがLOGICAL_ERRORを出してしまう問題を修正しました。本来は適切なエラーを返すべきでした。 #78618 (Yakov Olkhovskiy).- アナライザを修正:
CREATE VIEW ... ON CLUSTERで、SELECT に位置引数が含まれていると失敗する不具合を修正しました。#78663 (Yakov Olkhovskiy). SELECTに scalar subqueries が含まれる場合、スキーマ推論を伴う table function へのINSERT SELECTで発生するBlock structure mismatchエラーを修正しました。#78677 (Pervakov Grigorii) 。- アナライザを修正:
prefer_global_in_and_join=1を指定した SELECT クエリで Distributed テーブルを対象とする場合、in関数がglobalInに置き換えられるようにしました。 #78749 (Yakov Olkhovskiy). MongoDBengine またはmongodbtable function を使用するテーブルを読み取る数種類のSELECTqueries を修正しました。具体的には、WHEREclause で定数値の暗黙的な変換を行う queries (例:WHERE datetime = '2025-03-10 00:00:00') と、LIMITおよびGROUP BYを含む queries です。これらは以前、誤った結果を返すことがありました。#78777 (Anton Popov).- 異なるJSON型間の変換を修正しました。現在は、String への変換および String からの変換を経由する単純なCASTで実行されます。効率はやや低下しますが、100%正確です。#78807 (Pavel Kruglov).
- Dynamic型からInterval型への変換時の論理エラーを修正しました。 #78813 (Pavel Kruglov).
- JSONのパースエラー発生時のカラムのロールバックを修正しました。 #78836 (Pavel Kruglov).
- 定数エイリアスのカラムを使用してJOINする際の’bad cast’エラーを修正しました。#78848 (Vladimir Cherkasov) 。
- ビューとターゲットテーブルでカラムの型が異なるmaterialized viewでは、
PREWHEREを許可しないようにしました。#78889 (Pavel Kruglov). - Variant カラムの不正なバイナリデータをパースする際に発生する論理エラーを修正しました。 #78982 (Pavel Kruglov).
- Parquet のバッチサイズが 0 に設定されている場合に例外を発生させるようにしました。以前は
output_format_parquet_batch_size = 0のとき、ClickHouse がハングしていましたが、この問題は修正されました。#78991 (daryawessely) 。 - compact パーツ内の basic フォーマットにおける Variant の判別子のデシリアライズを修正しました。この問題は https://github.com/ClickHouse/ClickHouse/pull/55518 で導入されました。#79000 (Pavel Kruglov) 。
complex_key_ssd_cache型の Dictionaries で、block_sizeおよびwrite_buffer_sizeパラメータに 0 以下の値を指定すると、拒否されるようになりました (issue #78314) 。#79028 (Elmi Ahmadov) 。- SummingMergeTree では、非集計カラムに Field を使用しないでください。SummingMergeTree で使用される Dynamic/Variant 型で、予期しないエラーが発生する可能性があります。#79051 (Pavel Kruglov).
- アナライザで、Distributed 宛先テーブルのヘッダーが異なる場合に materialized view から読み取れない問題を修正しました。#79059 (Pavel Kruglov) 。
currentDatabase関数がON CLUSTERクエリのCONSTRAINTセクションで使われた非常に限定的な状況で発生していたクラッシュを修正しました。#78100 をクローズしました。#79070 (pufit) 。arrayUnion()が、バッチ挿入が行われたテーブルで余分な (誤った) 値を返す不具合を修正しました。#75057 を修正。#79079 (Peter Nguyen) 。 #*OpenSSLInitializerで発生する segfault を修正しました。#79092 をクローズ。#79097 (Konstantin Bogdanov) 。- サーバー間クエリでの外部ロールの受け渡しを修正しました。#79099 (Andrey Zvonov) 。
- S3 ListObject では常にプレフィックスを設定する。#79114 (Azat Khuzhin).
arrayUnion()が、一括 insert を行ったテーブルで余分な (誤った) 値を返すバグを修正しました。 #79157 を修正しました。 #79158 (Peter Nguyen) 。- フィルタのpushdown後に発生する論理エラーを修正しました。#79164 (Pervakov Grigorii) 。
- SingleValueDataGeneric で Field の代わりに IColumn を使うようにしました。これにより、
Dynamic/Variant/JSON型におけるargMaxなど一部の集約関数の戻り値が誤っていた問題を修正しました。 #79166 (Pavel Kruglov). - HTTP ベースのエンドポイントで使用される delta-kernel 実装の Delta Lake テーブルエンジンと、NOSIGN を修正しました。#78124 をクローズしました。#79203 (Kseniia Sumarokova).
- Keeperの修正: 失敗した multi リクエストでウォッチがトリガーされないようにしました。#79247 (Antonio Andelic) 。
INで Dynamic 型と JSON 型を禁止しました。現在のINの実装では、不正確な結果を招く可能性があります。これらの型をINで適切にサポートするのは複雑なため、対応は今後行われる可能性があります。 #79282 (Pavel Kruglov).- JSON type のパース時に重複したパスをチェックする処理を修正しました。 #79317 (Pavel Kruglov).
- SecureStreamSocket の接続に関する問題を修正しました。#79383 (Konstantin Bogdanov) 。
- データを含む plain_rewritable ディスクの読み込みを修正しました。#79439 (Julia Kartseva) 。
- MergeTree の wide パーツにおける動的サブカラム検出時のクラッシュを修正しました。 #79466 (Pavel Kruglov).
- テーブル名の長さの検証は、初回のCREATEクエリでのみ行います。後方互換性の問題を避けるため、secondary CREATE では検証しません。 #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 設定の適用を修正し、認証情報が一致する場合にのみ 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) 。
- 自動検出クラスターのマクロが正しく解決されるよう修正。 #79696 (Anton Ivashkin).
- このカラムが相関しているかどうかの確認時に発生する、カラムの始点スコープが不明であることに関する論理エラーを修正しました。#78183 を修正。#79451 を修正。#79727 (Dmitry Novik) 。
- ColumnConst とアナライザを用いる 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) 。 - projection までクエリ実行にカラムがまったく使われない場合に、遅延マテリアライゼーションで
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 パーティション化を無効化。https://github.com/issues/assigned?issue=ClickHouse%7CClickHouse%7C79937 に部分的に対応します。 #80005 (Daniil Ivanik).
- ラムダ式を含むスキップ索引が適用されない問題を修正しました。索引定義内の高水準関数がクエリ内の関数と完全に一致する場合に適用されないケースを修正しました。#80025 (Nikolai Kochetov).
- UNION を含む materialized view が、新しいレプリカでも正しく動作するようになりました。 #80037 (Samay Sharma).
- レプリケーションログのATTACH_PARTコマンドを実行するレプリカで、データパートをアタッチする際のメタデータバージョンを修正しました。 #80038 (Aleksei Filatov).
- SQL 関数
parseDateTimeのフォーマット指定子%eで、1 桁の日付 (例:3) を認識できるようになりました。従来は空白で埋めた形式 (例: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). - LowCardinality(FixedString) を使用する Arrow format における論理エラーを修正しました。#80156 (Pavel Kruglov) 。
- Mergeエンジンのサブカラムの読み取りを修正しました。 #80158 (Pavel Kruglov) 。
KeyConditionにおける数値型間の比較のバグを修正しました。#80207 (Yarik Briukhovetskyi).- プロジェクションを持つテーブルで遅延マテリアライゼーションが適用された際に発生する AMBIGUOUS_COLUMN_NAME を修正しました。#80251 (Igor Nikonov).
- 暗黙的なプロジェクションの使用時に、LIKE ‘ab_c%’ のような文字列プレフィックスフィルターで count 最適化が正しく機能しない問題を修正しました。これにより #80250 が修正されます。#80261 (Amos Bird).
- MongoDBドキュメント内で、ネストされた数値フィールドが文字列として不適切にシリアライズされる問題を修正。MongoDBから取得したドキュメントに対する最大深度の制限を削除。#80289 (Kirill Nikiforov).
- Replicated database における RMT のメタデータチェックをより緩やかにしました。#80296 をクローズ。#80298 (Nikolay Degterinsky).
- PostgreSQLストレージでの DateTime および DateTime64 のテキスト表現を修正しました。#80301 (Yakov Olkhovskiy).
StripeLogテーブルでタイムゾーン付きのDateTimeを使えるようにしました。これにより #44120 は解決されます。#80304 (Alexey Milovidov) 。- クエリプランのステップによって行数が変わる場合、非決定論的関数を含むpredicateへのfilter-push-downを無効化しました。#40273 を修正しました。#80329 (Nikolai Kochetov)。
- サブカラムを含むプロジェクションにおける潜在的な論理エラーとクラッシュを修正しました。#80333 (Pavel Kruglov) 。
ON式が単純な等価条件ではない場合に、論理 JOIN sep の filter-push-down 最適化によって発生するNOT_FOUND_COLUMN_IN_BLOCKエラーを修正しました。修正: #79647 修正: #77848。#80360 (Nikolai Kochetov).- パーティション化されたテーブルで、逆順のキーを読み取る際に誤った結果が返される問題を修正しました。これにより #79987 が修正されます。#80448 (Amos Bird) 。
- Nullable なキーを持ち、optimize_read_in_order が有効になっているテーブルで、ソートが正しく行われない問題を修正しました。#80515 (Pervakov Grigorii) 。
- SYSTEM STOP REPLICATED VIEW でビューを一時停止した場合に、リフレッシャブルmaterialized view の DROP がハングする問題を修正しました。 #80543 (Michael Kolupaev).
- 定数タプルを含む分散クエリで発生する’Cannot find column’エラーを修正。 #80596 (Yakov Olkhovskiy).
join_use_nulls使用時の分散テーブルにおけるshardNum関数を修正。 #80612 (János Benjamin Antal).- Merge engine で、一部のテーブルにのみ存在するカラムの読み取り時に誤った結果が返される問題を修正しました。 #80643 (Pavel Kruglov).
- iceberg_history テーブルのタイムスタンプが正しくなりました。#80711 (Melvyn Peignon) 。
- オブジェクトストレージのテーブル関数で、要素が 1 つだけの enum globs の処理を修正しました。#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 のクラッシュを修正しました (おそらく、broker への connection が Failed した場合にのみ発生していた問題です) 。#80793 (Azat Khuzhin). - シャットダウン前に Kafka エンジンのコンシューマーを適切に待機するようにしました (シャットダウン後もコンシューマーがアクティブなままだと、さまざまなデバッグアサーションがトリガーされる可能性があり、さらにテーブルが削除またはデタッチされた後でも、バックグラウンドでブローカーからデータを読み取ることがあります) 。#80795 (Azat Khuzhin) 。
predicate-push-down最適化が原因で発生するNOT_FOUND_COLUMN_IN_BLOCKを修正しました。#80443 を修正。 #80834 (Nikolai Kochetov).USINGを伴うJOINで、テーブル関数内のスター (*) マッチャーの解決時に発生する論理エラーを修正しました。#80894 (Vladimir Cherkasov).- Iceberg metadata files cache のメモリ使用量の計上を修正しました。#80904 (Azat Khuzhin).
- Nullableなパーティションキーでの誤ったパーティション化を修正。 #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 を伴う atomic rename の不具合を修正しました。#80979 (Pablo Marcos). #* ErrorCodes::getName の不具合を修正しました。#81032 (RinChanNOW).
- ユーザーが Unity Catalog 内のすべてのテーブルに対する権限を持っていない場合、テーブルを一覧表示できない不具合を修正しました。これにより、すべてのテーブルが正しく一覧表示されるようになり、制限されたテーブルを読み取ろうとすると例外が発生します。#81044 (alesapin).
- これで、ClickHouse は
SHOW TABLESクエリにおいて、データレイクカタログからのエラーや想定外の応答を無視するようになりました。#79725 を修正します。#81046 (alesapin). JSONExtractおよびJSON型のパースにおいて、整数からDateTime64をパースする際の不具合を修正しました。#81050 (Pavel Kruglov).- スキーマ推論 cache に
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が使用された場合に、2つのカラムused_executable_user_defined_functionsまたはused_sql_user_defined_functionsのいずれかにUDF名を追加するよう実装しました。#81101 (Kyamran). - テキストフォーマット (
JSON、Values、…) を使用し、Enumフィールドを省略した HTTP プロトコル経由の挿入で発生していたToo large size ... passed to allocatorエラーやクラッシュの可能性を修正しました。#81145 (Anton Popov) 。 - non-MT MV にプッシュされた INSERT ブロック内のスパース カラムで発生する LOGICAL_ERROR を修正。#81161 (Azat Khuzhin) 。
- クロスレプリケーション時に
distributed_product_mode_local=localで発生するUnknown table expression identifierを修正。#81162 (Nikolai Kochetov). - フィルタ適用後のParquetファイルの行数が誤ってキャッシュされる問題を修正しました。#81184 (Michael Kolupaev) 。
- 相対 cache パス使用時の fs cache
max_size_to_total_space設定を修正しました。#81237 (Kseniia Sumarokova) 。 - 定数のタプルまたはMapをParquetフォーマットで出力する際に、clickhouse-localがクラッシュする問題を修正しました。#81249 (Michael Kolupaev).
- ネットワーク経由で受信した配列のオフセットを検証。 #81269 (Azat Khuzhin).
- 空のテーブルを結合し、ウィンドウ関数を使用するクエリにおける特定のケースを修正しました。このバグにより並列ストリーム数が爆発的に増加し、OOM が発生していました。 #81299 (Alexander Gololobov).
- データレイクの Cluster 関数 (
deltaLakeCluster、icebergClusterなど) に関する修正: (1) 古いアナライザでCluster関数を使用した際にDataLakeConfigurationで発生する可能性がある segfault を修正; (2) 重複したデータレイクメタデータ更新 (余分なオブジェクトストレージリクエスト) を削除; (3) フォーマットが明示的に指定されていない場合に発生する、オブジェクトストレージでの不要なリスト取得を修正 (これは非クラスターのデータレイクエンジンではすでに対応済み) 。#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 でないことを確認するため、merge tree 設定のバリデーションを追加しました。#81693 (Bharat Nallan).clickhouse-localで、DROP VIEWクエリがハングする問題を修正しました。#81705 (Bharat Nallan) 。- 一部のケースで StorageRedis の JOIN を修正しました。#81736 (Pervakov Grigorii) 。
- 空の
USING ()を使用し、旧アナライザが有効な場合に発生するConcurrentHashJoinのクラッシュを修正しました。#81754 (Nikita Taranov). - Keeperの修正: ログ内に無効なエントリがある場合は、新しいログのコミットをブロックするようにしました。以前は、leaderが一部のログを誤って適用すると、followerはダイジェストの不一致を検出して中断するにもかかわらず、新しいログのコミットは継続されていました。 #81780 (Antonio Andelic).