> ## Documentation Index
> Fetch the complete documentation index at: https://private-7c7dfe99-vortex-format.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# Cloud 向け v26.6 changelog

> v26.6 の changelog

<h2 id="backward-incompatible-changes">
  後方互換性を持たない変更
</h2>

<h3 id="query-and-syntax-changes">
  クエリと構文の変更
</h3>

* ウィンドウ関数 `RANK` および `DENSE_RANK` は、SQL standard に準拠し、引数を受け付けずに `NUMBER_OF_ARGUMENTS_DOESNT_MATCH` をスローするようになりました。従来は `RANK(x) OVER (ORDER BY id)` のようなクエリが引数を無視したまま暗黙的に受け入れられており、ユーザーの混乱を招く一因となっていました。従来の寛容な動作に戻すには、`allow_rank_dense_rank_arguments = 1` を設定してください。[#104324](https://github.com/ClickHouse/ClickHouse/pull/104324) ([groeneai](https://github.com/groeneai))。

<h3 id="data-type-changes">
  データ型の変更
</h3>

* `icebergHash` と `icebergBucket` は、`Int128`、`UInt128`、`Int256`、`UInt256`、`Decimal256` 型の引数を明示的なエラーで拒否するようになりました。以前は、より大きな値を暗黙的に切り詰め、ハッシュ衝突を引き起こしていました。Iceberg の仕様では、ハッシュは 32/64 ビット整数および精度が最大 38 の Decimal に対してのみ定義されています。収まる値で以前の動作を維持するには、`Int64` または `Decimal128` にキャストしてください。 [#105866](https://github.com/ClickHouse/ClickHouse/pull/105866) ([Algunenano](https://github.com/Algunenano)).
* `toUUID`、`toUUIDOrNull`、`toUUIDOrZero`、`toUUIDOrDefault`、`UUID` および `Nullable(UUID)` への `CAST`、`UUID` への `accurateCastOrNull`、ならびにテキストから UUID をパースする入力フォーマット (`Avro`、`MsgPack`、`JSONExtract` など) は、長さは正しいものの 16 進数以外の文字を含む文字列を拒否するようになりました。以前は、そのような入力は 16 進数字のルックアップテーブルの末尾を超えて参照することで、暗黙的に架空の UUID に変換されていました。今後は `toUUID` が `CANNOT_PARSE_UUID` を throw し、`Or*` 系のバリアントは `NULL` / ゼロ UUID / 指定されたデフォルト値を返します。 [#104370](https://github.com/ClickHouse/ClickHouse/pull/104370) ([groeneai](https://github.com/groeneai)).
* `Dynamic` 型と `Variant` 型は、ウィンドウの `PARTITION BY` 句でも検証されるようになりました。以前は `allow_suspicious_types_in_group_by` が無効な場合にチェックされていませんでした。`Dynamic` または `Variant` カラムでウィンドウをパーティション化するクエリは、`allow_suspicious_types_in_group_by = 1` でない限り throw するようになりました。 [#105450](https://github.com/ClickHouse/ClickHouse/pull/105450) ([Avogar](https://github.com/Avogar)).

<h3 id="storage-and-index-changes">
  ストレージおよび索引に関する変更
</h3>

* min/max 集約および minmax 索引で、ネストされた Dynamic/Variant を拒否するようになりました。以前は最上位レベルの Dynamic/Variant のみを検査していました。 [#105468](https://github.com/ClickHouse/ClickHouse/pull/105468) ([Avogar](https://github.com/Avogar)).
* サーバー設定 `insert_deduplication_version` のデフォルトが `compatible_double_hashes` から `new_unified_hash` に変更されます。挿入の重複排除は、パーツ/パーティション単位ではなく、挿入ブロック全体 (挿入ごと) を対象に行われるようになりました。同じ挿入を再試行した場合は引き続き重複排除されますが、同一のパーツを生成する別々の挿入どうしは重複排除されなくなり、同じ行を異なる順序で挿入した場合も重複排除されなくなります。以前の動作に戻すには、`insert_deduplication_version = compatible_double_hashes` を設定してください。`new_unified_hash` では、非同期 INSERT の重複排除も同期ウィンドウによって制御されます。有効化の有無 (`replicated_deduplication_window`) と保持期間 (`replicated_deduplication_window_seconds`、デフォルトは1時間) はどちらも同期設定に従うため、`*_for_async_inserts` はレガシーであり、`old_separate_hashes` / `compatible_double_hashes` にのみ適用されます。`old_separate_hashes` がデフォルトだったリリースから直接アップグレードするインスタンスは、関連する最長の重複排除ウィンドウが経過するまで (非同期 INSERT を使用する場合は、デフォルトで1週間の `replicated_deduplication_window_for_async_inserts` を含む) 、まず `compatible_double_hashes` を使用して実行してから `new_unified_hash` を使用してください。`compatible_double_hashes` から切り替える非同期ワークロードでは、`new_unified_hash` が保持期間の長い `async_blocks` ID を確認しなくなるため、まず `replicated_deduplication_window[_seconds]` を非同期ウィンドウまで拡大して非同期ウィンドウ全体にわたって実行するか、非同期 INSERT を停止するか、`compatible_double_hashes` を継続して使用してください。 [#107886](https://github.com/ClickHouse/ClickHouse/pull/107886) ([CheSema](https://github.com/CheSema)).
* 区切り文字を含む needle を指定した `hasToken` が、`BAD_ARGUMENTS` を発生させずにテキスト索引経由で結果を返していた問題を修正しました。 [#108189](https://github.com/ClickHouse/ClickHouse/pull/108189) ([Ergus](https://github.com/Ergus)).

<h3 id="removed-features">
  削除された機能
</h3>

* 廃止された Arrow ベースの Parquet リーダーおよびライターは使用できなくなりました。代わりに常に native 実装が使用されます。旧実装を選択したり調整したりしていた次の設定は廃止され、無視されます: `input_format_parquet_use_native_reader_v3`、`output_format_parquet_use_custom_encoder`、`output_format_parquet_version`、`output_format_parquet_compliant_nested_types`、`output_format_parquet_unsupported_types_as_binary`。Native writer は常に準拠したネストされた型を用いて Parquet V2.6+ で書き込み、サポートされていない型については生データのバイナリとして書き込む代わりに `UNKNOWN_TYPE` をスローします。[#100949](https://github.com/ClickHouse/ClickHouse/pull/100949) ([alexey-milovidov](https://github.com/alexey-milovidov))。
* 廃止された `allow_experimental_query_deduplication` 設定と、それに伴うサポート対象外の実験的なクエリ重複排除の動作を削除しました。[#99398](https://github.com/ClickHouse/ClickHouse/pull/99398) ([devcrafter](https://github.com/devcrafter))。
* `ALTER TABLE ... REPLACE PARTITION ... FROM ...` では、ログソーステーブルの指定されたパーティションにパーツがない場合、宛先パーティションのデータを暗黙的に削除しなくなりました。以前は、このようなリクエストにより宛先パーティションが削除され、代わりに何も書き込まれませんでした。現在はデフォルトで `BAD_ARGUMENTS` により拒否されます。これは後方互換性を持たない変更です。これまで成功していた空のログソースからの `REPLACE PARTITION` (宛先を消去する操作) は、アップグレード後は例外をスローします。以前の暗黙的な消去動作に戻すには、新しい設定 `allow_replace_partition_from_empty_source = 1` を設定するか (クエリごと、またはプロファイル内) 、`compatibility` を `26.5` 以下に設定してください。宛先データを明示的に削除するには、`ALTER TABLE ... DROP PARTITION ...` を使用してください。[#104939](https://github.com/ClickHouse/ClickHouse/pull/104939) ([groeneai](https://github.com/groeneai))。
* 実験的な KQL (Kusto) 関数 `array_sort_asc` および `array_sort_desc` と、それらの SQL バックエンドである `kql_array_sort_asc` および `kql_array_sort_desc` を削除しました。これらの関数は実験段階で、実装品質が低く、正確性やパーサーに関するバグの原因となっていました。これらの名前を使用するクエリは、現在 `UNKNOWN_FUNCTION` を返します。[#108101](https://github.com/ClickHouse/ClickHouse/pull/108101) ([groeneai](https://github.com/groeneai))。

<h2 id="new-features">
  新機能
</h2>

<h3 id="functions">
  関数
</h3>

* `prometheusQuery` および `prometheusQueryRange` テーブル関数で、PromQL の `histogram_quantile` 関数をサポートしました。これにより、`le` ラベルで識別される従来の Prometheus ヒストグラムのバケットに対して分位点を計算できます。 [#103477](https://github.com/ClickHouse/ClickHouse/pull/103477) ([Yasumoto](https://github.com/Yasumoto)).
* 中心ベース、完全包含、重複の包含モードをサポートする `h3PolygonToCellsWithContainment` 関数を追加しました。 [#104455](https://github.com/ClickHouse/ClickHouse/pull/104455) ([yousefQadry](https://github.com/yousefQadry)).
* `formatReadableSize`、`formatReadableDecimalSize`、`formatReadableQuantity` 関数で、任意の精度引数を指定できるようになりました。これにより小数点以下の桁数を制御できます。デフォルトは 2 で、従来の動作を維持します。 [#104648](https://github.com/ClickHouse/ClickHouse/pull/104648) ([antoniofilipovic](https://github.com/antoniofilipovic)).
* `argMin` および `argMax` の集約関数の別名として、`min_by` と `max_by` を追加しました。 [#105712](https://github.com/ClickHouse/ClickHouse/pull/105712) ([itsjoeoui](https://github.com/itsjoeoui)).

<h3 id="sql-and-query-features">
  SQL とクエリ機能
</h3>

* `formatReadableTimeDelta` が、`Month` および `Year` 以外の型の `INTERVAL` 式を入力として受け付けるようになりました。[#64315](https://github.com/ClickHouse/ClickHouse/pull/64315) ([Beetelbrox](https://github.com/Beetelbrox)).
* PNG 出力フォーマットのサポートを追加し、クエリ結果を PNG 画像として直接レンダリングできるようになりました。[#74691](https://github.com/ClickHouse/ClickHouse/pull/74691) ([m7kss1](https://github.com/m7kss1)).
* ワークロード向けのメモリ予約機能を導入しました。[ワークロードスケジューリング](https://clickhouse.com/docs/operations/workload-scheduling)のドキュメントを参照してください。[#82414](https://github.com/ClickHouse/ClickHouse/pull/82414) ([serxa](https://github.com/serxa)).
* `IP_ADDRESS` または `FORWARDED_IP_ADDRESS` をキーとするクォータ用に、`IPV4_PREFIX_BITS` および `IPV6_PREFIX_BITS` オプションを追加しました。これにより、クォータ制限を個々の完全な IP アドレスに適用する代わりに、IP サブネット単位で共有できます。[#89270](https://github.com/ClickHouse/ClickHouse/pull/89270) ([adityachopra29](https://github.com/adityachopra29)).
* `ALTER TABLE` クエリに `ADD ENUM VALUES` を実装し、既存のすべての Enum 値を再指定せずに、既存の Enum 型へ新しい値を追加できるようにしました。[#93830](https://github.com/ClickHouse/ClickHouse/pull/93830) ([ilejn](https://github.com/ilejn)).
* 読み取り用の `GeoJSON` 入力フォーマットを追加しました。[#98124](https://github.com/ClickHouse/ClickHouse/pull/98124) ([mneedham](https://github.com/mneedham)).
* トークン化後のトークンを変換するポストプロセッサをテキスト索引に追加しました。[#98939](https://github.com/ClickHouse/ClickHouse/pull/98939) ([Ergus](https://github.com/Ergus)).
* ClickHouse Keeper の有効期限 (TTL) ノードに対するオプトインサポートを追加しました。TTL ノードは設定された存続期間の経過後に自動的に期限切れとなり、子ノードを持つことはできません。[#100397](https://github.com/ClickHouse/ClickHouse/pull/100397) ([scanhex12](https://github.com/scanhex12)).
* 完全一致の `hasPhrase` 検索をサポートするため、テキスト索引にトークン位置の保存を追加しました。`support_phrase_search` 索引引数と `allow_experimental_text_index_phrase_search` `MergeTree` 設定を有効にしてください。[#103172](https://github.com/ClickHouse/ClickHouse/pull/103172) ([ahmadov](https://github.com/ahmadov)).
* 関数 `arrayTopK` と `arrayBottomK` を追加しました。- `arrayTopK(k, array)` は K 個の最大要素を降順で返します - `arrayBottomK(k, array)` は K 個の最小要素を昇順で返します。[#104563](https://github.com/ClickHouse/ClickHouse/pull/104563) ([vitlibar](https://github.com/vitlibar)).
* `* LIKE '<pattern>'` および `* ILIKE '<pattern>'` を使用して、名前パターンでカラムを選択できるようになりました。`table.* LIKE '<pattern>'` や `table.* ILIKE '<pattern>'` などの修飾形式にも対応しています。`LIKE` はカラム名を大文字・小文字を区別して照合し、`ILIKE` は区別せずに照合します。[#104569](https://github.com/ClickHouse/ClickHouse/pull/104569) ([niyue](https://github.com/niyue)).
* 一連のスナップショット読み取りを使用する `MergeTree` テーブル向けの継続クエリを追加しました。[#105114](https://github.com/ClickHouse/ClickHouse/pull/105114) ([Michicosun](https://github.com/Michicosun)).
* スキーマ進化のサポートを向上させるため、`RowBinaryWithNamesAndTypesAndDefaults` フォーマットを追加しました。[#105736](https://github.com/ClickHouse/ClickHouse/pull/105736) ([mzitnik](https://github.com/mzitnik)).
* SQL から直接 Mapbox Vector Tiles を提供するための関数を追加しました。`MVTEncodeGeom` はジオメトリを slippy-map タイルのピクセル空間に投影してクリップし、`MVTEncode` はグループ内の投影済みジオメトリを単一レイヤータイルのバイナリバイト列に集約します。`MVTBoundingBox` / `MVTBoundingBoxMercator` は、行をタイルに制限するためのタイルのバウンディングボックスを返します。Point、line、Polygon ジオメトリをサポートしています。PostGIS の別名である `ST_AsMVTGeom` および `ST_AsMVT` としても利用できます。[#106107](https://github.com/ClickHouse/ClickHouse/pull/106107) ([saarthak2002](https://github.com/saarthak2002)).
* `LOCALTIME` および `LOCALTIMESTAMP` (SQL 標準 / PostgreSQL 構文) を追加しました。`LOCALTIMESTAMP` は `now()` の別名で、`DateTime` を返します。`LOCALTIME` は現在の時刻を `Time` 値として返します。[#106139](https://github.com/ClickHouse/ClickHouse/pull/106139) ([thomas-cabral](https://github.com/thomas-cabral)).
* 新たに `hostname_longest_common_prefix` と `hostname_longest_common_suffix` の 2 つの `load_balancing` 戦略を追加しました。これらは、イニシエーターのホスト名と最長の共通プレフィックス (それぞれ接尾辞) を持つレプリカを優先します。既存の `nearest_hostname` および `hostname_levenshtein_distance` 戦略では誤ったレプリカが選択される、数値セグメントの長さが可変なホスト名のプレフィックスまたは接尾辞にデータセンターがエンコードされている場合に有用です。[#107360](https://github.com/ClickHouse/ClickHouse/pull/107360) ([den-crane](https://github.com/den-crane)).
* 新しい関数 `quantizeBFloat16ToInt8` および `dequantizeInt8ToBFloat16` を追加しました。これは、埋め込みの部分を 256 レベルのガウス Lloyd-Max 量子化器を使用して 8 ビットに圧縮するスカラー codec です。ビット切り捨てにより Int4/Int2/binary codes を抽出できます。[#108102](https://github.com/ClickHouse/ClickHouse/pull/108102) ([alexey-milovidov](https://github.com/alexey-milovidov)).

<h3 id="table-engines-and-storage">
  テーブルエンジンとストレージ
</h3>

* Azure Data Lake Storage Gen2 への書き込みをサポートしました。[#105406](https://github.com/ClickHouse/ClickHouse/pull/105406) ([scanhex12](https://github.com/scanhex12)) 。

<h3 id="settings-and-configuration">
  設定と構成
</h3>

* 浮動小数点数および `Decimal` 数値について、値が整数であってもテキストフォーマットでは常に小数点を出力する設定 `output_format_always_write_decimal_point_in_float_and_decimal` を追加しました。たとえば、`1` ではなく `1.` を出力します。デフォルトでは無効です。 [#62614](https://github.com/ClickHouse/ClickHouse/pull/62614) ([qoega](https://github.com/qoega)).
* 新しい不変の `MergeTree` 設定 `allow_tuple_element_aggregation` を追加しました。デフォルトでは無効です。有効にすると、`SummingMergeTree`、`AggregatingMergeTree`、`CoalescingMergeTree` は `Tuple` カラムを再帰的にフラット化し、マージ時に各リーフ要素を最上位カラムであるかのように個別に集約します。つまり、`SummingMergeTree` は合計し、`AggregatingMergeTree` は集約関数の状態をマージし、`CoalescingMergeTree` は最後の非 NULL 値を保持します。この設定はテーブル作成時に指定する必要があり、対応していないエンジンでは暗黙的に無視されます。 [#98039](https://github.com/ClickHouse/ClickHouse/pull/98039) ([JingYanchao](https://github.com/JingYanchao)).
* 浮動小数点数のテキスト出力における小数桁数を制御する設定 `output_format_float_precision` を追加しました。 [#99721](https://github.com/ClickHouse/ClickHouse/pull/99721) ([phulv94](https://github.com/phulv94)).
* MergeTree テーブル設定 `materialize_projections_on_insert` および `materialize_projections_on_merge` を追加しました。`materialize_projections_on_insert = 0` の場合、INSERT 時に projection パーツの構築をスキップするため、多数の projection を持つテーブルの INSERT スループットが向上します。`materialize_projections_on_merge = 1` の場合、すべてのソースパーツに存在しない projection をマージ時に再構築するため、INSERT 時ではなくマージ中に projection を構築できます。マージでは引き続き、同じ projection セットを共有するパーツのみが結合されます。 [#100993](https://github.com/ClickHouse/ClickHouse/pull/100993) ([cwurm](https://github.com/cwurm)).
* 新しい S3Queue 設定 `after_processing_move_preserve_path` を追加しました。`after_processing='move'` および `after_processing_move_prefix` とともに有効にすると、処理済みオブジェクトはファイル名だけにフラット化されるのではなく、宛先プレフィックス配下にソースパス全体を保持したまま移動されます。 [#105354](https://github.com/ClickHouse/ClickHouse/pull/105354) ([asya-ch](https://github.com/asya-ch)).
* 指定したプレフィックスに一致するすべてのパスを照合するための HTTP ハンドラー構成要素 `url_prefix` および `full_url_prefix` と、明示的な `url_regexp`、`full_url_regexp`、`headers_regexp` 要素を追加しました。従来の `<url>regex:...</url>` 形式も引き続きサポートされます。 [#107492](https://github.com/ClickHouse/ClickHouse/pull/107492) ([vitlibar](https://github.com/vitlibar)).

<h3 id="authentication">
  認証
</h3>

* S3 のロールベースアクセス向けに、任意の `external_id` 認証情報を追加しました。[#106941](https://github.com/ClickHouse/ClickHouse/pull/106941) ([eliangidoni](https://github.com/eliangidoni)) 。
* 証明書ベース認証のオブザーバビリティを向上させるため、TLS クライアント証明書の情報 (subject、シリアル番号、issuer、有効期間) を `system.session_log` テーブルに追加しました。[#107679](https://github.com/ClickHouse/ClickHouse/pull/107679) ([alexey-milovidov](https://github.com/alexey-milovidov)) 。

<h3 id="system-tables">
  システムテーブル
</h3>

* `system.iceberg_files` テーブルを追加しました。このテーブルでは、各テーブルの現在のスナップショットに含まれるデータファイルまたは削除ファイルごとに1行として、Iceberg テーブルのファイル単位のメタデータを参照できます。[#104415](https://github.com/ClickHouse/ClickHouse/pull/104415) ([asya-ch](https://github.com/asya-ch)).
* 仮想 (what-if) スキップ索引を追加しました。`CREATE HYPOTHETICAL INDEX ... ON t (expr) TYPE ...` を使用してセッションスコープの仮想スキップ索引を定義し、`EXPLAIN WHATIF SELECT ...` を使用して、マテリアライズせずにスキップ率とコストを見積もれます。定義済みの索引は、新しい `system.hypothetical_indexes` テーブルで確認できます。[#104608](https://github.com/ClickHouse/ClickHouse/pull/104608) ([yariks5s](https://github.com/yariks5s)).
* すべてのテーブルの CHECK および ASSUME 制約に関する情報 (制約名、種類、式を含む) を提供する `system.constraints` テーブルを追加しました。[#105337](https://github.com/ClickHouse/ClickHouse/pull/105337) ([PedroTadim](https://github.com/PedroTadim)).
* システムの共通コンポーネント (関数、テーブルエンジン、データ型、設定、フォーマットなど) の埋め込みリファレンスドキュメントを1つのテーブルに集約し、ドキュメントを Markdown としてレンダリングする新しいシステムテーブル `system.documentation` を追加しました。[#107463](https://github.com/ClickHouse/ClickHouse/pull/107463) ([alexey-milovidov](https://github.com/alexey-milovidov)).

<h2 id="experimental-features">
  実験的機能
</h2>

* inner join 向けの実験的な `dphyp` 結合順序変更アルゴリズムを `query_plan_optimize_join_order_algorithm` 設定の選択肢として追加しました。また、結合順序の探索に上限を設け、上限を超えた場合はチェーン内の次のアルゴリズムにフォールバックする `query_plan_optimize_join_order_max_searched_plans` 設定を追加しました。従来の上限なしの探索動作を維持するには、`0` に設定します。 [#98798](https://github.com/ClickHouse/ClickHouse/pull/98798) ([davenger](https://github.com/davenger)).
* テキスト索引に遅延ポスティングリスト適用モードを追加しました。`SET allow_experimental_text_index_lazy_apply = 1` および `SET text_index_posting_list_apply_mode = 'lazy'` で有効にすると、ポスティングリストは Roaring Bitmap として完全にマテリアライズされるのではなく、カーソルベースの方式で packed-block 粒度にオンデマンドでデコードされます。これにより、選択性の高いテキスト索引クエリのメモリ使用量と CPU 時間を削減できます。 [#100035](https://github.com/ClickHouse/ClickHouse/pull/100035) ([fastio](https://github.com/fastio)).
* オプションのプレフィックスを付けて、メイン HTTP ポートに prometheus ハンドラーをアタッチできるようにしました。 [#104975](https://github.com/ClickHouse/ClickHouse/pull/104975) ([JTCunning](https://github.com/JTCunning)).
* 小さなスキップ索引サブストリームをパーツごとに単一の `skp_idx.packed` アーカイブにまとめる実験的な MergeTree 設定 `packed_skip_index_max_bytes` を追加しました。これにより、テーブルに多数のスキップ索引が定義されている場合の inode 枯渇を抑えます。書き込み時にサブストリームごとに判定され、シリアライゼーション後のサイズがしきい値未満のサブストリームはアーカイブに格納され、それ以上のものはスタンドアロンの `skp_idx_<name>.idx2` / `.mrk2` レイアウトのままとなります。1 つのパーツ内でレイアウトを混在させることもできます。全文索引はサポートされず、常にファイル単位で保存されます。デフォルトは 0 (パッキング無効) です。 [#105321](https://github.com/ClickHouse/ClickHouse/pull/105321) ([Algunenano](https://github.com/Algunenano)).
* `ABI BUFFERED_V1` を使用する WebAssembly UDF の `Buffers` シリアライゼーションをサポートし、永続化される WASM UDF 関数設定として `webassembly_udf_enable_fuel` を追加しました。 [#105574](https://github.com/ClickHouse/ClickHouse/pull/105574) ([antonio2368](https://github.com/antonio2368)).
* マルチステージ分散クエリ実行: プランナーはクエリプランを scatter / broadcast / gather / shuffle exchange で接続されたステージに分割し、プランフラグメントをワーカーノードにディスパッチします。ステージ間のデータは TCP 経由でストリーミングされるか、共有オブジェクトストレージ内の一時ファイルを介して受け渡されます。この経路では、分散 shuffle、broadcast hash join、shuffle 集約、分散ソートがサポートされます。この機能は実験的で、デフォルトでは無効です。 [#106020](https://github.com/ClickHouse/ClickHouse/pull/106020) ([davenger](https://github.com/davenger)).
* 実験的な分散クエリプランエンジン (`make_distributed_plan`) では、ワーカーごとに異なるタスクディスパッチポートおよびストリーミング exchange ポートを使用できるようになりました。これは `<remote_servers>` 内でレプリカごとに `stateless_worker_port` および `streaming_exchange_port` を指定して設定します。未設定の場合は、従来のサーバーレベルのポート (`stateless_worker_client.port` および `distributed_query.streaming_exchange_port`) が使用されます。これにより、1 台のホストで複数のワーカーを実行できます。 [#107885](https://github.com/ClickHouse/ClickHouse/pull/107885) ([davenger](https://github.com/davenger)).

<h2 id="performance-improvements">
  パフォーマンス改善
</h2>

<h3 id="join-performance">
  JOIN のパフォーマンス
</h3>

* JOIN の後に選択性の高い LIMIT、TopN、または別の JOIN が続く場合、selector 索引とレプリケーション索引を遅延適用するようにしました。遅延 selector 索引を有効にするために必要な payload カラム数は、設定 `query_plan_min_columns_for_join_lazy_indexing` で制御します (0 は最適化が無効であることを意味します) 。この最適化を適用する LIMIT は、設定 `query_plan_max_limit_for_join_lazy_indexing` で制御します。 [#98883](https://github.com/ClickHouse/ClickHouse/pull/98883) ([m-selmi](https://github.com/m-selmi)).
* `ASOF JOIN` で `parallel_hash` 結合アルゴリズムを使用できるようにし、異なる等価キー値ごとにビルド処理を並列化しました。以前は、ASOF は無条件に `parallel_hash` の対象外でした。 [#105375](https://github.com/ClickHouse/ClickHouse/pull/105375) ([gregakinman](https://github.com/gregakinman)).
* ハッシュ結合の FixedHashMap を、probe 側の JOIN ランタイムフィルタとして共有します。ビルド側のハッシュテーブルが FixedHashMap である場合、または FixedHashMap に変換可能な場合は、ランタイムフィルタとしてパブリッシュされ、`BuildRuntimeFilterStep` が通常設定する `Set`/`BloomFilter` を置き換えます。新しい設定 `enable_join_runtime_filter_shared_fixed_hash_table` (デフォルトは `true`) で制御します。 [#105640](https://github.com/ClickHouse/ClickHouse/pull/105640) ([wudidapaopao](https://github.com/wudidapaopao)).
* DP JOIN の結合順序変更が、並列レプリカでも許可されるようになりました。 [#105889](https://github.com/ClickHouse/ClickHouse/pull/105889) ([nickitat](https://github.com/nickitat)).
* JOIN でランタイムフィルタ (デフォルトで有効な `enable_join_runtime_filters`) を使用する場合のクエリプランを改善しました。結合順序変更のコストモデルが右部分木の `WindowTransform` (およびその他の行を保持するプランステップ) を考慮できるようになり、統計情報なしにフォールバックする代わりに、基となる行数とカラムごとの NDV を使用します。 [#107229](https://github.com/ClickHouse/ClickHouse/pull/107229) ([UnamedRus](https://github.com/UnamedRus)).

<h3 id="query-optimization">
  クエリ最適化
</h3>

* 希少なトークンの処理を最適化し、マルチトークン検索におけるテキスト索引解析のパフォーマンスを改善しました。[#98226](https://github.com/ClickHouse/ClickHouse/pull/98226) ([CurtizJ](https://github.com/CurtizJ)).
* OpenSSL 3.x で行ごとに暗黙的に行われる OpenSSL プロバイダーのルックアップを回避し、`encrypt`、`decrypt`、`halfMD5` 関数のパフォーマンスを改善しました。[#99105](https://github.com/ClickHouse/ClickHouse/pull/99105) ([thevar1able](https://github.com/thevar1able)).
* 一時的なプロジェクションパーツ数とマージのオーバーヘッドを削減するため、`MATERIALIZE PROJECTION` 時に `projection.calculate()` の前でソースブロックをまとめます。5,000 万行のテーブルで約 3.4 倍高速化されます。[#100047](https://github.com/ClickHouse/ClickHouse/pull/100047) ([amosbird](https://github.com/amosbird)).
* Approximate Runtime Filters および Bloom Filter Indices のパフォーマンスを改善しました。[#100201](https://github.com/ClickHouse/ClickHouse/pull/100201) ([cv4g](https://github.com/cv4g)).
* `LIMIT BY` のカラムが `ORDER BY` のプレフィックスである場合、`Sort` 中に各並列ソート済みストリーム内で `LIMIT BY` を実行することで、`ORDER BY ... LIMIT BY` クエリを高速化します。これにより、最終的なソートマージおよび後続のパイプラインステップを通過する行数が削減されます。この最適化は、新しい設定 `query_plan_push_limit_by_into_sort` (デフォルトで有効) で制御されます。[#104000](https://github.com/ClickHouse/ClickHouse/pull/104000) ([nihalzp](https://github.com/nihalzp)).
* 単純な SELECT クエリのクエリごとのオーバーヘッド (パース、解析、プランニング) を削減しました。たとえば、単一の接続から実行する `SELECT count() FROM hits` は約 50% 高速化されます。[#104513](https://github.com/ClickHouse/ClickHouse/pull/104513) ([Algunenano](https://github.com/Algunenano)).
* 範囲チェック時に `rb_max` を繰り返し呼び出すことを回避し、`UInt64` 以外の `groupBitmap` 状態に対する `bitmapContains` のパフォーマンスを改善しました。[#105960](https://github.com/ClickHouse/ClickHouse/pull/105960) ([niyue](https://github.com/niyue)).
* `bloom_filter` 索引を持つ `LowCardinality` カラムの挿入パフォーマンスを改善しました。[#106410](https://github.com/ClickHouse/ClickHouse/pull/106410) ([EmeraldShift](https://github.com/EmeraldShift)).
* `QBit` データ型に対する `L2DistanceTransposed` および `cosineDistanceTransposed` 関数のパフォーマンスを改善しました。[#106701](https://github.com/ClickHouse/ClickHouse/pull/106701) ([rienath](https://github.com/rienath)).
* 多数のカラムを持つテーブルに対するクエリのクエリ解析パフォーマンスを改善しました。不要な場合は、ソーステーブル式全体を含むカラムノードハッシュを計算しません。約 1,200 カラムのテーブルに対するネストされた `SELECT *` サブクエリの解析は、現在約 50 倍高速です。[#106957](https://github.com/ClickHouse/ClickHouse/pull/106957) ([novikd](https://github.com/novikd)).
* BoringSSL から OpenSSL 3.x への移行 (24.4) で失われたパフォーマンスを回復し、`encrypt`、`decrypt`、`tryDecrypt`、`aes_encrypt_mysql`、`aes_decrypt_mysql` 関数のパフォーマンスを最大で 10 倍改善しました。[#107339](https://github.com/ClickHouse/ClickHouse/pull/107339) ([thevar1able](https://github.com/thevar1able)).
* 不要な文字列のマテリアライズを回避し、`Array(LowCardinality(String))` に対する `arrayElement` と、キーまたは値が `LowCardinality(String)` のマップに対する map LIKE 関数の実行を改善しました。[#107450](https://github.com/ClickHouse/ClickHouse/pull/107450) ([EmeraldShift](https://github.com/EmeraldShift)).
* `DateTime64` カラムをフィルタリングするクエリの CPU 使用率を削減し、スキップ索引の評価パフォーマンスを改善しました。[#107707](https://github.com/ClickHouse/ClickHouse/pull/107707) ([shankar-iyer](https://github.com/shankar-iyer)).
* `positionCaseInsensitiveUTF8`、`ILIKE`、`multiSearchAnyCaseInsensitiveUTF8` を含む、大文字と小文字を区別しない部分文字列検索のパフォーマンスを改善しました。[#107882](https://github.com/ClickHouse/ClickHouse/pull/107882) ([Algunenano](https://github.com/Algunenano)) 。
* 予測テーブルで `VectorWithMemoryTracking` を使用するようになった際に発生した、ARM 上の `FPC` 浮動小数点 codec のスループット約 16% のリグレッションを修正しました。[#108182](https://github.com/ClickHouse/ClickHouse/pull/108182) ([groeneai](https://github.com/groeneai)) 。
* 単一の論理削除 `DELETE` によってテーブル全体の query condition cache が無効化されるパフォーマンスリグレッションを修正しました。論理削除の対象になったことのあるテーブルに対して選択性の高いクエリを繰り返し実行すると、granule の pruning が行われなくなり、すべての mark を読み取るようになっていました。[#112947](https://github.com/ClickHouse/ClickHouse/pull/112947) ([fm4v](https://github.com/fm4v)) 。
* カラム STATISTICS から `col IN (...)` の選択性を推定するコストに上限を設けました。これにより、単一クエリのプランニングに数百ミリ秒が追加される可能性がありました。推定器は、選択性の値を 1 つ得るためだけに Set を補完する `col IN (subquery)` 内のサブクエリを実行しなくなりました。代わりに、未構築の Set はスキップされます。新しい `statistics_max_set_size_for_exact_selectivity_estimation` 設定 (デフォルトは 10000) を超える Set では、Set のサイズとその境界 range から選択性が導出されるようになりました。[#114389](https://github.com/ClickHouse/ClickHouse/pull/114389) ([nickitat](https://github.com/nickitat)) 。

<h3 id="function-and-aggregation-performance">
  関数および集約のパフォーマンス
</h3>

* 長い主キーおよび高カーディナリティの主キーに対する主キー索引解析を最適化しました。長い主キーでは、索引解析の実行時間は主キーの長さではなく、主にクエリのフィルタ (実際に使用するキーカラム) の複雑さに依存するようになりました。そのため、ソートキーを拡張しても、少数のカラムのみでフィルタするクエリの索引解析に対する追加オーバーヘッドはごくわずかです。高カーディナリティの主キーでは、ClickHouse はキーカラムの選択的なプレフィックスのみをメモリに保持し、末尾のカラムは読み込みません。索引解析はキー全体ではなく、このメモリ内のプレフィックスのみを対象に行われるようになりました。この最適化はデフォルトで有効で、新しい設定 `use_lightweight_primary_key_index_analysis` で無効にできます。 [#91836](https://github.com/ClickHouse/ClickHouse/pull/91836) ([nihalzp](https://github.com/nihalzp)).
* 大きな集約状態 (例: `groupArray`) を持つ部分的な二段階集約結果のマージ時に、ピークメモリ使用量を削減しました。マージ完了まで各バケットの元の状態をすべて保持する代わりに、マージ中に段階的に解放します。 [#102330](https://github.com/ClickHouse/ClickHouse/pull/102330) ([yurifedoseev](https://github.com/yurifedoseev)).
* 高カーディナリティかつ均等に分散されたキー向けに、新しい `GROUP BY` 最適化を追加しました。グループ化キーのハッシュに基づいて行をスレッド間に分散するため、各スレッドはマージフェーズなしで、重複しないキーのサブセットを集約できます。有効にするには `enable_sharding_aggregator = 1` を設定します。 [#104233](https://github.com/ClickHouse/ClickHouse/pull/104233) ([nihalzp](https://github.com/nihalzp)).
* すべてのストリームを1つにマージしてから制限を適用する代わりに、各パーティションのストリーム内で `LIMIT BY` を並列実行することで、パーティション化された `MergeTree` テーブルの `LIMIT BY` クエリを高速化しました。これは、パーティション式が `LIMIT BY` カラムの決定論的関数であり、`LIMIT BY` のグループが2つのパーティションにまたがらない場合に適用されます。新しい設定 `allow_limit_by_partitions_independently` (デフォルトで有効) で制御されます。 [#105126](https://github.com/ClickHouse/ClickHouse/pull/105126) ([nihalzp](https://github.com/nihalzp)).
* `<cols>` がテーブルのソートキーのプレフィックスである場合、または `WHERE col = const` によって先頭のカラムが固定されてプレフィックスとなる場合に、`SELECT ... LIMIT N BY <cols>` クエリを高速化しました。これを有効にすると、`MergeTree` は主キー順にデータを読み取り、`LIMIT BY` はまずソート済みストリームごとに O(1) のメモリでストリーミングモードのフィルタリングを行い、データの大部分を除外します。続いて、絞り込まれたデータに対して通常の `LIMIT BY` を実行し、最終結果を取得します。新しい設定 `optimize_limit_by_in_order` (デフォルトで有効) で制御されます。 [#105135](https://github.com/ClickHouse/ClickHouse/pull/105135) ([nihalzp](https://github.com/nihalzp)).
* 冗長なキー式を除去することで `LIMIT BY` クエリを高速化しました。他のキーの決定論的関数であるキーは削除され (例: `LIMIT 5 BY x, f(x)` は `LIMIT 5 BY x` になります) 、キーの単射関数はその引数に置き換えられます (例: `LIMIT 5 BY toString(x)` は `LIMIT 5 BY x` になります) 。これにより、行ごとに評価する式の数が減り、評価コストも低減します。新しい設定 `optimize_limit_by_function_keys` および `optimize_injective_functions_in_limit_by` (どちらもデフォルトで有効) で制御されます。 [#106818](https://github.com/ClickHouse/ClickHouse/pull/106818) ([nihalzp](https://github.com/nihalzp)).
* 関数解決キャッシュから冗長なクエリツリーのハッシュを削除し、多数の関数呼び出しや深くネストした関数呼び出しを含むクエリの解析を高速化しました。 [#107516](https://github.com/ClickHouse/ClickHouse/pull/107516) ([novikd](https://github.com/novikd)).
* 再帰 CTE の結果処理を並列化しました。大規模な `WITH RECURSIVE` の結果に対する `GROUP BY` やその他の操作は、単一スレッドに制限されなくなりました。 [#107694](https://github.com/ClickHouse/ClickHouse/pull/107694) ([alexey-milovidov](https://github.com/alexey-milovidov)).

<h3 id="storage-and-io-performance">
  ストレージおよび I/O パフォーマンス
</h3>

* 同じエンドポイントとバケットを使用する S3 クライアント間で cache を共有し、重複するリージョン検出を回避します。[#96802](https://github.com/ClickHouse/ClickHouse/pull/96802) ([zvonand](https://github.com/zvonand)).
* blob を並列にコピーすることで、オブジェクトストレージのコピー性能を改善しました。[#105089](https://github.com/ClickHouse/ClickHouse/pull/105089) ([asya-ch](https://github.com/asya-ch)).
* file や s3 などのファイル系テーブル関数で One input format を使用する際に、ファイル内容を読み取らないようにしました。[#105157](https://github.com/ClickHouse/ClickHouse/pull/105157) ([niyue](https://github.com/niyue)).
* `MergeTree` の主キーおよびスキップ索引で、`ifNull(key = 0, 0)` や `coalesce(key = 0, 0)` のように `ifNull` または `coalesce` で条件をラップしたフィルタに対して、グラニュールを枝刈りできるようになりました。このような述語は、`NULL` になる可能性のある比較を確定的なブール値に変換するためにクエリジェネレーターが生成することが多く、以前は索引解析で認識できなかったため、グラニュールをスキップできませんでした。これにより、既存の `allow_key_condition_coalesce_rewrite` 設定 (デフォルトで有効) が拡張されます。[#106272](https://github.com/ClickHouse/ClickHouse/pull/106272) ([andyzzhao](https://github.com/andyzzhao)).
* `BYTE_STREAM_SPLIT` でエンコードされた Parquet の `FLOAT` および `DOUBLE` カラムのデコード性能を改善しました。[#106376](https://github.com/ClickHouse/ClickHouse/pull/106376) ([Algunenano](https://github.com/Algunenano)).
* 多数のアクセスエンティティ (行ポリシー、ロール、quota、設定プロファイル) が同時に変更された場合に、レプリケートされたアクセスストレージでログインやクエリ開始が長時間停止する問題を修正しました。エンティティごとの cache は、変更されたエンティティごとではなく通知バッチごとに一度だけ再計算されるようになり、アクセスロックを数分間保持する可能性があった二次的な処理を排除しました。[#107672](https://github.com/ClickHouse/ClickHouse/pull/107672) ([azat](https://github.com/azat)).
* `s3` などのテーブル関数を介してオブジェクトストレージから多数の小さなファイルを読み取る際に、プリフェッチが停止して同期読み取りにフォールバックし、多数の小さなファイルに対するシングルスレッドまたは低 Concurrency の読み取りが大幅に遅くなるパフォーマンスリグレッションを修正しました。[#108872](https://github.com/ClickHouse/ClickHouse/pull/108872) ([fm4v](https://github.com/fm4v)).
* オブジェクトストレージの読み取りがファイルシステムキャッシュ (`filesystem_cache_name`) を経由する場合に、初回の小さなオブジェクトのプリフェッチを有効にしました。以前は、`S3Queue` の取り込みなどで多数の小さなファイルを読み取る際、ファイルシステムキャッシュが有効でも同期的なままでレイテンシーの影響を受けていました。[#109478](https://github.com/ClickHouse/ClickHouse/pull/109478) ([fm4v](https://github.com/fm4v)).
* オンディスクサイズを考慮することで、`Map` サブカラムに対する `PREWHERE` 最適化を改善しました。[#110623](https://github.com/ClickHouse/ClickHouse/pull/110623) ([Avogar](https://github.com/Avogar)).
* `ReplacingMergeTree` では、`ORDER BY` がなくても、`FINAL`、フィルタ、小さな `LIMIT` を含むクエリに遅延マテリアライゼーションが適用されるようになりました。[#110722](https://github.com/ClickHouse/ClickHouse/pull/110722) ([KochetovNicolai](https://github.com/KochetovNicolai)).
* 多数のパーティションにまたがる非同期挿入フラッシュ時の重複排除にかかる CPU 時間を削減しました。[#111150](https://github.com/ClickHouse/ClickHouse/pull/111150) ([valerypetrov](https://github.com/valerypetrov)).
* テーブルに `LowCardinality` カラムがある場合に、同じ `MergeTree` パーツに対して多数の独立した小規模読み取りを実行するクエリで発生する CPU リグレッションを修正しました。パーツに単一の共有 Dictionary があるかを判定するチェックは、以前は各読み取りタスクでパーツ全体のすべての mark を走査していましたが、現在は二分探索により同一 mark の各連続範囲を見つけます。`index_granularity` が小さいテーブルに対するこの形式のクエリは、26.6 以降、最大で数倍遅くなっていました。[#116134](https://github.com/ClickHouse/ClickHouse/pull/116134) ([groeneai](https://github.com/groeneai)).

<h3 id="memory-optimization">
  メモリ最適化
</h3>

* `Enum`カラムを含むテーブルにおいて、`Enum`型のメタデータに使用するメモリを最大10分の1に削減しました。値から名前へのルックアップは同等以上の速度を維持する一方、パースおよびデシリアライゼーション時の名前から値へのルックアップは遅くなる場合があります。 [#95668](https://github.com/ClickHouse/ClickHouse/pull/95668) ([qoega](https://github.com/qoega)).
* バックアップエントリの書き込み時にファイル情報の内部リストをコピーしないようにすることで、`BACKUP`のピークメモリ使用量を削減しました (数百万個のファイルを含むバックアップで特に効果があります) 。 [#111162](https://github.com/ClickHouse/ClickHouse/pull/111162) ([jkartseva](https://github.com/jkartseva)).

<h2 id="improvements">
  改善
</h2>

<h3 id="query-and-sql-improvements">
  クエリと SQL
</h3>

* クエリプランから未使用のカラムを削除する際、カラム名ではなく位置でカラムを識別するようにしました。これにより、カラム名が重複している場合でも未使用カラムを削除できます。 [#100586](https://github.com/ClickHouse/ClickHouse/pull/100586) ([antaljanosbenjamin](https://github.com/antaljanosbenjamin)).
* PostgreSQL / SQL 標準との互換性のため、`currentUser()` の大文字・小文字を区別しないエイリアスとして `SESSION_USER` を追加しました。 [#106081](https://github.com/ClickHouse/ClickHouse/pull/106081) ([takumihara](https://github.com/takumihara)).
* PostgreSQL ワイヤプロトコル経由で実行されるクエリのキャンセル遅延を短縮しました。KILL QUERY は、chunk 全体がクライアントに送信されるまで待つのではなく、単一の chunk 内で出力のシリアライゼーションを中断するようになりました。 [#106535](https://github.com/ClickHouse/ClickHouse/pull/106535) ([rvasin](https://github.com/rvasin)).
* 定数引数を持つ lambda (例: `arrayMap(t -> t.2, ...)`) を含む、`serialize_query_plan = 1` を指定した分散クエリで発生する `ILLEGAL_TYPE_OF_ARGUMENT` エラーを修正しました。`ActionsDAG` の `INPUT` ノードにある定数カラムが、クエリプランのシリアライゼーション中も保持されるようになりました。 [#107124](https://github.com/ClickHouse/ClickHouse/pull/107124) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* MySQL ワイヤプロトコル経由で実行されるクエリのキャンセル遅延を短縮しました。KILL QUERY は、chunk 全体がクライアントに送信されるまで待つのではなく、単一の chunk 内で出力のシリアライゼーションを中断するようになりました。 [#107228](https://github.com/ClickHouse/ClickHouse/pull/107228) ([rvasin](https://github.com/rvasin)).

<h3 id="functions-improvements">
  関数
</h3>

* `EXPLAIN SYNTAX` の explain 出力で、演算子が一貫して関数呼び出し形式でフォーマットされるようになりました (例: `1 + 2` ではなく `plus(1, 2)`) 。[#94681](https://github.com/ClickHouse/ClickHouse/pull/94681) ([1abdelhalim](https://github.com/1abdelhalim)).
* PostgreSQL 形式の `expr OP SOME(array)` / `expr OP ALL(array)` (右辺がサブクエリではない形式) がサポートされるようになりました。`=`/`<>` の場合は `has` / `NOT has` に、それ以外の比較演算子の場合は `arrayExists` / `arrayAll` のラムダ式に書き換えられます。`any` は集約関数でもあるため、配列形式では `ANY` は使用できません。代わりに `SOME` を使用してください。`ANY`/`SOME`/`ALL` のサブクエリ形式は、引き続き `IN` / `NOT IN` に変換されます。[#105129](https://github.com/ClickHouse/ClickHouse/pull/105129) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* テキスト索引で関数 `multiSearchAny`、`multiSearchAnyUTF8`、`multiMatchAny` がサポートされるようになりました。また、関数 `match` のテキスト索引解析が改善され、選択グループを含むパターンでより多くのグラニュールをスキップできるようになりました。[#106279](https://github.com/ClickHouse/ClickHouse/pull/106279) ([CurtizJ](https://github.com/CurtizJ)).
* 関数 `h3PolygonToCells` は、`MultiPolygon` 内のすべての Polygon に対して配列サイズの上限を適用し、基盤となる H3 ライブラリの戻りコードを検証するようになりました。また、空の結果を暗黙的に返す代わりに、`MultiLineString` 引数を拒否するようになりました。[#106399](https://github.com/ClickHouse/ClickHouse/pull/106399) ([Algunenano](https://github.com/Algunenano)).
* 集約関数 `contingency`、`cramersV`、`cramersVBiasCorrected`、`theilsU` の状態をデシリアライズする際に、保存されたカウントが整合性のある分割表を構成していることを検証し、そうでない場合は `CORRUPTED_DATA` 例外をスローするようになりました。[#107185](https://github.com/ClickHouse/ClickHouse/pull/107185) ([nihalzp](https://github.com/nihalzp)).
* クエリプランオプティマイザのカーディナリティ推定を改善しました。決定論的な単一引数関数 (例: `toYear(date)`) によって生成されるカラムは、統計情報がないままになるのではなく、引数の異なる値の数を上限として継承するようになりました。これにより、より正確な結合順序の変更が可能になります。[#107757](https://github.com/ClickHouse/ClickHouse/pull/107757) ([davenger](https://github.com/davenger)).

<h3 id="table-engines-and-storage-improvements">
  テーブルエンジンとストレージ
</h3>

* パーティションの割り当て後も短いポーリング間隔を使い続けていた Kafka テーブルエンジンのコンシューマーを修正し、設定された `kafka_poll_timeout_ms` に戻るようにしました。これにより、リバランス後の過剰な空ポーリング、小さなパーツの挿入、追加のマージオーバーヘッドを回避できます。 [#100431](https://github.com/ClickHouse/ClickHouse/pull/100431) ([sugaf1204](https://github.com/sugaf1204)).
* `Iceberg` や `DeltaLake` などのデータレイクテーブルエンジンで、cache でラップされた S3 および Azure ディスクを使用できるようになりました。これにより、繰り返しの読み取りでファイルシステムキャッシュを利用できます。 [#102017](https://github.com/ClickHouse/ClickHouse/pull/102017) ([RinChanNOWWW](https://github.com/RinChanNOWWW)).
* 初回の PREWHERE 選択後に導入されたフィルタ (predicate pushdown、ランタイムフィルタ、または明示的な PREWHERE とプランナーが設定した WHERE) を、MergeTree 読み取りの上に別個の Filter ステップとして残すのではなく、2 回目のオプティマイザーパスで既存の PREWHERE にマージできるようにしました。 [#105445](https://github.com/ClickHouse/ClickHouse/pull/105445) ([yariks5s](https://github.com/yariks5s)).
* `wait_for_part_commit_in_dependent_materialized_views` 設定を追加しました。有効にすると、ソースを再度結合する連鎖的な materialized view から、現在挿入中の行を参照できます。 [#105943](https://github.com/ClickHouse/ClickHouse/pull/105943) ([ahmadov](https://github.com/ahmadov)).
* タイムゾーンオフセットの時および分の部分を取得する PostgreSQL 互換の `EXTRACT(TIMEZONE_HOUR FROM dt)` と `EXTRACT(TIMEZONE_MINUTE FROM dt)`、およびインターバルから値を抽出する `EXTRACT(<unit> FROM INTERVAL n <unit>)` / `date_part('<unit>', INTERVAL n <unit>)` を追加しました。 [#106227](https://github.com/ClickHouse/ClickHouse/pull/106227) ([vinayakj592](https://github.com/vinayakj592)).
* `SYSTEM RESTART DISK <name>` を実装しました。ディスクのインメモリメタデータを再読み込みし、そのディスク上にある readonly-replica テーブルのデータパーツを再スキャンします。これにより、共有 `plain_rewritable` ストレージ上のテーブルの readonly レプリカは、`refresh_parts_interval` を待ったりサーバーを再起動したりせずに、別のサーバーによって書き込まれたデータをオンデマンドで確認できます。 [#106645](https://github.com/ClickHouse/ClickHouse/pull/106645) ([jrdi](https://github.com/jrdi)).
* JSON advanced shared data に対する不要なマークファイルの読み込みをスキップします。 [#107051](https://github.com/ClickHouse/ClickHouse/pull/107051) ([Avogar](https://github.com/Avogar)).
* `MaterializedPostgreSQL` データベースエンジン用に、作成時に指定する `materialized_postgresql_use_extended_date_and_time_types` 設定を追加しました。デフォルトでは (有効) 、PostgreSQL の `date`/`timestamp` カラムは `Date32`/`DateTime64` として推論されます。`CREATE DATABASE` 時にこれを `0` に設定すると、より狭い `Date`/`DateTime` 型が推論されます。この設定は `MaterializedPostgreSQL` テーブルエンジンには該当しません。 [#107428](https://github.com/ClickHouse/ClickHouse/pull/107428) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* MergeTree で、ブロックごとに異なる codec を使用する圧縮ストリームを読み取れるようになりました。これは Adaptive Codec Selection の読み取り側の前提条件です。 [#108592](https://github.com/ClickHouse/ClickHouse/pull/108592) ([rienath](https://github.com/rienath)).
* `transform_null_in = 1` で `IN` セットに `NULL` 値が含まれない場合、直接索引付けされたカラムに対する `IN` predicates で `bloom_filter` スキップ索引を使用します。以前はこのようなクエリでは索引がスキップされ、フルスキャンが必要でした。 [#111329](https://github.com/ClickHouse/ClickHouse/pull/111329) ([groeneai](https://github.com/groeneai)).

<h3 id="s3-and-object-storage-improvements">
  S3 とオブジェクトストレージ
</h3>

* 例外を送出しない `isGranted` 経路 (`checkAccessWithFilter`) を含め、許可されたすべてのアクセスチェックで使用された権限を `system.query_log.used_privileges` に記録するようになりました。以前は、例外を送出するエントリポイント (`checkAccess` / `checkGrantOption`) でチェックされた権限のみが記録されていたため、`file` / `s3` / `azure` / `url` テーブル関数を使用する `DESCRIBE`、`CREATE TABLE AS` などのクエリでは、`READ ON FILE` / `READ ON S3` / `READ ON AZURE` / `READ ON URL` が監査ログに記録されませんでした。アクセス制御の動作に変更はありません。 [#104693](https://github.com/ClickHouse/ClickHouse/pull/104693) ([alexbakharew](https://github.com/alexbakharew)).
* 最終的な S3 マルチパートアップロードリクエストをタスクトラッカー経由で非同期に完了するようにし、finalize で直列に実行するのではなく、最後のパートのアップロードと並行して実行できるようにしました。 [#105487](https://github.com/ClickHouse/ClickHouse/pull/105487) ([asya-ch](https://github.com/asya-ch)).
* `S3Queue` および `AzureQueue` の `persistent_processing_node_ttl_seconds` 設定のデフォルト値を 1 時間から 6 時間に引き上げ、長時間実行される処理や再起動後の処理でバケットのロックが早期に失われることを防止しました。 [#106838](https://github.com/ClickHouse/ClickHouse/pull/106838) ([kssenii](https://github.com/kssenii)).
* `s3_storage_class_name` 設定で、`STANDARD` および `INTELLIGENT_TIERING` に加え、`REDUCED_REDUNDANCY`、`STANDARD_IA`、`ONEZONE_IA`、`GLACIER_IR`、`EXPRESS_ONEZONE` の値をサポートしました。 [#107251](https://github.com/ClickHouse/ClickHouse/pull/107251) ([adityaksolves](https://github.com/adityaksolves)).
* オブジェクトストレージテーブル (例: `S3`) の Hive パーティション化サンプルパスは、`CREATE`/`ATTACH` 時ではなく、テーブルの初回使用時に解決されるようになりました。これにより、到達不能なエンドポイントがテーブルの作成やサーバーの起動を妨げることがなくなります。 [#111842](https://github.com/ClickHouse/ClickHouse/pull/111842) ([evillique](https://github.com/evillique)).

<h3 id="settings-and-configuration-improvements">
  設定と構成
</h3>

* 互換性設定 `file_like_engine_default_partition_strategy` で、Hiveパーティション方式がデフォルトになりました。[#86746](https://github.com/ClickHouse/ClickHouse/pull/86746) ([kssenii](https://github.com/kssenii)).
* テキスト索引のデフォルトパラメータを制御する4つの新しいMergeTreeテーブル設定 `text_index_dictionary_block_size`、`text_index_dictionary_block_frontcoding_compression`、`text_index_posting_list_block_size`、`text_index_posting_list_codec` を追加しました。これらの設定により、各索引定義でパラメータを指定することなく、テーブルレベルでテキスト索引の動作を調整できます。索引ごとに明示的に指定した引数は引き続き優先されます。[#100626](https://github.com/ClickHouse/ClickHouse/pull/100626) ([CurtizJ](https://github.com/CurtizJ)).
* `output_format_pretty_grid_charset` が `UTF-8` の場合に、表形式の `Pretty` フォーマットのパディングを `U+00A0` NO-BREAK SPACE で描画する設定 `output_format_pretty_use_nbsp_for_padding` を追加しました。これにより、通常のスペースを折りたたむツールでも、コピーした `Pretty` 出力の表の配置を維持できます。この設定はデフォルトで無効であり、`ASCII` 文字セットの出力では通常のスペースが使用されます。[#103559](https://github.com/ClickHouse/ClickHouse/pull/103559) ([ashrithb](https://github.com/ashrithb)).
* `analyzer_compatibility_allow_non_aggregate_in_having` 設定で旧アナライザとの互換性をサポートしました。有効にすると、非集約条件はHAVINGからWHEREへ移動されます。[#104232](https://github.com/ClickHouse/ClickHouse/pull/104232) ([novikd](https://github.com/novikd)).
* ターゲットテーブルに `table_readonly = 1` が設定されている場合でも、`OPTIMIZE TABLE ... ON CLUSTER` などのDDLがハングしなくなりました。この設定では新たに専用エラーコード `TABLE_IS_PERMANENTLY_READ_ONLY` がスローされ、`DDLWorker` はこれを再試行不可として扱います (`ReplicatedMergeTree` のZooKeeperが一時的に切断された際に発生する一過性の `TABLE_IS_READ_ONLY` とは異なります) 。また、`table_readonly` 設定は、作成時および `ALTER MODIFY SETTING` 経由のいずれの場合も、`ReplicatedMergeTree` に対して明示的に拒否されるようになりました。[#105109](https://github.com/ClickHouse/ClickHouse/pull/105109) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* `MergeTree` のソートキーにおける降順ソート (例: `ORDER BY (time DESC, key)`) が常にサポートされるようになり、廃止された実験的設定 `allow_experimental_reverse_key` は不要になりました。[#106440](https://github.com/ClickHouse/ClickHouse/pull/106440) ([nikitamikhaylov](https://github.com/nikitamikhaylov)).
* 既存の `CREATE QUOTA ... KEYED BY normalized_query_hash` DDL構文に対応し、静的サーバー設定 (`users.xml`) で定義されたQUOTAで `keyed_by_normalized_query_hash` をサポートしました。[#107654](https://github.com/ClickHouse/ClickHouse/pull/107654) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* 互換性設定は廃止された設定を適用しなくなったため、それらを変更済みとしてマークしたり、廃止された設定に関する警告を出したりしなくなりました。[#107737](https://github.com/ClickHouse/ClickHouse/pull/107737) ([UberDever](https://github.com/UberDever)).
* 設定 `analyzer_compatibility_multiple_joins_qualify_column_names` (デフォルトは `false`) を追加しました。有効にすると、クエリの `FROM` 句に2つ以上の `JOIN` が含まれる場合、アナライザによって生成される結果カラム名は旧アナライザの複数JOIN書き換えを模倣します。`*` から展開されたカラムには `<alias-or-table>.<column>` という名前が付けられ、`SELECT` リスト内のエイリアスなしカラム参照は記述どおりの名前を維持します。これにより、`SELECT ll.Date FROM (SELECT * FROM t AS ll JOIN t1 ON ... JOIN t2 ON ...)` のように修飾名を参照する外側のクエリも、旧アナライザと同様に動作します。また、`group_by_use_nulls` を `ROLLUP`、`CUBE`、または `GROUPING SETS` と組み合わせた場合に、`*` から展開されたカラムの修飾済み結果カラム名がアナライザで失われ、結果カラム名が重複してそれらのカラムへの外側からの参照が壊れる問題も修正しました。[#110746](https://github.com/ClickHouse/ClickHouse/pull/110746) ([novikd](https://github.com/novikd)).
* `analyzer_compatibility_apply_final_to_all_joined_tables` 設定を追加しました。この設定により、JOIN の最も左のテーブルの `FINAL` 修飾子が他の結合テーブルにも適用される従来の動作を復元できます。この設定は設定変更履歴に登録されているため、26.6 より前のバージョンとの `compatibility` では従来のセマンティクスが自動的に復元されます。 [#111589](https://github.com/ClickHouse/ClickHouse/pull/111589) ([fm4v](https://github.com/fm4v)).
* テキスト索引のオンディスクフォーマットのバージョン (`v0_initial`、`v1_with_codec`、`v2_with_positions`) を制御する新しい MergeTree 設定 `text_index_version` を追加しました。ローリングアップグレード中またはダウングレード前には、古いサーバーでも読み取れるフォーマットで新しいサーバーがテキスト索引パーツを書き込み続けられるよう、古いバージョンに設定してください。互換性設定により自動的に調整されます。 [#111803](https://github.com/ClickHouse/ClickHouse/pull/111803) ([CurtizJ](https://github.com/CurtizJ)).

<h3 id="system-tables-and-monitoring-improvements">
  システムテーブルと監視
</h3>

* DataLakeCatalog 経由でテーブルをクエリした際に、`system.query_log` の `used_storages` にストレージエンジン名を記録するようになりました。[#100706](https://github.com/ClickHouse/ClickHouse/pull/100706) ([melvynator](https://github.com/melvynator)).
* プロジェクションのマージ進行状況を公開するため、`system.merges` に `current_projection`、`current_projection_progress`、`projections_completed`、`projections_remaining` カラムを追加しました。[#102611](https://github.com/ClickHouse/ClickHouse/pull/102611) ([amosbird](https://github.com/amosbird)).
* テーブルエンジンに埋め込みドキュメントが追加され、`system.table_engines` テーブルの新しい `description`、`syntax`、`examples`、`introduced_in`、`related` カラムを通じて参照できるようになりました。[#106177](https://github.com/ClickHouse/ClickHouse/pull/106177) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* データベースエンジンに埋め込みドキュメントが追加され、`system.database_engines` テーブルの新しい `description`、`syntax`、`examples`、`introduced_in`、`related` カラムを通じて参照できるようになりました。[#106178](https://github.com/ClickHouse/ClickHouse/pull/106178) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* データ型に埋め込みドキュメントが追加され、`system.data_type_families` テーブルの新しい `description`、`syntax`、`examples`、`introduced_in`、`related` カラムを通じて参照できるようになりました。[#106180](https://github.com/ClickHouse/ClickHouse/pull/106180) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* 入出力フォーマットに埋め込みドキュメントが追加され、`system.formats` テーブルの新しい `description`、`examples`、`introduced_in`、`related` カラムを通じて参照できるようになりました。[#106181](https://github.com/ClickHouse/ClickHouse/pull/106181) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* 集約関数コンビネータに埋め込みドキュメントが追加され、`system.aggregate_function_combinators` テーブルの新しい `description`、`syntax`、`examples`、`introduced_in`、`related` カラムを通じて参照できるようになりました。[#106185](https://github.com/ClickHouse/ClickHouse/pull/106185) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* 利用可能なデータスキッピングインデックスの型と埋め込みドキュメント (`description`、`syntax`、`examples`、`introduced_in`、`related`) を一覧表示する新しい `system.data_skipping_index_types` テーブルを追加しました。[#106186](https://github.com/ClickHouse/ClickHouse/pull/106186) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* 利用可能なディスクの型と埋め込みドキュメント (`description`、`syntax`、`examples`、`introduced_in`、`related`) を一覧表示する新しい `system.disk_types` テーブルを追加しました。[#106187](https://github.com/ClickHouse/ClickHouse/pull/106187) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* MergeTree ファミリーのテーブルに格納されたデータの合計非圧縮サイズを報告する非同期メトリクス `TotalUncompressedBytesOfMergeTreeTables` および `TotalUncompressedBytesOfMergeTreeTablesSystem` を追加しました。[#106364](https://github.com/ClickHouse/ClickHouse/pull/106364) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* サーバー全体のメモリ制限に達したタイミングを運用担当者が監視できるよう、`GlobalMemoryLimitExceeded` プロファイルイベントを追加しました。[#106466](https://github.com/ClickHouse/ClickHouse/pull/106466) ([sacheendra](https://github.com/sacheendra)).
* 子孫プロセスおよびアイドル状態のプールワーカーを含む、`executable` および `executable_pool` ユーザー定義関数の常駐メモリ (`VmRSS`) と実行中のプロセス数を報告する非同期メトリクス `ExecutableUserDefinedFunctionMemoryResidentBytes` および `ExecutableUserDefinedFunctionProcesses` を追加しました。[#107300](https://github.com/ClickHouse/ClickHouse/pull/107300) ([HanziJiang](https://github.com/HanziJiang)).
* デフォルトで有効な`show_remote_databases_in_system_tables`を追加しました。これにより、ユーザーは`system.tables`、`system.columns`、`system.completions`で`MySQL`および`PostgreSQL`データベースを非表示にできます。`show_data_lake_catalogs_in_system_tables`は引き続き`DataLakeCatalog`の表示のみを制御します。[#104416](https://github.com/ClickHouse/ClickHouse/pull/104416) ([pamarcos](https://github.com/pamarcos)). [#109082](https://github.com/ClickHouse/ClickHouse/pull/109082) ([pamarcos](https://github.com/pamarcos)).

<h3 id="clickhouse-keeper-improvements">
  ClickHouse Keeper
</h3>

* Keeper を全体として約2倍高速化する各種変更 (バッチ処理の改善、リーダーへのメッセージ送信のパイプライン化、ログ追記のパイプライン化) 。[#101757](https://github.com/ClickHouse/ClickHouse/pull/101757) ([al13n321](https://github.com/al13n321))。
* ウォッチに関する Keeper プロファイルイベント (サーバー側およびクライアント側) を追加。[#105336](https://github.com/ClickHouse/ClickHouse/pull/105336) ([scanhex12](https://github.com/scanhex12))。
* ローカルの ClickHouse Keeper スナップショットに関する情報を提供する、Keeper 専用の新しい `system.keeper_snapshots` テーブルを追加。[#105571](https://github.com/ClickHouse/ClickHouse/pull/105571) ([mstetsyuk](https://github.com/mstetsyuk))。
* ローカルの ClickHouse Keeper changelog (Raft ログ) ファイルに関する情報を提供する、Keeper 専用の新しい `system.keeper_changelogs` テーブルを追加。[#105617](https://github.com/ClickHouse/ClickHouse/pull/105617) ([mstetsyuk](https://github.com/mstetsyuk))。
* Keeper 専用の `system.keeper_cluster` テーブルを追加。現在の Keeper から見た各 Raft クラスター メンバーにつき1行を含みます。[#105646](https://github.com/ClickHouse/ClickHouse/pull/105646) ([mstetsyuk](https://github.com/mstetsyuk))。
* `KeeperMemoryStorage` を使用して ClickHouse Keeper で受信したスナップショットを適用する際のピークメモリ使用量を削減。[#105851](https://github.com/ClickHouse/ClickHouse/pull/105851) ([antonio2368](https://github.com/antonio2368))。
* `NuRaft` の未コミットログエントリの admission 制限および append-entries の後方プローブのスロットリング用に、Keeper の `coordination_settings` を追加。[#106108](https://github.com/ClickHouse/ClickHouse/pull/106108) ([antonio2368](https://github.com/antonio2368))。

<h3 id="memory-management-improvements">
  メモリ管理
</h3>

* パーサーがステートメントの末尾を越えてバックトラックした際に、隣接するメモリのバイトが含まれる可能性があった構文エラーメッセージを修正しました。[#105086](https://github.com/ClickHouse/ClickHouse/pull/105086) ([groeneai](https://github.com/groeneai)) 。
* バックアップを開く際 (`RESTORE` 時、またはインクリメンタル `BACKUP` のベースとして) のメモリ使用量を削減しました。`.backup` メタデータは、インメモリの XML ドキュメントツリーに読み込むのではなく、ストリームとして解析されるようになりました。これにより、大規模なバックアップ、特にインクリメンタルバックアップで、数 GB に及ぶ DOM ツリーの割り当てを回避できます。[#109107](https://github.com/ClickHouse/ClickHouse/pull/109107) ([jkartseva](https://github.com/jkartseva)) 。
* `BACKUP` の完了時のピークメモリ使用量を削減しました。バックアップメタデータの書き込み時に、すべてのファイルの情報を一時ベクターにコピーしなくなりました。これにより、数百万ファイルのバックアップで一時的に数 GB を消費することがなくなります。情報はその場で反復処理されます。[#109861](https://github.com/ClickHouse/ClickHouse/pull/109861) ([jkartseva](https://github.com/jkartseva)) 。

<h3 id="data-formats-improvements">
  データフォーマット
</h3>

* 8 ビット/16 ビット/32 ビット/64 ビット整数のバリアントに対応する Avro Fixed フィールドを挿入できるようになりました。[#98139](https://github.com/ClickHouse/ClickHouse/pull/98139) ([patrickpichler](https://github.com/patrickpichler)) 。
* `AvroConfluent` フォーマットでは、最初のネットワーク障害で INSERT を中止するのではなく、一時的な障害 (トランスポートタイムアウト、接続拒否、DNS エラー、HTTP `5xx`/`408`/`429`) が発生した際に、Confluent スキーマレジストリ HTTP クライアントへのリクエストを指数バックオフで再試行するようになりました。新しい設定 `format_avro_schema_registry_max_retries` (デフォルトは `5`) と `format_avro_schema_registry_retry_initial_backoff_ms` (デフォルトは `100`) でこのポリシーを制御します。スキーマ検証エラー (HTTP `409`、形式が不正な Avro JSON) は引き続き致命的です。[#106661](https://github.com/ClickHouse/ClickHouse/pull/106661) ([groeneai](https://github.com/groeneai)) 。
* Apache Arrow を介して返されるエラーについて、元の ClickHouse エラーコードを保持しました。[#107267](https://github.com/ClickHouse/ClickHouse/pull/107267) ([azat](https://github.com/azat)) 。

<h3 id="named-collections-and-dictionaries">
  名前付きコレクションと Dictionary
</h3>

* `mysql` テーブル関数、`MySQL` テーブルエンジン、`MySQL` データベースエンジン、Dictionary の `SOURCE(MYSQL)`、および名前付きコレクションに `enable_compression` 設定を追加しました。有効にすると、ClickHouse は接続を介して転送されるすべてのデータについて、MySQL プロトコルレベルの圧縮をネゴシエートします。[#103229](https://github.com/ClickHouse/ClickHouse/pull/103229) ([bernardlim](https://github.com/bernardlim)).
* 利用可能な Dictionary レイアウトと埋め込みドキュメント (`description`、`syntax`、`examples`、`introduced_in`、`related`) を一覧表示する `system.dictionary_layouts` テーブルを追加しました。[#106182](https://github.com/ClickHouse/ClickHouse/pull/106182) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* 利用可能な Dictionary ソースと埋め込みドキュメント (`description`、`syntax`、`examples`、`introduced_in`、`related`) を一覧表示する `system.dictionary_sources` テーブルを追加しました。[#106184](https://github.com/ClickHouse/ClickHouse/pull/106184) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* 実際に使用される名前付きコレクションのストレージタイプを、`system.server_settings` の `named_collections_storage.type` および `getServerSetting('named_collections_storage_type')` で確認できるようになりました。[#111806](https://github.com/ClickHouse/ClickHouse/pull/111806) ([pamarcos](https://github.com/pamarcos)).

<h3 id="other-improvements">
  その他の改善
</h3>

* エラーメッセージ内のテーブル名候補を改善しました。同じ名前をそのまま提案しないようにし、候補にデータベース名を含めるようになりました (例: "Maybe you meant other\_db.my\_table?") 。 [#95116](https://github.com/ClickHouse/ClickHouse/pull/95116) ([matt-metivier](https://github.com/matt-metivier)).
* FROM 句のないクエリで解決できない識別子に対するエラーメッセージを改善し、FROM 句の追加を提案するようにしました。 [#101769](https://github.com/ClickHouse/ClickHouse/pull/101769) ([Onyx2406](https://github.com/Onyx2406)).
* 主キーカラムで `IN` サブクエリを使用する `PREWHERE` において、Granule pruning に主キーインデックスが使用されず、関連する granule だけでなくテーブル全体をスキャンしていた問題を修正しました。 [#102570](https://github.com/ClickHouse/ClickHouse/pull/102570) ([nikitamikhaylov](https://github.com/nikitamikhaylov)).
* リフレッシャブルmaterialized view は、`EXCHANGE TABLES` でターゲットテーブルを置き換え、古いテーブルを削除した後もリフレッシュを継続するようになりました。以前は古いテーブルの UUID を保持していたため、`UNKNOWN_TABLE` 例外によりリフレッシュが失敗することがありました。 [#102724](https://github.com/ClickHouse/ClickHouse/pull/102724) ([seva-potapov](https://github.com/seva-potapov)).
* `enable_join_transitive_predicates` をデフォルトで有効化しました。 [#103724](https://github.com/ClickHouse/ClickHouse/pull/103724) ([davenger](https://github.com/davenger)).
* リフレッシャブルmaterialized view で `REFRESH DEPENDS ON` をサポートし、時間ベースのスケジュールではなく、別の RMV のリフレッシュを契機にリフレッシュできるようになりました。 (`REFRESH EVERY ... DEPENDS ON` はすでに存在していましたが、このユースケースでは信頼性の高い利用ができませんでした。) CREATE MATERIALIZED VIEW のドキュメントを参照してください。 [#104440](https://github.com/ClickHouse/ClickHouse/pull/104440) ([al13n321](https://github.com/al13n321)).
* 繰り返される processor チェーンを compact 化する `EXPLAIN PIPELINE` オプションを追加しました。 [#104662](https://github.com/ClickHouse/ClickHouse/pull/104662) ([niyue](https://github.com/niyue)).
* Oracle、MySQL、Snowflake との互換性のため、`regexpExtract` の大文字・小文字を区別しないエイリアスとして `REGEXP_SUBSTR` を追加しました。 [#105122](https://github.com/ClickHouse/ClickHouse/pull/105122) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* `EXTRACT(unit FROM expr)` の構文糖として `date_part('unit', expr)` を追加しました。標準の interval kind と PostgreSQL の拡張 (`epoch`、`dow`、`doy`、`isodow`、`isoyear`、`century`、`decade`、`millennium`) をすべてサポートしています。 [#105127](https://github.com/ClickHouse/ClickHouse/pull/105127) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* `QueryConditionCache` が、PREWHERE を部分的に通過する読み取りバッチ内でも、個別にフィルタリングされた granule を記録するようになりました。これにより、同じ condition を持つ後続のクエリで再読み取りされるマーク数を削減します。 [#105335](https://github.com/ClickHouse/ClickHouse/pull/105335) ([hanfei1991](https://github.com/hanfei1991)).
* 数値 predicate 関数で BFloat16 をサポートしました。 [#105391](https://github.com/ClickHouse/ClickHouse/pull/105391) ([mohhddhassan](https://github.com/mohhddhassan)).
* 数値の最小値・最大値、平均文字列長、該当する場合は NULL の数を格納する、コンパクトなカラムごとの統計情報である basic 統計情報をサポートしました。 [#106048](https://github.com/ClickHouse/ClickHouse/pull/106048) ([hanfei1991](https://github.com/hanfei1991)).
* `CREATE TABLE` と同様に、`ALTER TABLE ... ADD/MODIFY COLUMN` で末尾に指定する `NULL` / `NOT NULL` modifier をサポートしました。 [#106150](https://github.com/ClickHouse/ClickHouse/pull/106150) ([takumihara](https://github.com/takumihara)).
* PREWHERE オプティマイザは、選択性を推定する前に同じカラムセットを参照する結合子をグループ化するようになりました。これにより、`a > 2500 AND a < 2502` のような条件は、独立した 2 つの述語 (各約 50%) ではなく、結合された範囲 (選択性約 0.02%) としてまとめて評価されます。カラム STATISTICS が利用可能な場合、PREWHERE 条件をより正確な順序で評価できるようになります。 [#106337](https://github.com/ClickHouse/ClickHouse/pull/106337) ([hanfei1991](https://github.com/hanfei1991)).
* スタックトレースが実際に空の場合、例外メッセージに "Stack trace (when copying this message, always include the lines below):" という前置きが出力されないようにしました。 [#106524](https://github.com/ClickHouse/ClickHouse/pull/106524) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* 暗号化ディスク上の `CREATE TABLE ... CLONE AS (and REPLACE / ATTACH PARTITION ... FROM)` で、データをハードリンクする代わりにコピーしていた問題を修正しました。 [#106731](https://github.com/ClickHouse/ClickHouse/pull/106731) ([nikitamikhaylov](https://github.com/nikitamikhaylov)).
* `catalog_type = 'onelake'` を使用する `DataLakeCatalog` データベースで、デフォルトで OneLake Blob エンドポイント (`.blob.fabric.microsoft.com`) を使用してテーブルデータを読み取るように修正しました。以前の DFS エンドポイント (`.dfs.fabric.microsoft.com`) の動作を維持するには、`onelake_use_blob_endpoint = false` を設定します。 [#106843](https://github.com/ClickHouse/ClickHouse/pull/106843) ([scanhex12](https://github.com/scanhex12)).
* 高いログレートでの非同期ロギングにおける CPU オーバーヘッドを削減しました。すべてのメッセージでログコンシューマーに通知するのではなく、キューが空から非空に遷移した場合にのみ通知します。 [#107352](https://github.com/ClickHouse/ClickHouse/pull/107352) ([nikitamikhaylov](https://github.com/nikitamikhaylov)).
* MySQL ハンドシェイクにおける `auth_response` の長さの読み取りを修正しました。長さバイトが符号付き `char` として読み取られていたため、`>= 128` の場合に数 GB の値として解釈されていました。 [#107384](https://github.com/ClickHouse/ClickHouse/pull/107384) ([uwezkhan](https://github.com/uwezkhan)).
* `MaterializedPostgreSQL` は、精度が 76 を超える PostgreSQL の `numeric(p, 0)` カラム (例: 256 ビット整数に使用される `numeric(78, 0)`) を、"Precision too big" エラーで失敗させる代わりに ClickHouse の `Int256` にマッピングするようになりました。`Int256` に収まらない値は、明確なエラーで拒否されます。 [#107431](https://github.com/ClickHouse/ClickHouse/pull/107431) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* `Nullable(Tuple(...))` は Beta になりました。デフォルトでは無効で、使用するには `enable_nullable_tuple_type = 1` を設定します。 [#107754](https://github.com/ClickHouse/ClickHouse/pull/107754) ([nihalzp](https://github.com/nihalzp)).
* 非同期 INSERT では、`trace`/`debug` レベルで `query_id` の完全なリストをログに記録しなくなりました。これは 26.2 以降、非同期 INSERT トラフィックが多いサービスで `text_log` を肥大化させる可能性がありました。詳細な行は現在 `test` レベルで出力されます。 [#107852](https://github.com/ClickHouse/ClickHouse/pull/107852) ([CheSema](https://github.com/CheSema)).
* 無効化された優先度エントリを速やかに解放することで、ファイルシステムキャッシュのメタデータ使用量を削減しました。 [#107903](https://github.com/ClickHouse/ClickHouse/pull/107903) ([kssenii](https://github.com/kssenii)).
* `Array` カラム上の `bloom_filter` スキップ索引は、すでに `hasAny(column, set)` および `has(column, const)` で使用されていたのと同様に、`arrayJoin(column) IN (set)`、`arrayJoin(column) GLOBAL IN (set)`、および `arrayJoin(column) = const` でも使用されるようになりました。以前は、これらの `arrayJoin ...` 形式ではフルスキャンにフォールバックしていました。 [#109536](https://github.com/ClickHouse/ClickHouse/pull/109536) ([groeneai](https://github.com/groeneai)).
* `IS NOT DISTINCT FROM` と `IS TRUE` で、`=` と同様にプライマリキーおよびminmax索引を使用してgranuleをプルーニングするようになりました。以前は、`k IS NOT DISTINCT FROM 42` と `(k = 42) IS TRUE` ではすべてのgranuleがスキャンされていました。 [#110006](https://github.com/ClickHouse/ClickHouse/pull/110006) ([groeneai](https://github.com/groeneai)).

<h2 id="bug-fixes">
  バグ修正
</h2>

<h3 id="join-fixes">
  JOIN の修正
</h3>

* `ARRAY JOIN` で内部的に使用される `nested` 関数がカラム型から `LowCardinality` を取り除き、出力時に `Array(LowCardinality(String))` が `Array(String)` になる問題を修正しました。[#98974](https://github.com/ClickHouse/ClickHouse/pull/98974) ([Onyx2406](https://github.com/Onyx2406)).
* 別のテーブルとカンマ結合 (クロス結合) した `RIGHT`/`LEFT JOIN` (例: `t1 RIGHT JOIN t2 ON t1.c = t2.c, t3`) で、結合順序の再配置により一致しない行が暗黙的に削除される問題を修正しました。以前は、クエリは外部結合の結果ではなく内部結合の結果を返していました。[#101684](https://github.com/ClickHouse/ClickHouse/pull/101684) ([groeneai](https://github.com/groeneai)).
* JOIN 内で集約を含む VIEW を使用するクエリの実行時に発生する可能性があった `LOGICAL_ERROR` ("Port is not connected"、コード 49) を修正しました。[#102574](https://github.com/ClickHouse/ClickHouse/pull/102574) ([Ergus](https://github.com/Ergus)).
* 新しいアナライザで `GLOBAL IN` および `GLOBAL JOIN` クエリに対する `max_rows_to_transfer` と `max_bytes_to_transfer` が暗黙的に無視される問題を修正しました。マテリアライズされた外部テーブルが設定された上限を超えると、旧アナライザと同様に、これらの設定により `SET_SIZE_LIMIT_EXCEEDED` が発生するか、`transfer_overflow_mode` に応じて処理が中断されるようになりました。[#104119](https://github.com/ClickHouse/ClickHouse/pull/104119) ([groeneai](https://github.com/groeneai)).
* 最適化によってルックアップカラムの順序が変更された場合に、右側が `MergeTree` テーブルである `join_algorithm = 'direct'` を使用した `JOIN` クエリで、誤った結果が返される、またはクエリが失敗する問題を修正しました。[#104174](https://github.com/ClickHouse/ClickHouse/pull/104174) ([groeneai](https://github.com/groeneai)).
* `JOIN` の後に `arrayJoin` と `ORDER BY ... LIMIT` を組み合わせたクエリが、暗黙的にゼロ行を返す可能性があるバグを修正しました。`arrayJoin` は行数を変更する可能性があるため、持ち上げる式に `arrayJoin` が含まれる場合、関数評価を `SortingStep` より上に持ち上げるクエリプラン最適化は適用されなくなりました。[#104558](https://github.com/ClickHouse/ClickHouse/pull/104558) ([groeneai](https://github.com/groeneai)).
* `ARRAY JOIN` と併用した場合に、一部のケースで負の `LIMIT BY` により発生する論理エラーを修正しました。[#105403](https://github.com/ClickHouse/ClickHouse/pull/105403) ([nihalzp](https://github.com/nihalzp)).
* 新しい互換性設定 `analyzer_compatibility_prefer_alias_over_subcolumn` を追加しました (デフォルトでは無効) 。有効にすると、新しいアナライザは複数部分からなる識別子について、Tuple サブカラムまたはドット付きカラムとの一致よりもエイリアス接頭辞として解釈することを優先し、以前のインタープリタの動作を復元します。これにより、結合に対して `SELECT *` を使用する CTE/サブクエリ内の内部テーブルと同名のテーブルを結合するクエリで、アスタリスクによって名前変更されたカラム (例: `b.id`) が内部テーブルの識別子を外側のスコープに漏出させて発生する `AMBIGUOUS_IDENTIFIER` などのエラーを回避します。[#105491](https://github.com/ClickHouse/ClickHouse/pull/105491) ([vdimir](https://github.com/vdimir)).
* 外部結合と、その外部結合で NULL を提供する側を参照する後続の内部結合を組み合わせるクエリで、誤った結果が返される可能性がある問題を修正しました。結合順序の再配置により、内部結合の条件を外部結合の ON 句に取り込むプランが選択される可能性がありました。[#105992](https://github.com/ClickHouse/ClickHouse/pull/105992) ([vdimir](https://github.com/vdimir)).
* 旧アナライザとの互換性を向上しました。テーブルに `x.a Array, x.b Array, x String` のようなカラムがある場合、`ARRAY JOIN x` では配列を優先するようになりました。[#106069](https://github.com/ClickHouse/ClickHouse/pull/106069) ([KochetovNicolai](https://github.com/KochetovNicolai)).
* `enable_parallel_replicas`、`query_plan_use_new_logical_join_step`、および `query_plan_optimize_join_order_algorithm = 'greedy'` が有効な場合に、左側の `MergeTree` テーブルが空の `INNER JOIN` クエリで例外が発生する問題を修正しました。[#106338](https://github.com/ClickHouse/ClickHouse/pull/106338) ([KochetovNicolai](https://github.com/KochetovNicolai)).
* JOIN グラフ内の 2 つのリレーションでカラム名が重複している場合に、並列レプリカで実行される JOIN で発生する可能性があった JOIN 順序オプティマイザの論理エラー (`Left and right columns have same names`) を修正しました。[#106418](https://github.com/ClickHouse/ClickHouse/pull/106418) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* 一意の右側キー、混在する `ON` 条件、および小さい `max_joined_block_size_rows` を指定した `LEFT JOIN` における `JoiningTransform` の `LOGICAL_ERROR` (`Invalid number of rows in Chunk`) を修正しました。[#106928](https://github.com/ClickHouse/ClickHouse/pull/106928) ([groeneai](https://github.com/groeneai)).
* JOIN キーに `Tuple`、`Array`、または `Map` 内にネストされた `Variant` または `Dynamic` 型が含まれ、JOIN の右側に異なる値が 1 つだけある場合に、JOIN ランタイムフィルタで発生する例外 (`LOGICAL_ERROR`) を修正しました。[#106931](https://github.com/ClickHouse/ClickHouse/pull/106931) ([groeneai](https://github.com/groeneai)).
* `Dynamic` に対する JOIN によって構築された `Dynamic` カラムに対して関数を実行する際に発生する `LOGICAL_ERROR` (`Expected the argument N to have X rows, but it has Y`) を修正しました (例: `RIGHT`/`FULL JOIN` で JOIN されない行や、JOIN に非相関化された相関 `EXISTS` サブクエリ) 。[#107095](https://github.com/ClickHouse/ClickHouse/pull/107095) ([groeneai](https://github.com/groeneai)).
* `JOIN ... USING` キーに対する修飾アスタリスク (`t.*`) が集約関数に渡され、外部 JOIN の反対側に `Nullable` キーがある場合に発生する `Bad cast from type DB::IColumn const* to DB::ColumnNullable const*` 論理エラー例外を修正しました (`join_use_nulls = 0`) 。[#107129](https://github.com/ClickHouse/ClickHouse/pull/107129) ([groeneai](https://github.com/groeneai)).
* 選言 (部分 predicate) のプッシュダウン最適化が、JOIN によって型が拡張された `USING` キーに対する条件をプッシュダウンする際に発生する論理エラー (`Unexpected return type from equals. Expected Nullable(UInt8). Got UInt8`) を修正しました。また、未知の識別子を参照する定数畳み込み可能な `if`/`multiIf` 分岐を含む `JOIN ... USING` クエリで識別子を解決する際に、アナライザで発生するサーバークラッシュ (セグメンテーションフォールト) も修正しました。[#107407](https://github.com/ClickHouse/ClickHouse/pull/107407) ([groeneai](https://github.com/groeneai)).
* JSON カラムに対して誤った結果を生成する JOIN ランタイムフィルタを修正しました。[#107663](https://github.com/ClickHouse/ClickHouse/pull/107663) ([Avogar](https://github.com/Avogar)).
* 修飾アスタリスク (`t.*`) が `JOIN USING` キーを選択し、その JOIN が `PASTE`/`CROSS`/カンマ JOIN または外部 `ON` JOIN の配下にネストされている場合に発生する `Bad cast from type DB::ColumnNullable to DB::ColumnVector<...>` 論理エラー例外を修正しました (`join_use_nulls = 0`) 。[#108043](https://github.com/ClickHouse/ClickHouse/pull/108043) ([groeneai](https://github.com/groeneai)).
* 新しいアナライザで、JOIN 内の 1 つのテーブルに指定した FINAL (例: `FROM t1 FINAL JOIN t2`) が他の結合先テーブルにも誤って適用され、そのようなクエリが遅くなる可能性があったバグを修正しました。[#108979](https://github.com/ClickHouse/ClickHouse/pull/108979) ([vdimir](https://github.com/vdimir)).
* `analyzer_compatibility_join_using_top_level_identifier = 1` を指定すると、`JOIN ... USING` 内の識別子を、SELECT リスト内の部分式で定義されたエイリアスから解決できるようになりました (例: `SELECT uniqExact(lower(x) AS id) FROM t1 JOIN t2 USING (id)`) 。これは旧アナライザの動作と一致します。以前は最上位のプロジェクションエイリアスのみが考慮され、この設定を有効にしていても、このようなクエリは `UNKNOWN_IDENTIFIER` 例外で失敗していました。一致するエイリアスがネストされている場合にも、この設定を提案するエラーヒントが表示されるようになりました。[#110739](https://github.com/ClickHouse/ClickHouse/pull/110739) ([novikd](https://github.com/novikd)).
* 右側のカラムに対する `WHERE` フィルターによってクエリプランナーが結合を `SEMI` または `ANTI` に書き換えられる場合に、`Join` engine テーブルの `ANY` 結合で発生する `INCOMPATIBLE_TYPE_OF_JOIN` エラーを修正しました。`Join` engine テーブルでは strictness が固定で宣言されており変更できないため、このようなテーブルでは変換を行わないようになりました。[#111362](https://github.com/ClickHouse/ClickHouse/pull/111362) ([groeneai](https://github.com/groeneai)).
* Dictionary への `JOIN` で、Dictionary キーがラップされていないにもかかわらず、結合キーに `Nullable`、`LowCardinality`、または `LowCardinality(Nullable)` を使用した場合に発生する `TYPE_MISMATCH` ("Key type for complex key ... does not match") を修正しました。direct-join Dictionary ルックアップでは、キーを Dictionary で宣言されたキー型に正規化するようになりました (`dictGet`/`dictHas` はすでにこの処理を行っています) 。また、`NULL` キーは一致しません。[#111857](https://github.com/ClickHouse/ClickHouse/pull/111857) ([groeneai](https://github.com/groeneai)).
* `join_use_nulls = 1` を指定し、`JOIN ON` 条件を `WHERE` 内で繰り返すクエリで発生する `AMBIGUOUS_COLUMN_NAME` (`Block structure mismatch in (columns with identical name must have identical structure)`) を修正しました。このようなクエリは失敗するのではなく、結果を返すようになりました。[#112007](https://github.com/ClickHouse/ClickHouse/pull/112007) ([groeneai](https://github.com/groeneai)).
* キーにスパースシリアライゼーションを使用する direct Dictionary `JOIN` で、不正な結果が返される、または server が終了する問題を修正しました。[#112327](https://github.com/ClickHouse/ClickHouse/pull/112327) ([groeneai](https://github.com/groeneai)).
* ハッシュ結合の単一の `LowCardinality` キーが 8 バイトを超える型 (`UInt128`、`Int128`、`UInt256`、`Int256`、およびそれらの `Nullable` バリアント) である場合に、不正な結果が返される問題を修正しました。このような結合では、キー値が等しくない行が暗黙的に返されていました。[#113230](https://github.com/ClickHouse/ClickHouse/pull/113230) ([groeneai](https://github.com/groeneai)).
* 反対側の定数カラムを含む `JOIN ON` 条件におけるパーツおよび granule pruning を修正しました。[#113484](https://github.com/ClickHouse/ClickHouse/pull/113484) ([vdimir](https://github.com/vdimir)).
* `DirectKeyValueJoin` (`EmbeddedRocksDB`、`KeeperMap`、`Redis`、または Dictionary などのキー・バリュー storage) が処理する JOIN の右側から選択した `_table` や `_database` などの virtual column で、不正な値が返される問題を修正しました。クエリは代わりに data column の内容を返すか、`LOGICAL_ERROR` で失敗していました。[#113698](https://github.com/ClickHouse/ClickHouse/pull/113698) ([groeneai](https://github.com/groeneai)).

<h3 id="query-and-analyzer-fixes">
  クエリとアナライザの修正
</h3>

* セミコロンの後がコメントで終わるクエリで、splitMultipartQuery が "Empty query" エラーをスローするバグを修正しました。 [#85491](https://github.com/ClickHouse/ClickHouse/pull/85491) ([yariks5s](https://github.com/yariks5s)).
* DESCRIBE TABLE 内のサブクエリの後にあるエイリアスがパーサーで受け入れられず、構文エラーとなる問題を修正しました。 [#100205](https://github.com/ClickHouse/ClickHouse/pull/100205) ([yariks5s](https://github.com/yariks5s)).
* `EXPLAIN INSERT INTO ... SELECT ... FORMAT ...` において、`FORMAT` 句が `EXPLAIN` の出力に適用されず、`INSERT` によって消費される問題を修正しました。 [#101772](https://github.com/ClickHouse/ClickHouse/pull/101772) ([Onyx2406](https://github.com/Onyx2406)).
* 同時に INSERT が実行されている場合に SELECT クエリが大幅に遅くなる問題を修正しました。以前は、ほとんどのスロットが使用されない場合でも、INSERT パイプラインがクエリ開始時に `max_threads` までの CPU スロットを予約し、同時実行中の SELECT を圧迫していました。CPU スロットの割り当ては需要駆動型になり、パイプラインは並列化可能な処理を実際にプッシュする際にのみスロットをリクエストします。これは同時実行制御と、ワークロード用のプリエンプティブ CPU スケジューラの両方に適用されます。新しいサーバー設定 `concurrent_threads_lazy_allocation` (デフォルトは `true`) はロールバック手段として使用できます。 [#102928](https://github.com/ClickHouse/ClickHouse/pull/102928) ([seva-potapov](https://github.com/seva-potapov)).
* `EmbeddedRocksDB` テーブルに対する `ALTER TABLE ... MODIFY SETTING` で、サーバーがクエリを拒否した場合でも無効な設定値がテーブルのメタデータファイルに永続化されるバグを修正しました。次回のサーバー再起動時には、テーブルのアタッチが `CANNOT_PARSE_BOOL` (または同様の構文解析エラー) で失敗し、ロードの失敗が致命的となるデータベースではサーバーが起動を拒否していました。無効な設定値は、メタデータが書き込まれる前に拒否されるようになりました。 [#103417](https://github.com/ClickHouse/ClickHouse/pull/103417) ([groeneai](https://github.com/groeneai)).
* `HTTP` インターフェイスおよび `INSERT SELECT FROM input` における `input_format_max_block_wait_ms` を使用したストリーミング `INSERT` を修正し、リクエストの完了前に部分的な入力ブロックがフラッシュされるようにしました。 [#104534](https://github.com/ClickHouse/ClickHouse/pull/104534) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* 式と `WHEN` の値の両方が `NULL` の場合に、`CASE` 式が一致する `THEN` ではなく `ELSE` 分岐を返す問題を修正しました。 [#105556](https://github.com/ClickHouse/ClickHouse/pull/105556) ([Algunenano](https://github.com/Algunenano)).
* `MATERIALIZED VIEW` 定義で `WASM` SQL UDF を使用できない問題を修正しました。 [#106161](https://github.com/ClickHouse/ClickHouse/pull/106161) ([niyue](https://github.com/niyue)).
* 古いアナライザで、SELECT リスト内の ORDER BY カラムにエイリアスが付いている場合に `INTERPOLATE ()` が `INVALID_WITH_FILL_EXPRESSION` をスローする問題を修正しました。 [#106252](https://github.com/ClickHouse/ClickHouse/pull/106252) ([yakov-olkhovskiy](https://github.com/yakov-olkhovskiy)).
* 関数 `base58Encode`、`base58Decode`、`tryBase58Decode` が、大きな入力に対して `max_execution_time` とクエリのキャンセルに従うようになり、非常に長時間実行される代わりに 10 KB を超える入力を拒否するようになりました。この上限は新しい設定 `function_base58_max_input_size` (`0` で無効化) で設定できます。 [#106428](https://github.com/ClickHouse/ClickHouse/pull/106428) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* `f(const)` が NaN と評価される場合、たとえば負の定数を使用した `ORDER BY sqrt(c0)` で、`ORDER BY f(c0)` を持つテーブルに対する `WHERE c0 = const` が行を返さない問題を修正しました。主キー解析がすべてのグラニュールを誤ってプルーニングし、後続のクエリのクエリ条件キャッシュを汚染していました。 [#106507](https://github.com/ClickHouse/ClickHouse/pull/106507) ([groeneai](https://github.com/groeneai)).
* 暗黙的な `_minmax_count_projection`、明示的な集約プロジェクション、または通常のプロジェクションを持つテーブルに対する `SELECT c, count() FROM t WHERE c GROUP BY c` で誤った結果が返される問題を修正しました。以前は、すべてのグループが定数キーと合計行数を持つ1行に集約されていました。[#106590](https://github.com/ClickHouse/ClickHouse/pull/106590) ([groeneai](https://github.com/groeneai)).
* `EXPLAIN ... INSERT ... SELECT ... FORMAT ...` の `EXPLAIN` 出力に対して、`SETTINGS` が `FORMAT` に先行する場合や出力フォーマットが `Values` の場合にも、`FORMAT` が適用されるようにしました。[#106686](https://github.com/ClickHouse/ClickHouse/pull/106686) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* 再利用されたスレッドローカルのリクエストオブジェクトに以前のリクエストの失敗状態が残ることで、実際にはワークロードリソースへのアクセスが許可されているクエリで、まれに誤って `RESOURCE_ACCESS_DENIED` エラー ("Scheduler queue with resource request is about to be destructed") が発生する問題を修正しました。[#106690](https://github.com/ClickHouse/ClickHouse/pull/106690) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* 16進または8進エスケープを含む正規表現で、`match`、`extract`、`extractAll`、`countMatches` が誤った結果を返す問題を修正しました。[#106709](https://github.com/ClickHouse/ClickHouse/pull/106709) ([ofeliacode](https://github.com/ofeliacode)).
* PostgreSQL ワイヤプロトコルパーサーで、長さフィールドが4未満のメッセージにより `size - 4` がラップアラウンドし、過大な `resize`/`ignore` が実行される整数アンダーフローを修正しました。[#107485](https://github.com/ClickHouse/ClickHouse/pull/107485) ([uwezkhan](https://github.com/uwezkhan)).
* `enable_analyzer = 1` (デフォルト) では、別のデータベースにのみ存在するテーブルを修飾なしの名前でクエリした場合に、適切なテーブルが提案されるようになりました。たとえば、`SELECT * FROM functions` は `Maybe you meant system.functions?` を報告します。以前は、新しいアナライザではヒントのない `Unknown table expression identifier` エラーが発生していましたが、古いアナライザではすでに有用な提案が表示されていました。[#107550](https://github.com/ClickHouse/ClickHouse/pull/107550) ([groeneai](https://github.com/groeneai)).
* ワーカーのステータスチェックで次回のチェックを再スケジュールできなかった場合 (たとえば、シャットダウン時の `CANNOT_SCHEDULE_TASK` や `MEMORY_LIMIT_EXCEEDED`) 、分散プランクエリ (`make_distributed_plan = 1`) の終了処理中にサーバーが中止される (`std::terminate`、シグナル6) 問題を修正しました。クエリは正常に失敗し、サーバーは稼働を継続します。[#107575](https://github.com/ClickHouse/ClickHouse/pull/107575) ([groeneai](https://github.com/groeneai)).
* 共通の部分式を共有する `ALIAS` カラムを選択する分散クエリで、誤った結果が返される問題を修正しました。カラムがずれ、値が誤ったカラムに返される可能性がありました。[#107675](https://github.com/ClickHouse/ClickHouse/pull/107675) ([vdimir](https://github.com/vdimir)).
* `CODEC` またはエンジン宣言内の引数なしウィンドウ関数 (例: `CODEC(cume_dist() OVER (...))`) で発生する `Inconsistent AST formatting` 論理エラーを修正しました。このような関数では括弧が保持されるようになり、クエリがフォーマット/解析の往復変換を通過できるようになりました。[#107806](https://github.com/ClickHouse/ClickHouse/pull/107806) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* `getClientHTTPHeader` が非決定論的として正しく扱われるようになったため、その結果がクエリ結果 cache によって誤って再利用されなくなりました。[#108029](https://github.com/ClickHouse/ClickHouse/pull/108029) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* クエリ条件 cache (デフォルトでもある設定 `use_query_condition_cache = 1`) とともに `SELECT [...] SAMPLE [...]` を使用した際に、誤った結果が返される問題を修正しました。[#108488](https://github.com/ClickHouse/ClickHouse/pull/108488) ([groeneai](https://github.com/groeneai)).
* `enable_identifier_resolve_cache` が有効 (デフォルト) の場合に、複合述語に `GROUP BY` で別名を付けて再度参照すると発生する `NOT_FOUND_COLUMN_IN_BLOCK` を修正しました。`optimize_and_compare_chain` の最適化はべき等ではなく、共有された解決済みノードに重複する推移的連言句が蓄積されていました。 [#108553](https://github.com/ClickHouse/ClickHouse/pull/108553) ([groeneai](https://github.com/groeneai)).
* `Distributed` テーブルに対するサブクエリが同じ式に展開される 2 つ以上の `ALIAS` カラム (例: `a1 String ALIAS toString(x), a2 String ALIAS toString(x)`) を読み取り、その結果を外側のクエリで使用する場合 (例: `SELECT count() FROM (SELECT a1, a2 FROM dist GROUP BY a1, a2)`) に発生する `NUMBER_OF_COLUMNS_DOESNT_MATCH` エラーを修正しました。 [#108725](https://github.com/ClickHouse/ClickHouse/pull/108725) ([groeneai](https://github.com/groeneai)).
* 別のカラムにインライン別名を定義して参照する `DEFAULT` または `MATERIALIZED` 式がある場合に、`ALTER TABLE ... DROP COLUMN` で発生する `UNKNOWN_IDENTIFIER` エラーを修正しました。 [#109374](https://github.com/ClickHouse/ClickHouse/pull/109374) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* クエリが `name`/`database` カラムのみを読み取る場合に、データベース単位の権限を持つユーザーのデータベースを `system.tables` が暗黙的にスキップする問題を修正しました。導入バージョン: 26.2。 [#109723](https://github.com/ClickHouse/ClickHouse/pull/109723) ([samay-sharma](https://github.com/samay-sharma)).
* アナライザが有効な場合に、ビューに保存されたクエリ内で CTE 名 (`cte_name.column`) で修飾されたカラムに対して発生する `UNKNOWN_IDENTIFIER` エラーを修正しました。 [#111386](https://github.com/ClickHouse/ClickHouse/pull/111386) ([novikd](https://github.com/novikd)).
* `FINAL` クエリが `SELECT` リストに含まれないソートキーのカラムでフィルタリングし、そのフィルターが `PREWHERE` に移動された場合 (例: `optimize_move_to_prewhere_if_final = 1` を指定した `SELECT s FROM t FINAL WHERE k GROUP BY s`) に発生する `NOT_FOUND_COLUMN_IN_BLOCK` を修正しました。 [#111721](https://github.com/ClickHouse/ClickHouse/pull/111721) ([groeneai](https://github.com/groeneai)).
* `enable_analyzer = 0` がサーバーのデフォルトである場合に、再帰 CTE を持つビューで `WITH RECURSIVE is not supported with the old analyzer` によりサーバーの起動および `ATTACH` が失敗する問題を修正しました。 [#112784](https://github.com/ClickHouse/ClickHouse/pull/112784) ([evillique](https://github.com/evillique)).
* `accurateCastOrDefault` におけるクエリ設定および NULL の処理の伝播を修正しました。 [#114912](https://github.com/ClickHouse/ClickHouse/pull/114912) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* `system.query_thread_log` の `read_rows`、`read_bytes`、`written_rows`、`written_bytes` が、記録されたクエリの値ではなくスレッドの存続期間中の累計値を報告する問題を修正しました。特に、クエリを開始した `HTTPHandler` スレッドを含む、長期間存続するプール済みスレッドの行が影響を受けていました。 [#115596](https://github.com/ClickHouse/ClickHouse/pull/115596) ([groeneai](https://github.com/groeneai)).

<h3 id="mergetree-and-storage-fixes">
  MergeTree およびストレージの修正
</h3>

* `tryN` 接尾辞が付いたデタッチされたパーツを削除できるようになりました。[#58957](https://github.com/ClickHouse/ClickHouse/pull/58957) ([antaljanosbenjamin](https://github.com/antaljanosbenjamin)).
* 並列レプリカで実行する際、ネストされたサブクエリ内に重複するプロジェクション別名 (例: `SELECT *, day + 365 AS day`) があるクエリで発生する `MULTIPLE_EXPRESSIONS_FOR_ALIAS` 例外を修正しました。[#80310](https://github.com/ClickHouse/ClickHouse/pull/80310) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* テーブルレベルの `default_compression_codec` 設定が明示的に構成されている場合に、`MergeTree` パーツで誤った圧縮コーデックが選択される問題を修正しました。挿入時、マージ時、およびプロジェクション用に書き込まれるパーツで、テーブルレベルの設定ではなくサーバー全体のデフォルトコーデックが使用されていました (完全に削除する mutation により生成される空のパーツも対象です) 。[#101784](https://github.com/ClickHouse/ClickHouse/pull/101784) ([Onyx2406](https://github.com/Onyx2406)).
* 並列レプリカと `parallel_replicas_local_plan = 0` を使用して、`PREWHERE` / `WHERE` / `HAVING` / `QUALIFY` 内のプロジェクション別名を参照するクエリ (例: `SELECT x AS a, y AS b, (a AND b) AS c FROM t PREWHERE c`) 、または重複するカラム名を持つ自己結合に対する `SELECT *` を実行した際に、リモートレプリカで発生する `MULTIPLE_EXPRESSIONS_FOR_ALIAS` エラーを修正しました。[#103806](https://github.com/ClickHouse/ClickHouse/pull/103806) ([groeneai](https://github.com/groeneai)).
* `ALTER TABLE ... DROP PARTITION ID 'patch-...'` の後に `DETACH`/`ATTACH TABLE` を実行するとパッチパートが壊れる問題を修正しました。以前は、空のカバリングパートが `partition.dat` および `source_parts.dat` なしで書き込まれていたため、次回のアタッチまたはサーバー再起動後に `system.detached_parts` に `broken-on-start_patch-...` エントリが生成されていました。[#104353](https://github.com/ClickHouse/ClickHouse/pull/104353) ([groeneai](https://github.com/groeneai)).
* `ALTER TABLE ... RENAME COLUMN` が `OPTIMIZE TABLE ... FINAL` または別のバックグラウンドマージと同時に実行された場合、データがデフォルト値で暗黙的に置き換えられる問題を修正しました。[#104822](https://github.com/ClickHouse/ClickHouse/pull/104822) ([groeneai](https://github.com/groeneai)).
* `enable_materialized_cte` を使用するクエリで発生する `LOGICAL_ERROR: Reading from materialized CTE 'X' before it has been materialized` の2つのケースを修正しました。(1) 別のマテリアライズド CTE に対する `IN (subquery)` でフィルタリングされる再利用済みのマテリアライズド CTE、(2) ネストした IN サブクエリを介して MergeTree 主キーにアクセスする `WHERE ... IN (...)` フィルター内と直接の両方で参照されるマテリアライズド CTE です。バグはプラン最適化中に発生していたため、同じクエリに対する `EXPLAIN` も影響を受けていました。[#105041](https://github.com/ClickHouse/ClickHouse/pull/105041) ([novikd](https://github.com/novikd)).
* `skip_cache_on_disk_failure = 1` の場合、`FileCache` がディスク上に cache ディレクトリを作成できなくても、クエリの実行が継続されるようになりました。クエリを失敗させる代わりに、エラーがログに記録されます。[#105250](https://github.com/ClickHouse/ClickHouse/pull/105250) ([Diskein](https://github.com/Diskein)).
* `ALTER TABLE <memory_table> APPLY PATCHES` および `ALTER TABLE <memory_table> APPLY DELETED MASK` で発生する論理エラー例外 `Mutation of Memory table produced incomplete output` を修正しました。`Memory` テーブルはパッチパートも削除マスクも持たないため、両方のコマンドは正しく no-op として扱われるようになりました。[#105286](https://github.com/ClickHouse/ClickHouse/pull/105286) ([groeneai](https://github.com/groeneai)).
* `distributed_group_by_no_merge=1` を使用した `Distributed` 上の `Merge` 上の `Merge` で発生する `CANNOT_CONVERT_TYPE` を修正しました。[#105330](https://github.com/ClickHouse/ClickHouse/pull/105330) ([azat](https://github.com/azat)).
* 複数の異なる値をすでに検出した状態をマージする際に、`singleValueOrNullMerge` が `NULL` ではなく具体的な値を返す問題を修正しました。[#105734](https://github.com/ClickHouse/ClickHouse/pull/105734) ([fallintoplace](https://github.com/fallintoplace)).
* コレクション名が空、または NUL バイトを含む場合に、`mongodb` テーブル関数、MongoDB ストレージ、および MongoDB Dictionary ソースでクラッシュする問題を修正しました。[#105776](https://github.com/ClickHouse/ClickHouse/pull/105776) ([Algunenano](https://github.com/Algunenano)).
* 明示的に指定した `SummingMergeTree` および `CoalescingMergeTree` の `columns_to_sum` カラムに対して、`ALTER TABLE ... CLEAR COLUMN` が拒否される問題を修正しました。[#105785](https://github.com/ClickHouse/ClickHouse/pull/105785) ([antonio2368](https://github.com/antonio2368)).
* データベース名をクエリパラメータで指定したパラメーター化ビューの作成時に、`UNKNOWN_DATABASE` エラーが発生する問題を修正しました。[#105799](https://github.com/ClickHouse/ClickHouse/pull/105799) ([groeneai](https://github.com/groeneai)).
* analyzer 使用時に `Merge` テーブルで順序どおりに読み取る最適化を復元しました。[#105867](https://github.com/ClickHouse/ClickHouse/pull/105867) ([KochetovNicolai](https://github.com/KochetovNicolai)).
* カタログ経由でアクセスする Iceberg テーブルでの `UPDATE` および `DELETE` ミューテーションを修正しました。対象行がない場合に繰り返し実行した更新および削除も含まれます。[#106111](https://github.com/ClickHouse/ClickHouse/pull/106111) ([scanhex12](https://github.com/scanhex12)).
* 述語がその上位で適用された `Merge` テーブルまたは `merge` テーブル関数を介して `Distributed` テーブルをクエリした場合に、`optimize_skip_unused_shards` が適用されず (また、`force&#95;optimize&#95;skip&#95;unused&#95;shards` が誤って失敗する) 問題を修正しました。[#106250](https://github.com/ClickHouse/ClickHouse/pull/106250) ([KochetovNicolai](https://github.com/KochetovNicolai)).
* ミューテーション (`DELETE`/`UPDATE`) の述語に、別のサブクエリ内にネストされたデフォルトテーブル式を読み取る `IN`/`EXISTS` サブクエリが含まれる場合に発生する論理エラー `Column identifier ... is already registered` を修正しました。[#106414](https://github.com/ClickHouse/ClickHouse/pull/106414) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* `read_in_order_use_virtual_row_per_block = 1` と小さい `max_block_size` を使用してワイドパーツを逆順に読み取る際、`ORDER BY ... DESC` クエリで断続的に不正な結果が返される問題を修正しました。[#106429](https://github.com/ClickHouse/ClickHouse/pull/106429) ([vdimir](https://github.com/vdimir)).
* `cache`/`direct` レイアウトと単一の文字列 (複合) キーで `STORAGE_TYPE 'simple'` を使用する Redis Dictionary で発生する `Bad cast exception` を修正しました。このような Dictionary は動作するようになり、`simple` ストレージ上の複合キーでは明確なエラーが報告されます。[#106501](https://github.com/ClickHouse/ClickHouse/pull/106501) ([vdimir](https://github.com/vdimir)).
* `APPLY PATCHES`、`APPLY DELETED MASK`、`MATERIALIZE STATISTICS`、`MATERIALIZE INDEX`、`MATERIALIZE PROJECTION`、`REWRITE PARTS` を含む、`Memory` エンジン上の行データに影響しない `ALTER TABLE <memory_table>` コマンドによって発生する例外 `Mutation of Memory table produced incomplete output` を修正しました。`Memory` テーブルはこれらの構造を保持しないため、これらのコマンドは no-op として扱われるようになりました。[#106621](https://github.com/ClickHouse/ClickHouse/pull/106621) ([groeneai](https://github.com/groeneai)).
* `MergeTree` テーブルに、粒度がゼロでディスク上の marks ファイルが空でないスキップ索引パーツがある場合に、`Too many marks in file ...skp_idx_idx.cmrk4, marks expected 0 (bytes size 0)` によりサーバーが起動に失敗する問題を修正しました。[#106675](https://github.com/ClickHouse/ClickHouse/pull/106675) ([groeneai](https://github.com/groeneai)).
* UNION 内のテーブルが空の場合に、UNION を含むビューへ並列レプリカが適用されない問題を修正しました。[#106900](https://github.com/ClickHouse/ClickHouse/pull/106900) ([devcrafter](https://github.com/devcrafter)).
* 挿入ブロックが完全に重複排除され、競合するパーツの重複排除ノードがすでに削除されていた場合 (たとえば、同時実行された `DROP PARTITION` による削除) 、`ReplicatedMergeTree` テーブルへの同期挿入中に発生する可能性があった論理エラー例外 `conflicted_part_name.has_value()` を修正しました。[#107026](https://github.com/ClickHouse/ClickHouse/pull/107026) ([groeneai](https://github.com/groeneai)).
* `enable_filesystem_query_cache_limit = 1` で作成されたファイルシステムキャッシュディスク経由で `MergeTree` テーブルを読み取る際に発生する、まれな `LOGICAL_ERROR` "Attempt to release query context that does not exist" と、それに伴うサーバークラッシュを修正しました。[#107028](https://github.com/ClickHouse/ClickHouse/pull/107028) ([groeneai](https://github.com/groeneai)).
* 空のパーツを `plain_rewritable` ディスクへ移動する際に発生するサーバークラッシュを修正しました (たとえば、`remove_empty_parts = 0` により保持されている空のパーツに対して `ALTER TABLE ... MOVE PARTITION ... TO DISK` を実行した場合) 。[#107040](https://github.com/ClickHouse/ClickHouse/pull/107040) ([groeneai](https://github.com/groeneai)).
* `adaptive_write_buffer_initial_size` に極端に大きな値が設定されている場合に、`MergeTree` テーブルへの `INSERT` 時に発生する `Logical error: Too large size passed to allocator` 例外を修正しました。アダプティブ書き込みバッファの初期サイズは、バッファの最大サイズに制限されるようになりました。[#107104](https://github.com/ClickHouse/ClickHouse/pull/107104) ([groeneai](https://github.com/groeneai)).
* コメント変更と `MODIFY SETTING`/`RESET SETTING` が混在する `ALTER TABLE ... ON CLUSTER` バッチ (たとえば、`MODIFY COMMENT 'x', MODIFY SETTING old_parts_lifetime = 123`) がリーダーレプリカにのみ適用され、他のレプリカとの不整合を引き起こす問題を修正しました。また、位置指定またはカラムごとの `SETTINGS` を伴う `MODIFY COLUMN ... COMMENT` がローカルのコメントのみのメタデータ変更として誤分類され、カラムの並べ替えがレプリケーションメタデータに反映されず、レプリカの再起動時に `INCOMPATIBLE_COLUMNS` を引き起こす可能性がある問題も修正しました。[#107142](https://github.com/ClickHouse/ClickHouse/pull/107142) ([groeneai](https://github.com/groeneai)).
* `group_by_use_nulls` 設定を有効にして `grouping` 関数を使用するクエリで発生する `Argument ... of GROUPING function is not a part of GROUP BY clause` エラーを修正しました。[#107206](https://github.com/ClickHouse/ClickHouse/pull/107206) ([KochetovNicolai](https://github.com/KochetovNicolai)).
* 非レプリケーションの `MergeTree` テーブルでレガシー並列レプリカが有効な場合の論理更新 `UPDATE` クエリを修正しました。[#107246](https://github.com/ClickHouse/ClickHouse/pull/107246) ([groeneai](https://github.com/groeneai)).
* SYSTEM SYNC DATABASE REPLICA ... STRICT で発生する可能性がある論理エラー例外を修正し、STRICT 修飾子がデータベースレプリカに実際に適用されるようにしました。[#107344](https://github.com/ClickHouse/ClickHouse/pull/107344) ([PedroTadim](https://github.com/PedroTadim)).
* スカラーサブクエリに同じテーブルを読み取るネストされたサブクエリが含まれる場合に、並列レプリカで発生する可能性がある `Logical error: 'Duplicate announcement received for replica number N'` を修正しました。[#107381](https://github.com/ClickHouse/ClickHouse/pull/107381) ([groeneai](https://github.com/groeneai)).
* 未適用の論理更新 `UPDATE` パッチが残っているパーティションに対して `REPLACE PARTITION`、`MOVE PARTITION`、`DETACH PARTITION`、または `DETACH PART` を実行した場合に、プレーン (非レプリケーション) の `MergeTree` で発生するサイレントなデータ損失を修正しました。これらの操作は、コミット済みの更新を黙って元に戻すのではなく、`ReplicatedMergeTree` と同様に `ALTER TABLE ... APPLY PATCHES` を案内してコマンドを拒否するようになりました。[#107386](https://github.com/ClickHouse/ClickHouse/pull/107386) ([groeneai](https://github.com/groeneai)).
* PostgreSQL のデータベース名またはテーブル名に大文字が含まれる場合に、`MaterializedPostgreSQL` が変更のレプリケーションを停止する問題を修正しました (`pgoutput` コンシューマーが、大文字小文字を保持する publication と一致しない、引用符なしで小文字化された publication 名を要求していました) 。[#107423](https://github.com/ClickHouse/ClickHouse/pull/107423) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* `optimize_if_transform_strings_to_enum = 1` の場合に、文字列リテラルに対する最適化済みの `if`/`transform` 式が Distributed テーブルまたは並列レプリカにおける `GROUP BY` あるいは `ORDER BY` のキーとなると発生する `THERE_IS_NO_COLUMN` エラーを修正しました。 [#107455](https://github.com/ClickHouse/ClickHouse/pull/107455) ([groeneai](https://github.com/groeneai)).
* `CREATE TABLE ... CLONE AS`、`ATTACH PARTITION ... FROM`、または `MOVE PARTITION ... TO TABLE` により、プレーンな `MergeTree` から `ReplacingMergeTree`、`SummingMergeTree`、または `AggregatingMergeTree` へパーツを取り込んだ後に、`SELECT ... FINAL` および `OPTIMIZE TABLE ... FINAL` が重複行を返す問題を修正しました。ソースと宛先のエンジンが異なる場合、取り込んだパーツのマージレベルを 0 にリセットするようになり、次回のマージ時に宛先側で重複除去されます。 [#107481](https://github.com/ClickHouse/ClickHouse/pull/107481) ([groeneai](https://github.com/groeneai)).
* ReplicatedMergeTree でクォーラムを待機中のクエリキャンセルをより適切に追跡するようになりました。 [#107513](https://github.com/ClickHouse/ClickHouse/pull/107513) ([nickitat](https://github.com/nickitat)).
* rapidjson ライブラリ (`prettyPrintJSON`、`JSONMergePatch`、および rapidjson JSON パーサー) が使用するメモリをメモリトラッカーに計上するようにし、異常な入力を無制限にメモリ割り当てするのではなく `MEMORY_LIMIT_EXCEEDED` で拒否するようにしました。 [#107555](https://github.com/ClickHouse/ClickHouse/pull/107555) ([Algunenano](https://github.com/Algunenano)).
* `Dynamic` カラムを持つテーブルの mutation によって生成された `MergeTree` パーツをマージまたは読み取る際に発生する可能性があった `Logical error: Stream ... variant_discr ... is not found` を修正しました。 [#107562](https://github.com/ClickHouse/ClickHouse/pull/107562) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* `optimize_prewhere_after_pushdown` が有効な場合に、明示的な `PREWHERE` と `WHERE` の両方を指定して `file()`、`url()`、またはオブジェクトストレージのログソースをクエリすると発生する `LOGICAL_ERROR` (`updateFormatPrewhereInfo called more than once`) を修正しました。 [#107568](https://github.com/ClickHouse/ClickHouse/pull/107568) ([groeneai](https://github.com/groeneai)).
* `Replicated` データベース内の `TimeSeries` テーブルに関わる `RENAME TABLE`、`RENAME DATABASE`、または `CREATE OR REPLACE TABLE` で発生する可能性があったサーバー例外 (`Digest does not match` 論理エラー) を修正しました。`TimeSeries` テーブルのリネームがサポートされるようになりました。 [#107583](https://github.com/ClickHouse/ClickHouse/pull/107583) ([groeneai](https://github.com/groeneai)).
* `Replicated` データベース内の `TimeSeries` テーブルに対する `DROP TABLE` を修正しました。以前は内部テーブルが残り、バックグラウンドの削除タスクが永遠に再試行されていました (`DROP TABLE ... SYNC` はハングしていました) 。 [#107604](https://github.com/ClickHouse/ClickHouse/pull/107604) ([groeneai](https://github.com/groeneai)).
* 複製パーツ取得プロトコルにおいて、悪意のあるレプリカがパーツディレクトリ外にファイルを書き込める可能性があった 2 件のパストラバーサル問題を修正しました。 [#107606](https://github.com/ClickHouse/ClickHouse/pull/107606) ([antonio2368](https://github.com/antonio2368)).
* プレーンな `MergeTree` テーブルでの `ALTER TABLE ... REPLACE PARTITION` により、サーバー再起動後に置換されたパーツが復活し、テーブルが置換後の行と古い行の両方を返していた問題を修正しました。 [#107623](https://github.com/ClickHouse/ClickHouse/pull/107623) ([groeneai](https://github.com/groeneai)).
* `TO` ターゲットテーブルが view の `SELECT` で生成される `Enum` よりも広い `Enum` のカラムを宣言している materialized view への insert 時に発生する `LOGICAL_ERROR` ("Block structure mismatch ... between `ConvertingTransform` and `RemovingReplicatedColumnsTransform`") を修正しました。有効な `Enum` の拡張を、直接の `INSERT ... SELECT` と同様に materialized view の insert パスでも適用するようになりました。 [#107648](https://github.com/ClickHouse/ClickHouse/pull/107648) ([groeneai](https://github.com/groeneai)).
* 同一の式に展開される複数の `ALIAS` カラムを持つ `Distributed` テーブル (または並列レプリカ使用時) へのクエリで、それらを `ORDER BY`/`GROUP BY`/`HAVING` とともに参照した際に発生する `NUMBER_OF_COLUMNS_DOESNT_MATCH` エラーを修正しました。 [#107913](https://github.com/ClickHouse/ClickHouse/pull/107913) ([yakov-olkhovskiy](https://github.com/yakov-olkhovskiy)).
* 読み取り専用テーブルのデータパーツの更新中に一時的なエラーが発生しても、バックグラウンド更新タスクが恒久的に停止しなくなりました。 [#108034](https://github.com/ClickHouse/ClickHouse/pull/108034) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* `index_granularity_bytes` が `AggregateFunction` の状態カラムでも考慮されるようになりました。以前は、この種のカラム (たとえば、`AggregatingMergeTree` テーブルや集約プロジェクションの `uniqExact` 状態) ではグラニュールのバイト上限が無視され、設定上限を大幅に超えるグラニュールが生成されることで、読み取り増幅とクエリ時のメモリ使用量が増加していました。 [#108297](https://github.com/ClickHouse/ClickHouse/pull/108297) ([groeneai](https://github.com/groeneai)).
* 稼働中のレプリカ数が過半数未満の場合に、`insert_quorum = 'auto'` が挿入を事前に拒否しない問題を修正しました。このような挿入は、ローカルパーツへの書き込み後に `UNKNOWN_STATUS_OF_INSERT` でタイムアウトするのではなく、直ちに `TOO_FEW_LIVE_REPLICAS` で失敗するようになりました。 [#108800](https://github.com/ClickHouse/ClickHouse/pull/108800) ([gagandhakrey](https://github.com/gagandhakrey)).
* 重複排除を伴う非同期挿入で、`optimize_on_insert` により挿入ブロックが空になった場合 (たとえば、`SummingMergeTree` で行の合計がゼロになる場合) にサーバーがクラッシュする問題を修正しました。 [#109229](https://github.com/ClickHouse/ClickHouse/pull/109229) ([Diskein](https://github.com/Diskein)).
* マージが `ALTER TABLE ... RENAME COLUMN` と同時に実行された場合、またはカラムの値が論理更新 `UPDATE` によるものだけである場合に、デフォルト式のないカラムのデータが失われる問題を修正しました。このカラムがマージ済みパーツから削除され、読み出したすべての値が NULL になる可能性がありました。 [#109356](https://github.com/ClickHouse/ClickHouse/pull/109356) ([groeneai](https://github.com/groeneai)).
* `GROUPING SETS`、`ROLLUP`、または `CUBE` と並行して `uniqExact` の集約状態をマージする際に、まれにサーバーが終了する問題を修正しました。 [#109389](https://github.com/ClickHouse/ClickHouse/pull/109389) ([groeneai](https://github.com/groeneai)).
* ロールアップマージが無期限に再スケジュールされる問題を修正しました。 [#109410](https://github.com/ClickHouse/ClickHouse/pull/109410) ([Michicosun](https://github.com/Michicosun)).
* マテリアライズド仮想カラムまたは永続仮想カラムを持つテーブルに対する `GROUP BY` ミューテーションの問題を修正しました。 [#109532](https://github.com/ClickHouse/ClickHouse/pull/109532) ([Michicosun](https://github.com/Michicosun)).
* 新たに挿入された (レベル 0 の) パーツを持つテーブルで、`add_minmax_index_for_block_number_column`/`add_minmax_index_for_block_offset_column` によって作成された暗黙の minmax 索引に対して `ALTER TABLE ... MATERIALIZE INDEX` を実行した際に発生する `UNKNOWN_IDENTIFIER: Missing columns: '_block_offset'` エラーを修正しました。失敗する代わりに、これらのパーツに対して索引が構築されるようになりました。 [#110236](https://github.com/ClickHouse/ClickHouse/pull/110236) ([groeneai](https://github.com/groeneai)).
* 読み取り専用のオブジェクトストレージレプリカ (`read_only = true` が設定されたディスク) が `refresh_parts_interval` を通じて新しいパーツを検出しない問題、およびそのようなディスクで `table_disk = true` が "table\_disk is not supported for non-ObjectStorage disks" として拒否される問題を修正しました。 [#110460](https://github.com/ClickHouse/ClickHouse/pull/110460) ([jkartseva](https://github.com/jkartseva)).
* 式で IN 演算子を使用する (別の ALIAS カラムを介する場合を含む) ALIAS カラムを持つテーブルで、ALTER TABLE ... DROP COLUMN、ALTER TABLE ... DELETE/UPDATE ミューテーション、および論理削除の際に発生する LOGICAL\_ERROR ("No set is registered for key") を修正しました。 [#111039](https://github.com/ClickHouse/ClickHouse/pull/111039) ([PedroTadim](https://github.com/PedroTadim)).
* クエリ実行時に MergeTree プロジェクションで行ポリシーが適用されない問題を修正しました。 [#112329](https://github.com/ClickHouse/ClickHouse/pull/112329) ([yariks5s](https://github.com/yariks5s)).
* 直接 I/O を使用する `encrypted` ディスク上の `Compact` パーツの読み取り時に発生し、マージが `system.replication_queue` で停止する原因となっていた `ReadBufferFromEncryptedFile: Wrong file position` 論理エラーを修正しました。 [#112943](https://github.com/ClickHouse/ClickHouse/pull/112943) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* `merge` テーブル関数および `Merge` テーブルエンジンを介して内部データベース `_temporary_and_external_tables` を読み取れる問題を修正しました。この問題により、あるセッションが他のセッションや他のユーザーの一時テーブルを読み取ることができ、古いアナライザパスでは例外も発生していました。現在はデータベース正規表現でこのデータベースがスキップされ、直接アクセスと同様に明示的な指定も拒否されます。 [#113224](https://github.com/ClickHouse/ClickHouse/pull/113224) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* スカラーサブクエリを含む行ポリシーが、`Merge` テーブルを介してテーブルを読み取った後は一度しか評価されず、以降ずっと再利用される問題を修正しました。解析済みのポリシー条件はキャッシュされ、すべてのクエリで共有されますが、`Merge` 経由の読み取りによってキャッシュされた式がインプレースで書き換えられ、同じポリシーを使用する同時実行クエリ間でデータ競合も発生していました。 [#113563](https://github.com/ClickHouse/ClickHouse/pull/113563) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* カスタムキーの並列レプリカを持つ `Distributed` テーブルを含む `Merge` テーブルの読み取り時に発生する `CANNOT_CONVERT_TYPE` エラーを修正しました。 [#113742](https://github.com/ClickHouse/ClickHouse/pull/113742) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* 子テーブルが `IN` を含む `ALIAS` カラムを宣言し、そのカラムのデフォルト値が子テーブル間で異なる `Merge` テーブルを介した読み取り時に発生する `Logical error: No set is registered for key ...` を修正しました。 [#113757](https://github.com/ClickHouse/ClickHouse/pull/113757) ([groeneai](https://github.com/groeneai)).
* mergeTreeIndex テーブル関数により、ソーステーブルの SELECT 行ポリシーで非表示となる行の主キーおよび minmax 索引値が公開される行ポリシーのバイパスを修正しました。現在、行ポリシーを持つテーブルに対する mergeTreeIndex の読み取りは拒否されます。 [#115304](https://github.com/ClickHouse/ClickHouse/pull/115304) ([yariks5s](https://github.com/yariks5s)).

<h3 id="data-type-and-serialization-fixes">
  データ型およびシリアライゼーションの修正
</h3>

* `LowCardinality` 数値型を使用した際に `ARRAY JOIN` で発生する例外を修正しました。 [#91784](https://github.com/ClickHouse/ClickHouse/pull/91784) ([Ergus](https://github.com/Ergus)).
* `data_type_default_nullable = 1` の場合に、`Replicated` データベース内または `ON CLUSTER` 経由でテーブルを作成すると、`NOT NULL` カラムが暗黙的に `Nullable` として作成される問題を修正しました。 [#97572](https://github.com/ClickHouse/ClickHouse/pull/97572) ([xiaohuanlin](https://github.com/xiaohuanlin)).
* ビューが `integer` カラムを `Bool` カラムにマッピングしている場合に、`query_plan_enable_optimizations = 0` を指定した `MaterializedView` クエリが誤った行数を返す問題を修正しました。 [#100692](https://github.com/ClickHouse/ClickHouse/pull/100692) ([Maximus5](https://github.com/Maximus5)).
* デフォルト以外のシリアライゼーションを持つカラムの mutation 後に、part メタデータに不整合が生じる問題を修正しました。 [#102817](https://github.com/ClickHouse/ClickHouse/pull/102817) ([korowa](https://github.com/korowa)).
* `Nullable(Tuple(...))` カラムから抽出されたサブカラムを読み取る際の `NULL` 伝播を修正しました。たとえば、`tup Nullable(Tuple(s Nullable(String)))` の場合、`SELECT tup.s` は外側のタプルが `NULL` の行で、不要な値ではなく正しく `NULL` を返すようになりました。これは、`NULL` を表現できるすべての要素型、すなわち `Nullable`、`Dynamic`、`Variant`、`LowCardinality(Nullable(...))` を対象としています。 [#102942](https://github.com/ClickHouse/ClickHouse/pull/102942) ([nihalzp](https://github.com/nihalzp)).
* `recursiveRemoveLowCardinality` がカスタムジオメトリ型名 (例: `LineString` と `Ring`、`MultiLineString` と `Polygon`) を消去し、ジオメトリ型を誤って解釈する問題を修正しました。 [#103041](https://github.com/ClickHouse/ClickHouse/pull/103041) ([jh0x](https://github.com/jh0x)).
* Dictionary に値が存在しない `Nullable` キーカラムを使用して呼び出した場合に、`dictGetOrNull` が `SELECT` projection 内の他のカラムを暗黙的に `NULL` で上書きする問題を修正しました。この関数は入力とエイリアス化された null map をその場で変更していましたが、現在は変更前に結果カラムをディープクローンします。 [#104327](https://github.com/ClickHouse/ClickHouse/pull/104327) ([groeneai](https://github.com/groeneai)).
* `optimize_skip_unused_shards_rewrite_in` が有効な場合に、分片キーに空の `IN` タプルを含む分散クエリで発生する例外を修正しました。 [#104966](https://github.com/ClickHouse/ClickHouse/pull/104966) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* `Float64` リテラルとの比較を含む、`Float32` カラムに対する count-min 統計の `PREWHERE` 選択性推定を修正しました。 [#105047](https://github.com/ClickHouse/ClickHouse/pull/105047) ([hanfei1991](https://github.com/hanfei1991)).
* `quantileExactWeightedInterpolated`、`quantileDD`、または `quantilePrometheusHistogram` の aggregate state を、対応する複数形の `quantilesXxxMerge` とマージする際 (およびその逆) に発生する `ILLEGAL_TYPE_OF_ARGUMENT` を修正しました。これら 3 つの quantile ファミリーの単数形と複数形のバリアントは同じ内部 aggregate state を共有していますが、内部名マッピングテーブルに記載されていなかったため、関数間での state マージおよびこれらのファミリーに対する関数融合最適化が拒否されていました。 [#105189](https://github.com/ClickHouse/ClickHouse/pull/105189) ([groeneai](https://github.com/groeneai)).
* 結果が `Date` の範囲外となる `Date32` および `DateTime64` 引数に対する `toStartOfWeek`、`toLastDayOfWeek`、`toMonday`、`toStartOfMonth`、`toLastDayOfMonth`、`toStartOfQuarter`、`toStartOfYear` の誤った結果を修正しました。任意の日付にオーバーフローするのではなく、`1970-01-01` より前の結果は `1970-01-01` に、`2149-06-06` より後の結果は `2149-06-06` にクランプされるようになりました。また、範囲外の値を含む `Date32` または `DateTime64` キーに対する `WHERE` 句でこれらの関数を使用した際に、パーツおよびグラニュールが誤って除外されることで不正なクエリ結果が返される問題も修正しました。 [#105244](https://github.com/ClickHouse/ClickHouse/pull/105244) ([yariks5s](https://github.com/yariks5s)).
* 第1引数が、すべての選択肢が第2引数の型と互換性のない `Variant` の配列であり、`variant_throw_on_type_mismatch` が無効な場合に発生する `arrayRemove` の論理エラーを修正しました。比較を "決して等しくない" として扱い、サーバー側の `assertTypeEquality` エラーを発生させる代わりに、配列を変更せずに返すようになりました。 [#105248](https://github.com/ClickHouse/ClickHouse/pull/105248) ([groeneai](https://github.com/groeneai)).
* Dynamic に対する `toFloat64`/`toUInt32`/`toString` などが `cast_keep_nullable` を無視する問題を修正しました。 [#105467](https://github.com/ClickHouse/ClickHouse/pull/105467) ([Avogar](https://github.com/Avogar)).
* Nullable 引数とともに `GROUP BY ... WITH ROLLUP`、`WITH CUBE`、または `WITH TOTALS` を使用した場合に、`uniqStateOrNull` / `uniqStateOrDefault` / `uniqOrNullState` (および `uniq` に対する類似の combinator チェーン) で発生するサーバーの segfault を修正しました。 [#105470](https://github.com/ClickHouse/ClickHouse/pull/105470) ([groeneai](https://github.com/groeneai)).
* 負の (エポック以前の) `DateTime64` 値に対して `toStartOfMillisecond` および `toStartOfMicrosecond` がほぼ1秒ずれた結果を返す問題を修正し、`INT64_MIN` 付近の `DateTime64` 入力に対する `toStartOfSecond`、`toStartOfMillisecond`、`toStartOfMicrosecond` の `UndefinedBehaviorSanitizer` による符号付き整数オーバーフローも修正しました。 [#105482](https://github.com/ClickHouse/ClickHouse/pull/105482) ([groeneai](https://github.com/groeneai)).
* `JSON` の `singleValueOrNull` 状態をデシリアライズする際にサーバーが終了する問題を修正しました。 [#105535](https://github.com/ClickHouse/ClickHouse/pull/105535) ([Avogar](https://github.com/Avogar)).
* JSON の共有データへの挿入時に `input_format_try_infer_datetimes` が無視される問題を修正しました。 [#105544](https://github.com/ClickHouse/ClickHouse/pull/105544) ([Avogar](https://github.com/Avogar)).
* `JSONExtract` およびテキストのデシリアライゼーションで、範囲外の値に対して `DateTime` がラップアラウンドする問題を修正しました。 [#105551](https://github.com/ClickHouse/ClickHouse/pull/105551) ([Avogar](https://github.com/Avogar)).
* 同じ VALUES 句内でサイズの異なるタプルを String カラムに挿入した際のクラッシュを修正しました。 [#105582](https://github.com/ClickHouse/ClickHouse/pull/105582) ([Avogar](https://github.com/Avogar)).
* NULL 値を含むタイムゾーンを持つ DateTime から toString への変換で発生する NOT\_IMPLEMENTED エラーを修正しました。 [#105587](https://github.com/ClickHouse/ClickHouse/pull/105587) ([yariks5s](https://github.com/yariks5s)).
* Native 入力で不正な flattened `Dynamic` カラムを検証する処理を追加しました。 [#105666](https://github.com/ClickHouse/ClickHouse/pull/105666) ([Avogar](https://github.com/Avogar)).
* 結果型が `Variant` で、第2または第3ブランチが `Int64` に収まる `UInt64` リテラルに対する定数条件の `if` である `if` 式について、クエリプランニング中に発生する `LOGICAL_ERROR` (`Unexpected return type from if`) を修正しました。 [#105680](https://github.com/ClickHouse/ClickHouse/pull/105680) ([groeneai](https://github.com/groeneai)).
* 集計状態のシリアル化時 (例: 並列レプリカ、バイナリ状態フォーマッタ経由の `sumMapState`、外部集計) に、`Nested(... Nullable(Decimal(P, S)))` カラムに対する `sumMap` および `sumMapWithOverflow` で発生する `Bad get: has Decimal32, requested Decimal128` を修正しました。 [#105816](https://github.com/ClickHouse/ClickHouse/pull/105816) ([groeneai](https://github.com/groeneai)).
* `ALTER MODIFY COLUMN ... LowCardinality(...)` ミューテーションより前にキューに登録されたオンザフライ `UPDATE`/`DELETE` ミューテーションが保留されているテーブルで `apply_mutations_on_fly = 1` を使用した際に発生する、`Expected ColumnLowCardinality, got String` / `Bad cast from type DB::ColumnString to DB::ColumnLowCardinality` エラーを修正しました。 [#105847](https://github.com/ClickHouse/ClickHouse/pull/105847) ([Algunenano](https://github.com/Algunenano)).
* 新しいアナライザで、`IN Array(...)` フィルターを使用する分散クエリで発生する `Cannot find column` エラーを修正しました。 [#105894](https://github.com/ClickHouse/ClickHouse/pull/105894) ([KochetovNicolai](https://github.com/KochetovNicolai)).
* ある `ALTER` によってカラムが同時に削除されている間に、`STATISTICS` を持つカラムを `Nullable` に変更するとサーバーが終了する問題を修正しました。 [#105917](https://github.com/ClickHouse/ClickHouse/pull/105917) ([groeneai](https://github.com/groeneai)).
* `RowBinaryWithNamesAndTypes` の型デコード時 (`input_format_binary_decode_types_in_binary_format = 1`) に範囲外の `IntervalKind` バイトを拒否し、無効な kind を持つ `DataTypeInterval` の構築によって後続のハッシュパスで未定義動作が発生する可能性がある代わりに、明確な `INCORRECT_DATA` エラーを返すようにしました。 [#106261](https://github.com/ClickHouse/ClickHouse/pull/106261) ([groeneai](https://github.com/groeneai)).
* Nullable(JSON) で、'null' サブカラムを null-map ではなく JSON path として読み取るようにしました。 [#106295](https://github.com/ClickHouse/ClickHouse/pull/106295) ([Avogar](https://github.com/Avogar)).
* すべての配列が空で、キーが定数ではないカラムをハッシュ化する際に `sipHash64Keyed`、`sipHash128Keyed`、`sipHash128ReferenceKeyed` で発生する範囲外読み取りを修正しました。 [#106355](https://github.com/ClickHouse/ClickHouse/pull/106355) ([Algunenano](https://github.com/Algunenano)).
* 第 2 引数が非定数タプルである `IN` の第 1 引数で、スカラーサブクエリを使用できなかった問題を修正しました。 [#106610](https://github.com/ClickHouse/ClickHouse/pull/106610) ([yariks5s](https://github.com/yariks5s)).
* `LowCardinality(DateTime)` カラムをテキストフォーマット (CSV、TSV、JSONEachRow など) にシリアル化する際に `session_timezone` が無視される問題を修正しました。以前は、サーバー上で `LowCardinality(DateTime)` カラムが最初に書き込まれた後、このカラムを書き込む以降のすべてのクエリで、`session_timezone` に関係なく、最初に検出されたタイムゾーンの現地時刻文字列が表示されていました。 [#106634](https://github.com/ClickHouse/ClickHouse/pull/106634) ([groeneai](https://github.com/groeneai)).
* 条件が定数の `Nullable(Nothing)` 値である場合に `if` および `multiIf` でサーバーが終了する問題を修正しました。 [#106678](https://github.com/ClickHouse/ClickHouse/pull/106678) ([groeneai](https://github.com/groeneai)).
* `sumMap` / `-Map` コンビネータが、`SimpleAggregateFunction(sum, T)` や `Bool` などのカスタム名付き数値値型を `ILLEGAL_TYPE_OF_ARGUMENT: Values for -Map cannot be summed` で拒否し、以前は動作していた集計を壊すようにした変更を元に戻しました。 [#106729](https://github.com/ClickHouse/ClickHouse/pull/106729) ([fm4v](https://github.com/fm4v)).
* キーカラムが `LowCardinality` で、述語定数が `LowCardinality(Nullable(...))` の場合に、`MinMax` 統計によるパーツの枝刈り中に発生する `Bad cast` 例外を修正しました。 [#106793](https://github.com/ClickHouse/ClickHouse/pull/106793) ([groeneai](https://github.com/groeneai)).
* 非 ASCII の入力バイトを含む場合に `parseDateTime` で発生する論理エラーを修正しました。 [#106856](https://github.com/ClickHouse/ClickHouse/pull/106856) ([Avogar](https://github.com/Avogar)).
* 集約関数の引数を Nullable 型にキャストする必要がある場合に、`optimize_rewrite_aggregate_function_with_if` 最適化を伴う分散クエリで発生する `THERE_IS_NO_COLUMN` 例外を修正しました。 [#106908](https://github.com/ClickHouse/ClickHouse/pull/106908) ([yakov-olkhovskiy](https://github.com/yakov-olkhovskiy)).
* 重みの Array に大きな整数値が含まれる場合に `arrayLevenshteinDistanceWeighted` および `arraySimilarity` で発生する符号付き整数オーバーフロー (未定義動作) を修正しました。整数の重みに対する重み付き距離はより大きな整数型で累積されるようになったため、大きな整数の重みでもオーバーフローせず、正確さが維持されます。 [#106934](https://github.com/ClickHouse/ClickHouse/pull/106934) ([groeneai](https://github.com/groeneai)).
* ローカルストレージの順序がグローバル順序と異なる `Map` バリアントを持つ `Variant` カラムを含むソート済みブロックのマージ時に発生するクラッシュ (`Source column is not Map` / `SIGSEGV`) を修正しました。 [#107011](https://github.com/ClickHouse/ClickHouse/pull/107011) ([groeneai](https://github.com/groeneai)).
* 遅延マテリアライゼーションによってソートカラムより前に別のカラムが配置された場合に、`ORDER BY <numeric column> ... LIMIT n` クエリで発生する `TYPE_MISMATCH` エラー ("Cannot convert string ... to type ...") を修正しました。上位 K のしきい値は正しいソートカラムから読み取られるようになりました。 [#107060](https://github.com/ClickHouse/ClickHouse/pull/107060) ([groeneai](https://github.com/groeneai)).
* 異なる型のカラム間で解放済みのカラム名を再利用する複合 `ALTER TABLE ... RENAME COLUMN a TO b, RENAME COLUMN c TO a` (「スワップ」) を修正しました。マテリアライズされた part に誤ったカラム型が記録されていたため、後続の `SELECT` が `Conversion between numeric types and IPv6 is not supported` で失敗するか、debug build では part の読み込み時に中断していました。 [#107064](https://github.com/ClickHouse/ClickHouse/pull/107064) ([groeneai](https://github.com/groeneai)).
* 境界値の Array に `NaN` が含まれる場合の `roundDown` 関数の非決定論的な結果を修正しました。同じ入力値でも、バッチ内の周囲の行に応じて有限の境界値または `NaN` が返されることがありました。`NaN` の境界値は無視されるようになり、結果は有限の境界値のみに依存します。 [#107065](https://github.com/ClickHouse/ClickHouse/pull/107065) ([groeneai](https://github.com/groeneai)).
* 補間された分位点が小数で範囲内にある場合に、`Date` および `DateTime` 引数に対して `quantileTDigest` と `quantileTDigestWeighted` が `DECIMAL_OVERFLOW` をスローする問題を修正しました (たとえば、すべての値が型に収まる場合の `quantileTDigestWeighted(date, weight)`) 。小数の結果は `quantilesTDigestWeighted` と一致するよう結果型に切り捨てられるようになり、実際に範囲外の値では引き続きエラーが発生します。 [#107066](https://github.com/ClickHouse/ClickHouse/pull/107066) ([groeneai](https://github.com/groeneai)).
* `Enum8`/`Enum16` 型定義で範囲外の整数値が暗黙的に切り捨てられる問題を修正しました。`Enum8('a' = 200)` は、暗黙的に `Enum8('a' = -56)` を作成するのではなく、`ARGUMENT_OUT_OF_BOUND` をスローするようになりました。 [#107081](https://github.com/ClickHouse/ClickHouse/pull/107081) ([groeneai](https://github.com/groeneai)).
* 複数の行が先頭カラムで同順位となる場合に、`Nullable` カラムでソートする複数カラムの `ORDER BY ... LIMIT` クエリで発生する誤った行順序 (および debug build での `LOGICAL_ERROR` "Rows are not sorted with permutation") を修正しました。 [#107094](https://github.com/ClickHouse/ClickHouse/pull/107094) ([groeneai](https://github.com/groeneai)).
* `ALTER TABLE ... ADD COLUMN` 後、または未完了の `ALTER TABLE ... CLEAR COLUMN` ミューテーションがオンザフライで適用された後など、デフォルト値で埋められた `Array(Tuple(...))` カラムの読み取り時に発生する `Logical error: 'Bad cast from type DB::ColumnVector<...> to DB::ColumnTuple'` を修正しました。[#107232](https://github.com/ClickHouse/ClickHouse/pull/107232) ([groeneai](https://github.com/groeneai)).
* `CREATE TABLE` 時に、TTL 式での `AggregateFunction` カラムのサポートされていない使用 (例: `TTL toDateTime(state)`) を拒否するようにし、後の TTL 実行時に `ILLEGAL_TYPE_OF_ARGUMENT` で失敗する問題を修正しました。これには、`Variant` の代替型や `Dynamic` 値に含まれる状態も含まれます。`finalizeAggregation` など、状態を認識する有効なコンシューマーは引き続き許可されます。[#107366](https://github.com/ClickHouse/ClickHouse/pull/107366) ([Ria-K912](https://github.com/Ria-K912)).
* `Decimal` のサイズ引数を指定した `arrayResize` を修正しました。サイズは未スケーリングの内部表現ではなく実際の値として解釈されるようになりました (例: `arrayResize([1, 2, 3], 1.5::Decimal(2, 1))` は 1 要素を返します) 。[#107389](https://github.com/ClickHouse/ClickHouse/pull/107389) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* `ALTER MODIFY COLUMN ... LowCardinality(...)` ミューテーションの前に、対象カラムが先行するオンザフライ `UPDATE` の関数入力としても読み取られる、保留中のオンザフライ `UPDATE` があるテーブルで `apply_mutations_on_fly = 1` を使用した場合に発生する `LOGICAL_ERROR: Unexpected return type from materialize` (および類似の型不一致エラー) を修正しました。[#107475](https://github.com/ClickHouse/ClickHouse/pull/107475) ([groeneai](https://github.com/groeneai)).
* Arrow/ORC データを `LowCardinality(Nullable(...))` カラムに挿入する際に、NULL 値が暗黙的に空文字列へ変換される問題を修正しました。これは 26.5 で導入されたリグレッションです。[#107532](https://github.com/ClickHouse/ClickHouse/pull/107532) ([Ergus](https://github.com/Ergus)).
* `make_distributed_plan = 1` を含むクエリが、両側に共通の型がない関数でラップされたキーで結合する場合に発生する `LOGICAL_ERROR` ("Input nodes size mismatch in dag") を修正しました (例: 右側のキーが `UInt64` である `ON intDiv(-1, t1.key) = t2.key`) 。[#107701](https://github.com/ClickHouse/ClickHouse/pull/107701) ([groeneai](https://github.com/groeneai)).
* サーバー設定 `insert_deduplication_version = new_unified_hash` 使用時に、`String` および `Array` カラムに対する挿入の重複排除で誤ったハッシュが計算される問題を修正しました。重複排除ハッシュが挿入ブロック内の行'の位置に依存していたため、同一の挿入でも重複排除に失敗する可能性がありました。[#107915](https://github.com/ClickHouse/ClickHouse/pull/107915) ([CheSema](https://github.com/CheSema)).
* `LowCardinality` 引数を使用して `Dynamic` キーを持つ `Map` を検索する際に、`has` でサーバーが終了する問題を修正しました。[#107956](https://github.com/ClickHouse/ClickHouse/pull/107956) ([groeneai](https://github.com/groeneai)).
* `PREWHERE` とともに使用される `Map` サブカラムのパフォーマンスリグレッションを修正しました。[#107988](https://github.com/ClickHouse/ClickHouse/pull/107988) ([Avogar](https://github.com/Avogar)).
* `accurateCastOrNull` または `accurateCastOrDefault` を使用して、`Tuple` 内にネストされた `Dynamic` または `Variant` カラムを非 `Nullable` 要素型にキャストする際の論理エラーを修正しました。[#108061](https://github.com/ClickHouse/ClickHouse/pull/108061) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* スパースに格納されたカラムに対し、`LIKE` クエリが直接読み取りのフォールバックパス経由で `text` インデックスを読み取る際に発生する `Bad cast from type DB::ColumnSparse to DB::ColumnVector<char8_t>` 論理エラー例外を修正しました。[#108068](https://github.com/ClickHouse/ClickHouse/pull/108068) ([groeneai](https://github.com/groeneai)).
* 非定数または false の条件を指定した `ALTER UPDATE col = ... WHERE <cond>` の後に `ALTER MODIFY COLUMN col <new type>` を実行した場合、`apply_mutations_on_fly = 1` でカラムを読み取る際に発生する `LOGICAL_ERROR` ("Unexpected return type from if") を修正しました。[#108128](https://github.com/ClickHouse/ClickHouse/pull/108128) ([groeneai](https://github.com/groeneai)).
* `Int64` の範囲の限界に近い極端な `DateTime64` 値に対して、`hour` および `minute` 単位で `dateDiff` を使用した際に発生する `signed integer overflow` (未定義動作) を修正しました。[#108229](https://github.com/ClickHouse/ClickHouse/pull/108229) ([groeneai](https://github.com/groeneai)).
* `Array(Dynamic)` または `Array(Variant)` を `accurateCastOrNull` で `QBit` にキャストする際に発生するサーバー例外 (`IColumn::insertFrom` の `Logical error`) を修正しました。例: `accurateCastOrNull(CAST(range(114), 'Array(Dynamic)'), 'QBit(Float32, 114)')`。[#108288](https://github.com/ClickHouse/ClickHouse/pull/108288) ([groeneai](https://github.com/groeneai)).
* タイムゾーンを指定した `parseDateTimeBestEffort` が、`toString(Nullable(DateTime64))` の NULL 行で CANNOT\_PARSE\_DATETIME を送出する問題を修正しました。[#108310](https://github.com/ClickHouse/ClickHouse/pull/108310) ([yariks5s](https://github.com/yariks5s)).
* `max_parser_depth` を大きな値に設定した場合に、`[[[ ... ]]]` や `array(array( ... ))` などの深くネストした式によって発生するサーバークラッシュ (スタックオーバーフロー) を修正しました。[#108493](https://github.com/ClickHouse/ClickHouse/pull/108493) ([Algunenano](https://github.com/Algunenano)).
* プロジェクションの作成後に `ALTER TABLE ... ADD COLUMN ... DEFAULT` で追加されたカラムを読み取る際、`SELECT *` プロジェクションがその `DEFAULT` 値 (例: `-1`) ではなくカラム型のデフォルト値 (例: `0`) を返す問題を修正しました。基となるテーブルからの読み取りはすでに正しく、プロジェクションの再構築前に影響を受けたのはプロジェクションが処理した読み取りだけでした。[#108569](https://github.com/ClickHouse/ClickHouse/pull/108569) ([tiandiwonder](https://github.com/tiandiwonder)).
* `LowCardinality(FixedString)` (または `LowCardinality(Nullable(FixedString))`) のキーカラムがキー内で関数によってラップされている場合、パーティションおよび主キーのプルーニングが暗黙的に無効になる問題を修正しました。たとえば、`PARTITION BY sipHash64(k) % N` と `WHERE k = 'literal'` の場合です。このようなクエリでは、パーティションをプルーニングせず、すべてのパーティションをスキャンしていました。[#108777](https://github.com/ClickHouse/ClickHouse/pull/108777) ([groeneai](https://github.com/groeneai)).
* これに依存する比較操作を修正するため、バケット化された Map シリアライゼーションで元のキー順序を保持します。[#109178](https://github.com/ClickHouse/ClickHouse/pull/109178) ([Avogar](https://github.com/Avogar)).
* `Arrow`、`ArrowStream`、`Avro` 形式、およびレガシーの `ORC`、`Parquet` リーダーにおいて、null 許容の struct カラムに対するスキーマ推論が、許可されていない `Nullable(Tuple)` 型 (`allow_experimental_nullable_tuple_type` が無効) を返す問題を修正しました。`DESCRIBE` は `CREATE TABLE` が拒否する型を返していたため、推定したスキーマを使用したテーブルの作成またはデータの挿入は、`Nullable Tuple type is not allowed` エラーで失敗していました。[#109185](https://github.com/ClickHouse/ClickHouse/pull/109185) ([nihalzp](https://github.com/nihalzp)).
* サーバーがインラインデータ自体を解析する場合 (`send_table_structure_on_insert_with_inline_data = 0`) 、インラインの `VALUES` データを含む `INSERT INTO TABLE FUNCTION` (例: `remote(...)` または `file(...)`) でカラムの `DEFAULT` 値が適用されないバグを修正しました。`DEFAULT` を持つ非 `Nullable` カラムに明示的に `NULL` を挿入すると、宣言されたデフォルト値ではなく `0` になっていました。現在は通常のテーブル `INSERT` および HTTP protocol と同様に動作します。[#109258](https://github.com/ClickHouse/ClickHouse/pull/109258) ([groeneai](https://github.com/groeneai)).
* `groupArrayLastMerge` のセグメンテーション違反を修正しました。集計関数の状態のデシリアライゼーションが検証されるようになり、破損した状態による範囲外アクセスが発生しなくなりました。 [#109485](https://github.com/ClickHouse/ClickHouse/pull/109485) ([mstetsyuk](https://github.com/mstetsyuk)).
* デシリアライゼーション時に破損した集計関数の状態を拒否することで、`largestTriangleThreeBuckets` 集計関数のセグメンテーション違反を修正しました。 [#109492](https://github.com/ClickHouse/ClickHouse/pull/109492) ([mstetsyuk](https://github.com/mstetsyuk)).
* 要求された ClickHouse 型が `Nullable` でラップされている場合 (例: `Nullable(Tuple(...))`) に、null 非許容の `Tuple` を含む Parquet カラムを読み取れず、以前は `TYPE_MISMATCH` で失敗していた問題を修正しました。 [#109615](https://github.com/ClickHouse/ClickHouse/pull/109615) ([groeneai](https://github.com/groeneai)).
* Parquet v3 ネイティブリーダーで、物理的に null 許容の struct カラム (Parquet の OPTIONAL group) を `Nullable(Tuple(...))` として読み取れるようになりました。以前は `TYPE_MISMATCH` が発生していました。 [#109898](https://github.com/ClickHouse/ClickHouse/pull/109898) ([groeneai](https://github.com/groeneai)).
* 深くネストした `Array`/`Tuple`/`Map`/`Object` リテラルのコピーまたは破棄時に発生するサーバークラッシュ (ネイティブスタックオーバーフロー) を修正しました。たとえば、`max_parser_depth` を引き上げた状態で、非常に深くネストしたリテラルを含むクエリを実行した場合に発生していました。 [#110393](https://github.com/ClickHouse/ClickHouse/pull/110393) ([Algunenano](https://github.com/Algunenano)).
* metadata-only の `ALTER MODIFY COLUMN T` により `Nullable(T)` に変更されたカラムで、`optimize_functions_to_subcolumns` 使用時に `IS NULL` / `IS NOT NULL` / `count()` の結果が誤る問題を修正しました。変換前に書き込まれたパートでは、`.null` サブカラムが物理的に存在する親カラムから導出されず、ストレージ型のデフォルト値 (NULL) で埋められていたため、既存の非 null 行が誤って NULL と報告されていました。 [#110584](https://github.com/ClickHouse/ClickHouse/pull/110584) ([groeneai](https://github.com/groeneai)).
* `LowCardinality` のキーカラムが、`LowCardinality` を再導入するネストした `CAST` チェーンでラップされている場合 (例: `WHERE CAST(CAST(s, 'LowCardinality(String)'), 'String') < '5'`) に、主キーの索引解析中に発生する `LOGICAL_ERROR` ("Bad cast from ColumnString to ColumnLowCardinality") を修正しました。debug および sanitizer ビルドではサーバーが中断され、リリースビルドではクエリが失敗していました。 [#111050](https://github.com/ClickHouse/ClickHouse/pull/111050) ([groeneai](https://github.com/groeneai)).
* Apache Arrow Java 19.0.0 未満 (Apache Spark に同梱) で生成された、ネストした `Array` または `Map` カラムが空の `Arrow` および `ArrowStream` データの読み取りを修正しました。以前は、offsets バッファが小さすぎることに関する `INCORRECT_DATA` エラーで拒否されていました。 [#111101](https://github.com/ClickHouse/ClickHouse/pull/111101) ([Algunenano](https://github.com/Algunenano)).
* `Tuple`、`Array`、`Map`、`Nullable`、`Variant` などのコンテナカラム内にネストされた、互換性のある集計状態カラム (例: `quantileState` および `quantilesState(0.9)`) に対する集合演算で発生する、論理エラー `Block structure mismatch` (debug および sanitizer ビルド) および `Illegal types of arguments` エラーを修正しました。 [#111191](https://github.com/ClickHouse/ClickHouse/pull/111191) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* ネイティブプロトコル経由で受信した破損した replicated-index データの検証を追加しました。 [#112331](https://github.com/ClickHouse/ClickHouse/pull/112331) ([Avogar](https://github.com/Avogar)).
* `INSERT` が、パーティション化されたターゲットテーブルへの書き込み前に行数を変更する materialized view を経由する場合に、挿入の重複排除中に発生する範囲外読み取りを修正しました。 [#112649](https://github.com/ClickHouse/ClickHouse/pull/112649) ([CheSema](https://github.com/CheSema)).
* 物理型が宣言精度に対応する型よりも広い `Parquet` `DECIMAL` カラム (例: 物理 `INT64` として保存された `DECIMAL(9, 2)`) を読み取る際の範囲外書き込みを修正しました。このようなファイルは有効な `Parquet` であり、他のライターでも生成されますが、リーダーは宣言精度に基づいて宛先カラムのサイズを決定する一方、デコーダーは物理幅で書き込んでいたため、メモリが破損していました。このようなファイルの読み取り時に値が宣言精度に収まらない場合は、破損したデータを返す代わりに `DECIMAL_OVERFLOW` が発生するようになりました。また、物理型と同等以上の幅を持つ型ヒントを指定すれば、損失なく読み取れるようになりました。 [#113046](https://github.com/ClickHouse/ClickHouse/pull/113046) ([groeneai](https://github.com/groeneai)).
* `PARTITION BY (a)`、`ORDER BY (b)`、`INDEX ix (b * c) TYPE minmax`、`PROJECTION p (SELECT (b) ...)`、`CONSTRAINT c CHECK (a > 0)`、`TTL (d + INTERVAL 10 YEAR)`、`DEFAULT (a + 1)` など、冗長な括弧を含む定義で記述されたテーブルにおいて、`ATTACH PARTITION FROM`、`REPLACE PARTITION`、`MOVE PARTITION TO TABLE`、および `ReplicatedMergeTree` レプリカの追加が、`Tables have different ...`、`METADATA_MISMATCH`、または `INCOMPATIBLE_COLUMNS` により失敗する問題を修正しました。 [#114188](https://github.com/ClickHouse/ClickHouse/pull/114188) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* `http_response_headers` または `additional_table_filters` を含む設定プロファイルなど、`Map` 値を持つ設定を含むアクセスエンティティが、ClickHouse で再読み込みできない形式で保存され、再起動後に恒久的に読み込めなくなるバグを修正しました。 [#114620](https://github.com/ClickHouse/ClickHouse/pull/114620) ([groeneai](https://github.com/groeneai)).
* 空の `String` や数値のゼロなど、要素型のデフォルト値と等しい定数 `LowCardinality` の検索値に対して、`has`、`indexOf`、`countEqual`、`mapContainsKey`、`mapContainsValue`、および `Map` の添字演算が "not found" を返す問題を修正しました。 [#114624](https://github.com/ClickHouse/ClickHouse/pull/114624) ([groeneai](https://github.com/groeneai)).
* `DISTINCT`、`QUALIFY`、ウィンドウ関数、またはプロジェクション内の `arrayJoin` を含むクエリに対して、単純な `GROUP BY ... LIMIT` 最適化 (設定 `optimize_trivial_group_by_limit_query`) が誤った結果を返す問題を修正しました。これらは集約後にグループを消費またはフィルタリングするため、集約を `LIMIT + OFFSET` 個のキーに制限すると、行数が不足したり誤った値が返されたりする可能性がありました。この最適化は、このようなクエリには適用されなくなりました。 [#114695](https://github.com/ClickHouse/ClickHouse/pull/114695) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* デフォルトの `optimize_trivial_count_query = 1` で、`SELECT count(arrayJoin(arr))` が誤った結果を返す問題を修正しました。配列要素数ではなく保存されている行数が返され、`file()` および `url()` ではクエリが `0` を返していました。 [#115227](https://github.com/ClickHouse/ClickHouse/pull/115227) ([groeneai](https://github.com/groeneai)).
* `Nullable` カラムに対する `uniqExact(tuple(x))` など、NULL 許容性を隠す単射関数でラップされた引数に対して、`uniq`、`uniqExact`、`uniqHLL12`、`uniqTheta` が誤った結果を返す問題を修正しました。`optimize_injective_functions_inside_uniq` 最適化によりラップ関数が削除された結果、NULL 行がカウントされずにスキップされていました。 [#115466](https://github.com/ClickHouse/ClickHouse/pull/115466) ([vdimir](https://github.com/vdimir)).
* 同等の主キーが冗長な外側の括弧の有無だけで異なる場合に、KeeperMap リーダーが共有メタデータを受け入れられるようにしました。 [#115642](https://github.com/ClickHouse/ClickHouse/pull/115642) ([skuznetsov-clickhouse](https://github.com/skuznetsov-clickhouse)).

<h3 id="text-index-and-skip-index-fixes">
  テキスト索引とスキップ索引の修正
</h3>

* 複数の `minmax` スキップ索引と `use_skip_indexes_for_disjunctions = 1` を持つ `MergeTree` テーブルで、ネストした `coalesce`/`ifNull` 比較 (例: `WHERE coalesce(a, b, coalesce(c, d), e) = const`) を含むクエリによってサーバーが異常終了する問題を修正しました。`<op>(coalesce(...), const)` のスキップ索引への書き換えが内部の coalesce 引数にも再帰的に適用されるようになり、インデックスごとの `KeyCondition` RPN が、選言追跡コードが想定するテンプレートの RPN と一致するようになりました。[#103929](https://github.com/ClickHouse/ClickHouse/pull/103929) ([groeneai](https://github.com/groeneai)).
* 25.8 で作成され、別の `ALTER TABLE ... ADD COLUMN` で追加されたカラムに対するスキップ索引を含むパーツに対して `ALTER TABLE ... MATERIALIZE INDEX` を実行した際に発生する `NOT_FOUND_COLUMN_IN_BLOCK` を修正しました。強制再計算時に、ミューテーションがパーツ上の既存のすべてのスキップ索引およびプロジェクションで必要なすべてのカラムを正しく読み取るようになりました。[#105039](https://github.com/ClickHouse/ClickHouse/pull/105039) ([groeneai](https://github.com/groeneai)).
* `use_query_condition_cache = 1` (デフォルト) の場合に `SELECT` クエリで発生する、サイレントな過少カウントを修正しました。ブルームフィルタースキップ索引を持つカラムに対する `PREWHERE pk_prefix = X WHERE non_pk IN (...)` 形式のクエリが、`pk_prefix = X` 述語の `QueryConditionCache` を不正な状態にしていたため、その後の通常の `SELECT count() ... WHERE pk_prefix = X` が誤って過少カウントされた結果を返していました。すべての 26.x リリースが影響を受けます。[#105686](https://github.com/ClickHouse/ClickHouse/pull/105686) ([groeneai](https://github.com/groeneai)).
* ベクトル検索クエリでベクトル索引に加えて `minmax` などの別のスキップ索引を使用し、`use_skip_indexes_on_data_read = 1` が設定されている場合に発生する例外を修正しました。[#106473](https://github.com/ClickHouse/ClickHouse/pull/106473) ([shankar-iyer](https://github.com/shankar-iyer)).
* 空のマージ済みパーツのテキスト索引で発生する "Too many marks" を修正しました。[#106867](https://github.com/ClickHouse/ClickHouse/pull/106867) ([azat](https://github.com/azat)).
* `query_plan_optimize_lazy_final` が有効な状態で、`ReplacingMergeTree` テーブルに対して `FINAL` とテキスト索引のフィルターを使用してクエリを実行すると誤った結果になる問題を修正しました。遅延 `FINAL` 最適化で、テキスト索引からのダイレクトリードを再現しない読み取りステップが構築されていたため、フィルターによって一致するすべての行が除外されていました。[#106894](https://github.com/ClickHouse/ClickHouse/pull/106894) ([Ergus](https://github.com/Ergus)).
* `LowCardinality` メンバーを含む `Variant` 定数を、キー式が非単調な決定論的関数であるキーカラム (たとえば `sipHash64(col)` 上の `minmax` スキップ索引) と比較した際に発生する `LOGICAL ERROR` (`Bad cast from type DB::ColumnString to DB::ColumnLowCardinality`) を修正しました。[#107111](https://github.com/ClickHouse/ClickHouse/pull/107111) ([groeneai](https://github.com/groeneai)).
* `use_skip_indexes_for_top_k` 最適化が有効で、ソートカラムに `minmax` スキップ索引を持つパーツから論理削除によって行が削除されている場合に、`ORDER BY <col> LIMIT n` が誤った (多くの場合は空の) 結果を返す問題を修正しました。この最適化では、論理削除されたパーツの古い minmax を、実際の上位行を保持するパーツより上位にランク付けしなくなりました。[#107320](https://github.com/ClickHouse/ClickHouse/pull/107320) ([groeneai](https://github.com/groeneai)).
* Set スキップ索引が LowCardinality カラム上のグラニュールを枝刈りできない問題を修正しました。[#107868](https://github.com/ClickHouse/ClickHouse/pull/107868) ([thevar1able](https://github.com/thevar1able)).
* `use_skip_indexes_on_data_read` 設定は、`compatibility` 設定により 26.1 より前のデフォルト値 (`false`) に戻せるようになりました。これにより、データ読み取りパスによって `minmax`/`set`/`bloom_filter` スキップ索引のマーク範囲の枝刈りが妨げられるパフォーマンスリグレッションを回避できます。[#108330](https://github.com/ClickHouse/ClickHouse/pull/108330) ([egor-click](https://github.com/egor-click)).
* 部分的にマテリアライズされた複数のテキスト索引からの直接読み取りを修正しました。 [#108607](https://github.com/ClickHouse/ClickHouse/pull/108607) ([CurtizJ](https://github.com/CurtizJ)).
* アナライザを使用して `Distributed` エンジンテーブル経由でテーブルをクエリした際、`mapValues(map)` または `mapKeys(map)` に定義されたテキスト索引が暗黙的に使用されない問題を修正しました。この索引はローカルテーブルおよび `cluster()`/`remote()` 経由では使用されていましたが、`Distributed` エンジンテーブル経由のクエリではスキップされていました (`force_data_skipping_indices` を使用すると `INDEX_NOT_USED` で失敗) 。 [#109188](https://github.com/ClickHouse/ClickHouse/pull/109188) ([groeneai](https://github.com/groeneai)).
* 必須の索引引数を省略した場合に `CREATE HYPOTHETICAL INDEX ... TYPE set` (および `ngrambf_v1`/`tokenbf_v1`) でサーバーがクラッシュする問題を修正しました。このようなステートメントは明確なエラーで拒否されるようになりました。 [#109294](https://github.com/ClickHouse/ClickHouse/pull/109294) ([groeneai](https://github.com/groeneai)).
* テキスト索引が存在する場合に、空の検索対象を指定した関数 `has`、`mapContainsKey`、`mapContainsValue` が誤った結果を返す問題を修正しました。 [#110246](https://github.com/ClickHouse/ClickHouse/pull/110246) ([rschu1ze](https://github.com/rschu1ze)).
* マージ対象のパーツのいずれかが空の場合 (たとえば、パーツ内のすべての行を削除するmutationの後) 、テキスト索引を含むパーツのマージ時に発生する `ATTEMPT_TO_READ_AFTER_EOF` エラーを修正しました。 [#112490](https://github.com/ClickHouse/ClickHouse/pull/112490) ([CurtizJ](https://github.com/CurtizJ)).
* `WHERE` 句に多数のドットを含む大きな文字列定数があり、テーブルに `bloom_filter`、`tokenbf_v1`、`ngrambf_v1`、または `text` スキップ索引がある場合に、クエリプラン最適化が停止する問題を修正しました。フィルターカラム名と `JSONAllPaths(...)` の索引カラムを照合する際に、名前をドットで分割するすべてのパターンが列挙されるため、スキップ索引条件の構築が定数の長さに対して二次時間になっていました。 [#113289](https://github.com/ClickHouse/ClickHouse/pull/113289) ([groeneai](https://github.com/groeneai)).
* 行ポリシーがクエリの唯一のフィルターであり、ソートカラムに `minmax` スキップ索引がある場合に、`ORDER BY ... LIMIT` が要求された行数より少ない行、場合によっては0行を返す問題を修正しました。トップK最適化により、行ポリシーが適用される前に読み取り範囲が絞り込まれていました。 [#114073](https://github.com/ClickHouse/ClickHouse/pull/114073) ([alexey-milovidov](https://github.com/alexey-milovidov)).

<h3 id="data-lake-fixes">
  データレイクに関する修正
</h3>

* 外部ツール (例: Spark) によってフォーマットバージョンがアップグレードされた Iceberg テーブルの読み取り時に発生する論理エラー例外を修正しました。 [#100407](https://github.com/ClickHouse/ClickHouse/pull/100407) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* PREWHERE 最適化を有効にした ORC データファイルを含む Iceberg テーブルの読み取り時に発生する例外 (`LOGICAL_ERROR: 'PREWHERE passed to format that doesn't support it'`) を修正しました。 [#101206](https://github.com/ClickHouse/ClickHouse/pull/101206) ([groeneai](https://github.com/groeneai)).
* 同時実行される `Iceberg` メタデータ更新や `DeltaLake` テーブルに対する `merge` 読み取りなど、固定された `datalake_table_state` がない状態で読み取りパイプラインに到達する可能性があるパスを介して `Iceberg` または `DeltaLake` データレイクテーブルを読み取る際に発生する `LOGICAL_ERROR` 例外を修正しました。 [#102033](https://github.com/ClickHouse/ClickHouse/pull/102033) ([groeneai](https://github.com/groeneai)).
* 非同期メタデータ読み込み中に通常のデータベース内で `Iceberg` エンジンテーブルを読み込む際、`DataLakeConfiguration::getCatalog` から断続的に発生する `Logical error: 'Database <name> not found'` を修正しました。 [#103775](https://github.com/ClickHouse/ClickHouse/pull/103775) ([groeneai](https://github.com/groeneai)).
* `show_data_lake_catalogs_in_system_tables` を有効にした DataLake カタログデータベースで、INSERT または DDL 文が存在しないテーブルを参照した際に発生する過剰なカタログ/S3 メタデータ読み取りを修正しました。スペルミスの候補を提示する処理でカタログ全体のテーブルごとの Iceberg メタデータが読み込まれていたため、大規模なカタログではメモリを使い果たす可能性がありました。 [#104124](https://github.com/ClickHouse/ClickHouse/pull/104124) ([il9ue](https://github.com/il9ue)).
* Parquet ファイルの読み取り時に `read_bytes` (および `system.query_log`、進行状況バーなどに表示される派生バイト/秒) が過大になる問題を修正しました。以前の実装では、各チャンクで行グループの合計圧縮サイズを報告していたため、N 個のカラムのうち K 個を読み取ると `N / K` 倍に過大計上されていました。現在は、選択したカラムのみで合計されます。また、以前はデータファイルサイズを報告していなかった Iceberg テーブルのファイルレベルの進行状況追跡も修正しました。 [#105413](https://github.com/ClickHouse/ClickHouse/pull/105413) ([groeneai](https://github.com/groeneai)).
* `iceberg_use_version_hint = 1` を指定せずに別の書き込み元 (`icebergLocal`/`icebergS3` テーブル関数など) がテーブルを更新した後、これを指定して Iceberg テーブルを読み取ると誤った結果が返る問題を修正しました。ファイルが存在する場合はすべての書き込み元で `version-hint.text` が同期されるようになったため、ヒントを使用する後続の読み取り元は最新のスナップショットを参照します。 [#105682](https://github.com/ClickHouse/ClickHouse/pull/105682) ([groeneai](https://github.com/groeneai)).
* Iceberg への書き込みで、`Nullable(T)` パーティションカラム内の NULL 値が保持されるようになりました。以前は、ClickHouse が書き込んだ NULL は、Spark または他の Iceberg 読み取り元で読み戻すと内部型のデフォルト値 (`int` の場合は `0`) として表示されていました。 [#105862](https://github.com/ClickHouse/ClickHouse/pull/105862) ([groeneai](https://github.com/groeneai)).
* 1 つの削除ファイルが複数のデータファイルを参照し、複数の削除ファイルが同じデータファイルに適用される場合に、`Iceberg` v2 の merge-on-read 位置削除で誤った行が返される問題を修正しました。削除エントリは参照先のファイルパスでフィルタリングされるようになりました。 [#105888](https://github.com/ClickHouse/ClickHouse/pull/105888) ([groeneai](https://github.com/groeneai)).
* `DETACH` + `ATTACH` サイクルまたはサーバー再起動後に `IcebergLocal` テーブルエンジンが読み取り専用となり、以降のすべての `INSERT` が `Local object storage Local is readonly. (READONLY)` で失敗する問題を修正しました。 [#106016](https://github.com/ClickHouse/ClickHouse/pull/106016) ([groeneai](https://github.com/groeneai)).
* オブジェクトメタデータにブロブ ETag が含まれていないため、Azure Blob Storage (例: Azure 上の Delta Lake テーブル) でファイルシステムキャッシュが暗黙的に無効化される問題を修正しました。 [#106091](https://github.com/ClickHouse/ClickHouse/pull/106091) ([thewisenerd](https://github.com/thewisenerd)).
* Delta Lake テーブルで、設定済みのストレージ場所の外部にあるオブジェクトにメタデータ経由でアクセスできないよう、パス検証を追加しました。[#106115](https://github.com/ClickHouse/ClickHouse/pull/106115) ([scanhex12](https://github.com/scanhex12)).
* Iceberg パーティションプルーニングで、アナライザーがスカラーサブクエリの結果をソース型と変換先の型が一致する内部的な `_CAST(Const, 'TargetType')` でラップする `WHERE partition_col = (SELECT ... FROM ...)` フィルターを正しく処理するようになりました。以前は、このようなフィルターによりパーティションプルーニングが無効化され、フルテーブルスキャンが実行されていました。[#106204](https://github.com/ClickHouse/ClickHouse/pull/106204) ([groeneai](https://github.com/groeneai)).
* テーブルを含む `Iceberg` REST カタログが誤って空であると報告される問題を修正しました。[#106301](https://github.com/ClickHouse/ClickHouse/pull/106301) ([LefterisXefteris](https://github.com/LefterisXefteris)).
* Parquet V3 ネイティブリーダー使用時に、`SELECT` リストに含まれないカラムに対する `IS NOT NULL` を含む複合 `WHERE` 句で Iceberg または S3 テーブルをクエリすると発生する `NOT_FOUND_COLUMN_IN_BLOCK` 例外を修正しました。[#106443](https://github.com/ClickHouse/ClickHouse/pull/106443) ([tiandiwonder](https://github.com/tiandiwonder)).
* `_file` または `_path` フィルターを使用して Iceberg テーブルから読み取る際に、進行状況が過大に報告される問題を修正しました。以前は、フィルタリングの有無にかかわらず、`total_bytes_to_read` の進行状況にマニフェスト内のすべてのファイルが含まれていました。[#106491](https://github.com/ClickHouse/ClickHouse/pull/106491) ([PedroTadim](https://github.com/PedroTadim)).
* 書き込みブロックのカラム名が最新スキーマのフィールド ID と一致しない `Iceberg` テーブルへの挿入時に発生するサーバー例外 (`std::out_of_range` 論理エラー) を修正しました (例: 同時実行中のライターが `iceberg_metadata_staleness_ms` ウィンドウ内でカラム名を変更した場合) 。サーバーを停止させる代わりに、挿入は明確なクエリエラーで失敗するようになりました。[#107279](https://github.com/ClickHouse/ClickHouse/pull/107279) ([groeneai](https://github.com/groeneai)).
* MsgPack、BSON、ORC、Parquet、JSON、DeltaLake、Iceberg、Paimon 形式で深くネストされたスキーマまたは値を読み取る際に発生する可能性があるサーバースタックオーバーフロー (クラッシュ) を修正しました。このように深くネストされた入力は、例外として拒否されるようになりました。[#107341](https://github.com/ClickHouse/ClickHouse/pull/107341) ([Algunenano](https://github.com/Algunenano)).
* メタデータバージョン間で既存の `schema-id` を異なるスキーマに再バインドするメタデータを持つ Iceberg テーブルの読み取り時に発生するクラッシュ (デバッグビルドでの `LOGICAL_ERROR`) と、結果が誤っていても通知されないバグ (リリースビルド) を修正しました。このようなメタデータは `ICEBERG_SPECIFICATION_VIOLATION` で拒否されるようになりました。[#107370](https://github.com/ClickHouse/ClickHouse/pull/107370) ([groeneai](https://github.com/groeneai)).
* Parquet データファイルに予約済みの行系統カラム (`_row_id` など) を含む Iceberg v3 テーブルの読み取りを修正しました。ネイティブ Parquet リーダーは、テーブルスキーマに含まれない予約済みフィールド ID に対して `ICEBERG_SPECIFICATION_VIOLATION` を発生させなくなりました。[#107377](https://github.com/ClickHouse/ClickHouse/pull/107377) ([gregakinman](https://github.com/gregakinman)).
* ファイルが同時に置き換えられている間にローカルディスクのオブジェクトストレージディレクトリ (例: `local` ディスク上の Iceberg テーブル) を一覧表示すると発生する、不必要な `filesystem error: in last_write_time: No such file or directory` 例外を修正しました。同時に削除されたエントリは、一覧表示を中断するのではなく、一覧から除外されるようになりました。[#107432](https://github.com/ClickHouse/ClickHouse/pull/107432) ([groeneai](https://github.com/groeneai)).
* Azure 経由で Delta Lake テーブルを読み取る際に発生する 'Account must be specified error' を修正しました。[#107620](https://github.com/ClickHouse/ClickHouse/pull/107620) ([SmitaRKulkarni](https://github.com/SmitaRKulkarni)).
* equality delete file を含む Iceberg テーブルの読み取り時にクラッシュする問題を修正しました。equality delete file 内のカラムが Nullable で、テーブルスキーマでは非 Nullable である場合 (またはその逆) 、delete file から読み取った値が未検証のキャスト (カラム型の混同) を介して異なる型のカラムに挿入され、カラムが破損して server がクラッシュしていました。 [#109551](https://github.com/ClickHouse/ClickHouse/pull/109551) ([mstetsyuk](https://github.com/mstetsyuk)).
* decimal (またはその他のパラメータ化された Primitive) 型がメタデータファイルごとに異なる空白でシリアル化されている Iceberg テーブルの読み取り時に、誤って `ICEBERG_SPECIFICATION_VIOLATION` error が発生する問題を修正しました。たとえば、テーブルメタデータでは `decimal(20,0)`、manifest では `decimal(20, 0)` となっている場合です。このような仕様上同等の型文字列は、現在は空白を無視して比較されます。 [#109676](https://github.com/ClickHouse/ClickHouse/pull/109676) ([groeneai](https://github.com/groeneai)).
* default sort order が引用符で囲む必要があるカラム (例: `@timestamp`) を参照する Iceberg テーブルの読み取りを修正しました。このようなテーブルは、生成される Storage `ORDER BY` がエスケープされていないカラム名から構築され、`SYNTAX_ERROR` でパースに失敗するため読み取れませんでした。 [#110233](https://github.com/ClickHouse/ClickHouse/pull/110233) ([groeneai](https://github.com/groeneai)).
* Nullable の `ARRAY` または `MAP` カラムを含む Paimon テーブルの読み取りを修正しました。このようなテーブルは、schema mapper が複合型を `Nullable` でラップしていましたが、ClickHouse ではこれが禁止されているため、まったく読み取れませんでした。その結果、`DESC` と `SELECT` の両方が `Nested type Array(Nullable(Int32)) cannot be inside Nullable type` で失敗していました。Nullable の複合カラムは、現在では非 `Nullable` の複合型にマッピングされ、`NULL` 値は空の値として読み取られます。 [#113450](https://github.com/ClickHouse/ClickHouse/pull/113450) ([groeneai](https://github.com/groeneai)).
* テーブルファイルの書き込み前に Iceberg ネームスペースをカタログに登録するようにしました (SeaweedFS で必要) 。 [#114285](https://github.com/ClickHouse/ClickHouse/pull/114285) ([azat](https://github.com/azat)).

<h3 id="s3-azure-object-storage-fixes">
  S3/Azure/オブジェクトストレージの修正
</h3>

* 並列レプリカを有効にしたクエリで `url`、`s3` などのテーブル関数を使用した際に発生する「Distributed task iterator is not initialized」例外を修正しました。 [#100146](https://github.com/ClickHouse/ClickHouse/pull/100146) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* プランナーが `recursive_with` フラグを設定したものの `WITH` 式を含まない `SELECT` を生成した場合に、クラスターテーブル関数 (`s3Cluster`、`urlCluster`、`fileCluster`、...) で発生する可能性があるサーバーのセグメンテーションフォールトを修正しました。 [#105433](https://github.com/ClickHouse/ClickHouse/pull/105433) ([groeneai](https://github.com/groeneai)).
* `IN (subquery)` 述語に対する `Parquet` および `ORC` のフィルタープッシュダウンを修正し、`file`、`url`、`s3`、およびオブジェクトストレージからの読み取りで、行グループ、ページ、ブルームフィルターのプルーニングが機能するようにしました。 [#105863](https://github.com/ClickHouse/ClickHouse/pull/105863) ([arsenmuk](https://github.com/arsenmuk)).
* リスト取得から読み取りまでの間にリモート S3 オブジェクトがより短い内容で上書きされた場合に、キャッシュの事前ダウンロード中に発生する `LOGICAL_ERROR` 例外を修正しました。 [#106375](https://github.com/ClickHouse/ClickHouse/pull/106375) ([fm4v](https://github.com/fm4v)).
* `s3` テーブル関数が小文字の位置依存 `partition_strategy` (例: `hive`) を暗黙的に無視する問題を修正しました。 [#107297](https://github.com/ClickHouse/ClickHouse/pull/107297) ([jkartseva](https://github.com/jkartseva)).
* `compatibility = '26.6'` を設定した場合 (これにより `hive` パーティション方式が暗黙的に有効化されます) に、`BAD_ARGUMENTS` を発生させるべきところで `S3` およびオブジェクトストレージのテーブルパス内の `{_partition_id}` を暗黙的に受け入れてしまうリグレッションを修正しました。 [#107437](https://github.com/ClickHouse/ClickHouse/pull/107437) ([LefterisXefteris](https://github.com/LefterisXefteris)).
* キー・バリュー引数が重複している場合 (例: `s3('http://...', format = 'CSV', format = 'TSV')`) に、`s3` およびその他のオブジェクトストレージテーブル関数が `BAD_ARGUMENTS` ではなく `LOGICAL_ERROR` をスローする問題を修正しました。 [#107670](https://github.com/ClickHouse/ClickHouse/pull/107670) ([groeneai](https://github.com/groeneai)).
* `s3`/`gcs` テーブル関数の位置依存形式と名前付きシークレット引数形式を混在させた不正なクエリ (例: `s3('url', 'a', 'b', secret_access_key = 'c')`) をフォーマットする際に発生するサーバー例外 (`Logical error: 'index >= result.start'`) を修正しました。 [#107818](https://github.com/ClickHouse/ClickHouse/pull/107818) ([groeneai](https://github.com/groeneai)).
* URL スコープの `<s3>` エンドポイントブロックが最上位の `<s3>` のデフォルト設定より優先されるよう、S3 設定の優先順位を修正しました。 [#109251](https://github.com/ClickHouse/ClickHouse/pull/109251) ([bharatnc](https://github.com/bharatnc)).
* Azure サービスから返される `411 Length Required` エラーを修正しました。Poco ベースの Azure HTTP トランスポートでは、ヘッダーを自ら設定しない SDK クライアント (例: Azure Key Vault) に対し、リクエストボディから `Content-Length` を設定するようになりました。 [#110299](https://github.com/ClickHouse/ClickHouse/pull/110299) ([thevar1able](https://github.com/thevar1able)).

<h3 id="s3queue-fixes">
  S3Queue の修正
</h3>

* バッチに処理不能なファイルが含まれ、かつバッチを処理中として設定する Keeper リクエストが同時に失敗した場合に、`enable_hash_ring_filtering = 1` を有効にした `S3Queue`/`AzureQueue` で発生するサーバークラッシュ (範囲外アクセス) を修正しました。[#108977](https://github.com/ClickHouse/ClickHouse/pull/108977) ([groeneai](https://github.com/groeneai))。
* `SHOW CREATE`、`system.query_log`、サーバーログ、`EXPLAIN` の出力における認証情報の漏洩を修正しました。すべての `S3` ロケーター形式で、任意の引数位置にある `session_token` および Google ADC シークレット、`extra_credentials`/`headers` の値、重複したシークレットキーや式で構築されたシークレットキー、無効な位置依存形式 (フェイルクローズ) 、S3 URL に埋め込まれた認証情報がマスクされるようになりました。これには、明示的 URL および名前付きコレクションの `s3`/`s3Cluster` テーブル関数、S3 をバックエンドとするテーブルエンジン (`S3`、`GCS`、データレイクエンジン、`S3Queue`) 、`S3` データベースエンジン、`BACKUP ... TO S3`、`Backup` データベースエンジンが含まれます。さらに、式で構築された (SQL UDF からインライン化されたものを含む) `encrypt`/`decrypt`/HMAC のシークレット引数は、プロジェクション名、`EXPLAIN QUERY TREE`、`EXPLAIN actions` で非表示になるようになりました。[#109768](https://github.com/ClickHouse/ClickHouse/pull/109768) ([Algunenano](https://github.com/Algunenano))。
* 永続的な処理ノードを使用する `S3Queue`/`AzureQueue` の順序付きモードを修正しました。ストリーミング中にバケットロックが更新されるようになったため、有効期限 (TTL) のクリーンアップ (`persistent_processing_node_ttl_seconds`) によって稼働中のプロセッサのロックが削除されなくなりました。それでもロックの所有権が失われた場合は検出・報告され (論理エラーおよび `ObjectStorageQueueBucketLockLostOwnership` プロファイルイベント) 、ストリーミングは新しいファイルイテレータで復旧します。[#110292](https://github.com/ClickHouse/ClickHouse/pull/110292) ([kssenii](https://github.com/kssenii))。

<h3 id="security-and-access-control-fixes">
  セキュリティとアクセス制御に関する修正
</h3>

* HTTP またはネイティブプロトコル経由で `ENGINE` 句を指定せずに `CREATE TABLE ... TO INNER UUID '...'` を送信した場合に、`CREATE TABLE` 権限を持つ任意のユーザーが引き起こせるサーバークラッシュ (SIGSEGV) を修正しました。同じバグによりクライアントもクラッシュしていました。パーサーは null ポインタを参照解除する代わりに、適切な `BAD_ARGUMENTS` エラーを報告するようになりました。[#105579](https://github.com/ClickHouse/ClickHouse/pull/105579) ([groeneai](https://github.com/groeneai)).
* `allow_experimental_delta_kernel_rs` を有効にして DeltaLake テーブルをクエリする際、無効なバイトを含む認証情報またはオプションが指定されている場合に発生するサーバークラッシュを修正しました (Rust FFI が `extern "C"` 境界をまたいでパニックしていました) 。[#106109](https://github.com/ClickHouse/ClickHouse/pull/106109) ([Algunenano](https://github.com/Algunenano)).
* Arrow IPC フォーマットリーダー (`ArrowColumnToCHColumn`) における複数のヒープ領域外読み取りを修正しました。不正な Arrow ファイルでは、バッファに含まれる行数より多い行数を宣言したり、list/struct/map の子要素の長さを親要素と不整合にしたり、単調増加でないリストオフセットを指定したり、子要素の有効性ビットマップを切り詰めたりすることで、ヒープ割り当ての末尾を越えた読み取りが発生する可能性がありました。これは `file()`、`format()`、テーブル関数、または ArrowFlight 入力を介して、`SELECT` 権限を持つ任意のユーザーが引き起こせます。現在は、生ポインタへのアクセス前にすべてのデータ、オフセット、view-struct、有効性ビットマップのバッファを検証し、list/struct/map の形状とオフセットの整合性を確認します。[#106395](https://github.com/ClickHouse/ClickHouse/pull/106395) ([Algunenano](https://github.com/Algunenano)).
* `system.query_log` の `used_privileges` および `missing_privileges` カラムに、別のユーザー、データベース、またはセッションによる無関係な先行クエリから漏洩した権限文字列が含まれる可能性があったバグを修正しました。[#106425](https://github.com/ClickHouse/ClickHouse/pull/106425) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* 展開される HTML エンティティ `&nGt;` または `&nLt;` を含む文字列をデコードする際の `decodeHTMLComponent` におけるヒープバッファオーバーフロー (サーバークラッシュ) を修正しました。これは単一の `SELECT` を実行できる任意のユーザーが引き起こせます。[#106741](https://github.com/ClickHouse/ClickHouse/pull/106741) ([Algunenano](https://github.com/Algunenano)).
* オンザフライ mutation (`apply_mutations_on_fly`) または patch parts によって `PREWHERE` より前に行がフィルタリングされた場合に、query condition cache が原因で誤ったクエリ結果が返される問題を修正しました。`apply_mutations_on_fly = 1` で読み取るクエリが cache を汚染し、後続の `apply_mutations_on_fly = 0` で同じ predicate を使用するクエリが、本来読み取るべきマークをスキップして少なすぎる行を返す可能性がありました。同じ修正は、`PREWHERE` より前のフィルターとして追加される行レベルのセキュリティポリシーにも対応しています。制限的な行ポリシーの下で実行されたクエリが、そのポリシーなしで同じ predicate を使用する後続のクエリに対して cache を汚染する可能性がありました。[#107145](https://github.com/ClickHouse/ClickHouse/pull/107145) ([groeneai](https://github.com/groeneai)).
* 範囲外のイベント型を持つ細工された集約関数の状態を終了処理する際に発生する、`windowFunnel` のヒープバッファオーバーフロー (サーバークラッシュ) を修正しました。これは単一の `SELECT` を実行できる任意のユーザーが引き起こせます。[#107412](https://github.com/ClickHouse/ClickHouse/pull/107412) ([uwezkhan](https://github.com/uwezkhan)).
* 非同期挿入のフラッシュパス (`async_insert = 1`) で、`currentUser()`、`user()`、`SESSION_USER`、および `authenticatedUser()` が空文字列と評価される問題を修正しました。これにより、これらの関数を参照する `DEFAULT`/`MATERIALIZED` カラム式および materialized view が影響を受け、挿入ユーザー名ではなく空文字列が暗黙的に保存されていました。[#107541](https://github.com/ClickHouse/ClickHouse/pull/107541) ([groeneai](https://github.com/groeneai)).
* 同じユーザーまたはロールに複数の quota が割り当てられている場合、非決定論的に選ばれた 1 つの quota だけが適用されるのではなく、すべての quota がまとめて適用されるようになりました (いずれかを超過するとクエリは拒否されます) 。`SHOW QUOTA` および `system.quota_usage` には、現在のユーザーに適用されているすべての quota が表示されるようになりました。[#107664](https://github.com/ClickHouse/ClickHouse/pull/107664) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* `SYSTEM RESET DDL WORKER` の実行に、新しい `SYSTEM RESET DDL WORKER` 権限が必要になりました。以前は、認証済みのすべてのユーザー (`readonly` ユーザーを含む) がこれを実行でき、DDL worker の状態を繰り返しリセットして `ON CLUSTER` DDL をブロックできました。[#108460](https://github.com/ClickHouse/ClickHouse/pull/108460) ([groeneai](https://github.com/groeneai)).
* `ssl_certificate` によるユーザー識別を修正し、単一の `*` ワイルドカードが名前のコンポーネント1つだけに厳密に一致するようにしました (RFC 6125 6.4.3) 。以前は、`CN` または `DNS:` SAN サブジェクト内のワイルドカード (例: `*.corp.example.com`) が `evil.deep.corp.example.com` のような複数ラベルの名前にも一致していたため、より深いサブドメイン用の証明書の所有者がワイルドカードユーザーとして認証できました。`URI:` SAN の照合は変更されていません。 [#108472](https://github.com/ClickHouse/ClickHouse/pull/108472) ([groeneai](https://github.com/groeneai)).
* MySQL wire protocol コマンド `COM_FIELD_LIST` (`mysql_list_fields`) および `COM_INIT_DB` (`USE database`) に、それぞれの SQL 相当機能 (`SHOW COLUMNS`/`DESCRIBE` および `USE`) と同じアクセス制御が適用されるようになりました。以前は、ユーザーが一部のカラムにしか権限を持たないテーブルのカラム名を取得でき、`SHOW DATABASES` 権限なしで現在のデータベースを切り替えることができました。 [#108508](https://github.com/ClickHouse/ClickHouse/pull/108508) ([groeneai](https://github.com/groeneai)).
* `http_forbid_headers` を大文字と小文字を区別せずに照合するようにしました。HTTP header 名は大文字と小文字を区別しないため、`Authorization` を禁止すると、`authorization`、`AUTHORIZATION`、その他の大文字・小文字の違いもブロックされるようになりました。設定済みの `header_regexp` パターンも、明示的な `(?i)` フラグを指定しなくても大文字と小文字を区別せずに照合されるようになりました。 [#108509](https://github.com/ClickHouse/ClickHouse/pull/108509) ([groeneai](https://github.com/groeneai)).
* `DESCRIBE loop('db', 'table')` および `DESCRIBE loop(<inner table function>)` が `SHOW COLUMNS` / ソースへのアクセスチェックをバイパスし、権限のないユーザーがテーブルのカラムスキーマを読み取れるメタデータ漏えいを修正しました。 [#108624](https://github.com/ClickHouse/ClickHouse/pull/108624) ([groeneai](https://github.com/groeneai)).
* 旧バージョン (25.12以前) で不正な `auth_header` を指定して作成された `DataLakeCatalog` データベースが、26.2以降へのアップグレード後にアタッチできず、server が起動できなくなる問題を修正しました。`auth_header` は `CREATE` 時にのみ検証されるようになり、`ATTACH` 時には起動中ではなく初回使用時にカタログが遅延構築されるため、設定不備または到達不能なカタログデータベースが1つあっても server の起動をブロックしなくなりました。 [#108674](https://github.com/ClickHouse/ClickHouse/pull/108674) ([groeneai](https://github.com/groeneai)).
* RabbitMQ 接続を悪意のある過大な AMQP フレームに対して強化し、`remote_url_allow_hosts` チェックを `rabbitmq_address` に一貫して適用するようにしました。 [#112479](https://github.com/ClickHouse/ClickHouse/pull/112479) ([kssenii](https://github.com/kssenii)).
* カラムリストなしの `CREATE TABLE ... ENGINE = Distributed(...)` により、作成ユーザーに閲覧が許可されていないローカルテーブルの構造が公開されるケースを修正しました。`CREATE` ではローカルserver 自身が実行するため、構造はユーザー自身のコンテキストで推論されるようになり、`Remote` engine と同様にターゲットテーブルに対する `SHOW COLUMNS` が必要になります。DDL queue (`ON CLUSTER`、または `Replicated` データベース内) から再実行される `CREATE` は対象外です。 [#113220](https://github.com/ClickHouse/ClickHouse/pull/113220) ([groeneai](https://github.com/groeneai)).
* カラムリストを指定しない `CREATE TABLE ... ENGINE = Buffer(...)` により、作成ユーザーに閲覧権限のない宛先テーブルの構造が明らかになる可能性があった問題を修正しました。ローカルサーバーが自身で実行する `CREATE` では、構造がユーザー自身のコンテキストで推論されるようになったため、宛先に対する `SHOW COLUMNS` 権限が必要になりました。これはすでに `Merge` および `Remote` でも必要です。DDL キューから再実行される `CREATE` (`ON CLUSTER` または `Replicated` データベース内) は対象外です。 [#113372](https://github.com/ClickHouse/ClickHouse/pull/113372) ([groeneai](https://github.com/groeneai)).
* authentication 前に読み取られる PostgreSQL ワイヤプロトコルの起動メッセージのサイズに上限を設定しました。 [#115708](https://github.com/ClickHouse/ClickHouse/pull/115708) ([alexey-milovidov](https://github.com/alexey-milovidov)).

<h3 id="backup-and-restore-fixes">
  バックアップと復元に関する修正
</h3>

* 循環依存関係のあるテーブルを含むバックアップの `RESTORE` 中にサーバーが異常終了する問題を修正しました。[#103824](https://github.com/ClickHouse/ClickHouse/pull/103824) ([thevar1able](https://github.com/thevar1able)).
* `S3` ディスクおよびオブジェクトストレージで、マルチパートアップロードにより書き込まれたオブジェクトの S3 ストレージクラス (`s3_storage_class` / `s3_storage_class_name`) が無視され、大きなオブジェクトがデフォルトの `STANDARD` クラスで作成される問題を修正しました。ディスク、オブジェクトストレージ、バックアップでは、オプション名として `s3_storage_class` と `s3_storage_class_name` のどちらも使用できるようになりました。[#106214](https://github.com/ClickHouse/ClickHouse/pull/106214) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* `SYSTEM RELOAD CONFIG` によってエンドポイントごとの Azure Blob Storage 設定 (`use_native_copy` など) が破棄され、サーバーを再起動するまでディスクの設定が `BACKUP`/`RESTORE` で無視される問題を修正しました。[#106357](https://github.com/ClickHouse/ClickHouse/pull/106357) ([jkartseva](https://github.com/jkartseva)).
* バックアップを開始したレプリカ上で materialized view がまだ実体化されていない Replicated または Shared データベースで、リフレッシャブルmaterialized view の REPLACE ターゲットを収集すると、バックアップが FILE\_DOESNT\_EXIST で失敗する問題を修正しました。[#106411](https://github.com/ClickHouse/ClickHouse/pull/106411) ([jkartseva](https://github.com/jkartseva)).
* 従来形式の `azure_blob_storage` ディスクで、Azure BACKUP/RESTORE がエンドポイント設定を無視する問題を修正しました。[#106784](https://github.com/ClickHouse/ClickHouse/pull/106784) ([jkartseva](https://github.com/jkartseva)).
* `AzureBlobStorage` への `BACKUP` を修正しました。バックアップ内のデータファイルをコピーすると、宛先オブジェクトがバックアップディレクトリ外に書き込まれていました。`S3` 宛先でのバックアップオブジェクトの存在確認では、プレフィックスの一覧取得ではなく完全一致の `HeadObject` リクエストを使用するようになり、類似したプレフィックスを持つキーの誤一致を防ぎます。[#107153](https://github.com/ClickHouse/ClickHouse/pull/107153) ([pamarcos](https://github.com/pamarcos)).
* インクリメンタルバックアップでは、`.backup` メタデータファイルの `<base_backup>` ロケーターに `S3` 認証情報を保存しなくなりました。`use_same_s3_credentials_for_base_backup = 1` を指定して作成されたバックアップ、またはこのバックアップロケーターと一致する明示的なベースバックアップ認証情報を使用して作成されたバックアップには、シークレットを含まないマーカーが保存され、復元時に追加設定なしで復元できます。異なる明示的なベースバックアップ認証情報または追加のベース認証引数を使用して作成されたバックアップでは、それらを `base_backup` 設定として `RESTORE` に渡してください。埋め込み認証情報を含む古いバージョンで作成されたバックアップも引き続き復元できます。[#107357](https://github.com/ClickHouse/ClickHouse/pull/107357) ([pamarcos](https://github.com/pamarcos)).
* `ReplicatedMergeTree` テーブルの `RESTORE` を修正し、バックアップ内の内容が重複したパーツが暗黙的に重複排除されず保持されるようにしました。[#107652](https://github.com/ClickHouse/ClickHouse/pull/107652) ([pamarcos](https://github.com/pamarcos)).
* 明示的な `partition_strategy` が指定されていないファイル系エンジン (`S3`、`AzureBlobStorage`、`URL` など) のパスに `{_partition_id}` プレースホルダーが含まれる場合は、`file_like_engine_default_partition_strategy` に関係なく、再び `wildcard` 戦略が適用されるようになりました。これにより、`BAD_ARGUMENTS` ("Partition strategy hive can not be used with a '\_partition\_id' wildcard in the path") で失敗するようになっていた 26.6 より前の DDL との後方互換性が回復します。[#111279](https://github.com/ClickHouse/ClickHouse/pull/111279) ([fm4v](https://github.com/fm4v)).

<h3 id="clickhouse-keeper-fixes">
  ClickHouse Keeper の修正
</h3>

* 書き込み失敗後の `Keeper` スナップショットのクリーンアップを修正しました。部分スナップショットが安全に削除され、`latest_snapshot_meta` を進めることなく失敗した書き込みを再試行できるようになりました。 [#105779](https://github.com/ClickHouse/ClickHouse/pull/105779) ([antonio2368](https://github.com/antonio2368)).
* 新しいリクエストディスパッチャの応答キューが応答スレッドの起動前に満杯になることで発生していた、フォロワーのキャッチアップ中の `Keeper` 障害を修正しました。 [#106049](https://github.com/ClickHouse/ClickHouse/pull/106049) ([antonio2368](https://github.com/antonio2368)).
* `nuraft_max_log_gap_in_stream` 設定が非デフォルト値に設定されている場合に、Keeper が起動時に停止することがある問題を修正しました (デフォルトは 0、つまり append\_entries リクエストのパイプライン化は無効です) 。 [#106220](https://github.com/ClickHouse/ClickHouse/pull/106220) ([al13n321](https://github.com/al13n321)).
* Keeper の内部 Raft TLS が `openSSL.client.verificationMode` 設定に従うようになりました。以前は、この設定にかかわらず Keeper 間の Raft 通信ではピア証明書の検証が常に有効だったため、`none` は暗黙的に無視されていました。現在は、`none` を指定すると Raft ピア証明書の検証が明示的に無効になり、設定がない場合は従来どおり安全なデフォルト動作が維持されます。`none` を明示的に設定している構成では、アップグレード後、設定どおり Raft ピア証明書の検証が行われなくなります。 [#106726](https://github.com/ClickHouse/ClickHouse/pull/106726) ([antonio2368](https://github.com/antonio2368)).
* 設定の再読み込み時に ZooKeeper セッションが不要に再作成される問題を修正しました。 [#107096](https://github.com/ClickHouse/ClickHouse/pull/107096) ([azat](https://github.com/azat)).
* `last_snapshot` (および `mntr` の `zk_latest_snapshot_size`) で報告されるスナップショットメタデータが、古いスナップショットや重複したスナップショットのインストール後に後退することがあった ClickHouse Keeper のバグを修正しました。この問題により、同じインデックスのローカルスナップショットが、ピアへのストリーミング中または S3 へのアップロード中の登録済みスナップショットファイルをその場で上書きする可能性もありました。 [#107321](https://github.com/ClickHouse/ClickHouse/pull/107321) ([antonio2368](https://github.com/antonio2368)).
* ZooKeeper 接続が不適切なタイミングで失われた場合に、リフレッシャブルmaterialized view が停止する問題を修正しました。 [#108234](https://github.com/ClickHouse/ClickHouse/pull/108234) ([al13n321](https://github.com/al13n321)).
* パーティションとしてクエリパラメータを使用する mutation を修正しました (`ALTER TABLE ... UPDATE/DELETE ... IN PARTITION {param:Type}`) 。置換後のパーティション値が、再度パースできない形式で mutation エントリにシリアライズされていたため、テーブルの読み込みに失敗していました (レプリケートテーブルではすべてのレプリカで発生) 。現在は、mutation command を ZooKeeper またはディスクに書き込む前に、再度パース可能かどうかも検証されます。これにより、同様の不一致が発生した場合はテーブルを壊すのではなく `ALTER` クエリが失敗します。 [#111518](https://github.com/ClickHouse/ClickHouse/pull/111518) ([al13n321](https://github.com/al13n321)).
* `system.zookeeper_info` のデータのパース中に発生する数値オーバーフローを修正しました。 [#111629](https://github.com/ClickHouse/ClickHouse/pull/111629) ([kssenii](https://github.com/kssenii)).

<h3 id="crash-and-stability-fixes">
  クラッシュおよび安定性の修正
</h3>

* 新しいアナライザで、定数カラムとともに DISTINCT および ORDER BY を使用して LIMIT BY を使用した際に発生する NOT\_FOUND\_COLUMN\_IN\_BLOCK 例外を修正しました。[#93195](https://github.com/ClickHouse/ClickHouse/pull/93195) ([ashrithb](https://github.com/ashrithb)).
* Hive Metastore との通信時に発生する TTransportException エラーを処理するため、自動再試行機構と再接続ロジックを追加し、HiveCatalog 接続の安定性を改善しました。[#98471](https://github.com/ClickHouse/ClickHouse/pull/98471) ([otselnik](https://github.com/otselnik)).
* short-circuit 関数 (`if`、`multiIf`、`and`、`or` など) のアナライザ時の定数畳み込みを修正し、静的に到達不能な分岐で分析時に例外が発生しないようにしました。たとえば、`WITH 0 AS n SELECT multiIf(n = 0, 0, intDiv(100, n))` は、ゼロ除算エラーで失敗する代わりに、正しく `0` を返すようになりました。[#103157](https://github.com/ClickHouse/ClickHouse/pull/103157) ([fastio](https://github.com/fastio)).
* 自身の状態を返す集約関数に対して `runningAccumulate` を呼び出した際に発生するサーバーの異常終了を修正しました。[#105085](https://github.com/ClickHouse/ClickHouse/pull/105085) ([antaljanosbenjamin](https://github.com/antaljanosbenjamin)).
* `getServerSetting` を修正し、`system.server_settings` の報告内容と一致するように、実行時に変更可能なサーバー設定 (`max_server_memory_usage`、`mark_cache_size`、`max_concurrent_queries`、スレッドプールサイズなど) の現在有効な値を返すようにしました。[#105172](https://github.com/ClickHouse/ClickHouse/pull/105172) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* アナライザを有効にして `ORDER BY ... WITH FILL INTERPOLATE` と `LIMIT N BY` を組み合わせた際に発生する `NOT_FOUND_COLUMN_IN_BLOCK` 例外を修正しました。[#105481](https://github.com/ClickHouse/ClickHouse/pull/105481) ([yakov-olkhovskiy](https://github.com/yakov-olkhovskiy)).
* 本体が相関サブクエリである `MATERIALIZED` CTE を `IN` の右辺として使用した際に発生するサーバー例外 (`Trying to execute PLACEHOLDER action` 論理エラー) を修正しました。このような CTE は分析時に拒否されるようになり、CTE を `FROM` で直接参照した場合に同じパターンがすでに拒否される動作との一貫性を確保しました。[#105518](https://github.com/ClickHouse/ClickHouse/pull/105518) ([groeneai](https://github.com/groeneai)).
* `variant_throw_on_type_mismatch/dynamic_throw_on_type_mismatch=false` が関数実行中の例外を捕捉しない問題を修正しました。[#105543](https://github.com/ClickHouse/ClickHouse/pull/105543) ([Avogar](https://github.com/Avogar)).
* TTL 式がサブカラムを参照する際に発生する NOT\_FOUND\_COLUMN\_IN\_BLOCK 例外を修正しました。[#105578](https://github.com/ClickHouse/ClickHouse/pull/105578) ([Avogar](https://github.com/Avogar)).
* PostgreSQL テーブル関数、PostgreSQL table engine、または PostgreSQL ソースを持つ Dictionary を介して PostgreSQL から読み取るクエリがキャンセルされ (たとえば KILL QUERY により) 、リモート PostgreSQL クエリのキャンセルに失敗した場合に発生する可能性があったサーバークラッシュを修正しました。[#105949](https://github.com/ClickHouse/ClickHouse/pull/105949) ([rorylshanks](https://github.com/rorylshanks)).
* クエリ内で送信される文字列リテラルが大きすぎることによって発生する可能性があったクラッシュを修正しました。[#105996](https://github.com/ClickHouse/ClickHouse/pull/105996) ([nickitat](https://github.com/nickitat)).
* `ORDER BY` でソートプレフィックスを使用し、`use_with_fill_by_sorting_prefix` を有効にしている場合に、空の `INTERPOLATE ()` を使用すると発生する `INVALID_WITH_FILL_EXPRESSION` 例外を修正しました。ソートプレフィックスのカラムは、明示的に名前を指定した `INTERPOLATE (col)` の動作と一致するよう、暗黙的な補間対象から正しく除外されるようになりました。[#106001](https://github.com/ClickHouse/ClickHouse/pull/106001) ([yakov-olkhovskiy](https://github.com/yakov-olkhovskiy)).
* `RowBinary` 入力またはクエリパラメータからの不正な `AggregateFunction(uniqTheta, ...)` 状態が、サーバーを終了させる代わりに `CORRUPTED_DATA` として拒否されるようになりました。[#106260](https://github.com/ClickHouse/ClickHouse/pull/106260) ([groeneai](https://github.com/groeneai)).
* 制約に基づく最適化 (`optimize_using_constraints`) を相関サブクエリとともに使用した場合に発生するクラッシュと、`NOT_FOUND_COLUMN_IN_BLOCK` エラーが発生する可能性を修正しました。[#106349](https://github.com/ClickHouse/ClickHouse/pull/106349) ([Algunenano](https://github.com/Algunenano)).
* 同じ式に展開される 2 つ以上の ALIAS カラム (例: いずれも `toString(x)` として定義) を持つ `Distributed` テーブルを `ORDER BY` 句付きでクエリする場合、または同じ式を ALIAS カラム参照と SELECT リスト内で直接指定する場合に発生する `NUMBER_OF_COLUMNS_DOESNT_MATCH` 例外を修正しました。[#106404](https://github.com/ClickHouse/ClickHouse/pull/106404) ([yakov-olkhovskiy](https://github.com/yakov-olkhovskiy)).
* テーブル関数の引数内で `multiIf` にアスタリスクを渡すクエリ (例: `numbers(multiIf(*, ...), 2)`) で発生する `LOGICAL_ERROR` "カラムではない要素の名前を取得しようとしました: `ExpressionList`" を修正しました。解決できないマッチャーを含むクエリは、`UNSUPPORTED_METHOD` で拒否されるようになりました。[#106647](https://github.com/ClickHouse/ClickHouse/pull/106647) ([groeneai](https://github.com/groeneai)).
* ディレクトリ一覧で無制限の再帰を引き起こす不適切な `file` glob パターンを拒否するようになりました。最大再帰深度 1000 が適用され、これを超えるクエリはスタックオーバーフローでサーバーを停止させる代わりに `TOO_DEEP_RECURSION` を返します。[#106676](https://github.com/ClickHouse/ClickHouse/pull/106676) ([groeneai](https://github.com/groeneai)).
* テーブル関数 `input` がクエリ内の複数箇所から参照される非 MATERIALIZED CTE でラップされている場合に発生する `'Trying to read from input() twice.'` 例外を修正しました。クエリはプランニング時に明確な `INVALID_USAGE_OF_INPUT` エラーで拒否されるようになりました。`input` は一度しか読み取れないクライアントストリームであり、クエリプラン内の単一のソースからのみ使用できます。[#106682](https://github.com/ClickHouse/ClickHouse/pull/106682) ([groeneai](https://github.com/groeneai)).
* パース中に例外 (例: MEMORY\_LIMIT\_EXCEEDED) が発生した際のカラム不整合 (後に LOGICAL\_ERROR につながる問題) を修正しました。[#106802](https://github.com/ClickHouse/ClickHouse/pull/106802) ([azat](https://github.com/azat)).
* `input_format_allow_errors_num > 0` を指定して切り詰められた Protobuf データを読み取る際のサーバークラッシュ (SIGSEGV) を修正しました。[#106905](https://github.com/ClickHouse/ClickHouse/pull/106905) ([atsarevskiy](https://github.com/atsarevskiy)).
* RocksDB ハンドルが解放された `EmbeddedRocksDB` テーブルに対して `TRUNCATE` または `DROP` を実行した際のサーバークラッシュ (null ポインターの逆参照) を修正しました。たとえば、以前の `TRUNCATE` によってデータディレクトリが空になった `read_only` テーブルが該当します。[#106940](https://github.com/ClickHouse/ClickHouse/pull/106940) ([groeneai](https://github.com/groeneai)).
* 非常に大きな `max_streams_for_files_processing_in_cluster_functions` 設定で `urlCluster` などの `*Cluster` テーブル関数から読み取る際に発生する例外 (`LOGICAL_ERROR` として報告される `std::length_error`) を修正しました。ストリーム数は妥当な値に制限されるようになりました。[#106946](https://github.com/ClickHouse/ClickHouse/pull/106946) ([groeneai](https://github.com/groeneai)).
* 分散クエリがシャードに送信される直前にキャンセルされた場合にサーバーが終了する問題を修正しました。[#106950](https://github.com/ClickHouse/ClickHouse/pull/106950) ([groeneai](https://github.com/groeneai)).
* 同一のソーステーブルに対する 2 つの materialized view が同じターゲットテーブルに書き込み、そのターゲットを依存ビューが読み取る場合に、`materialized_views_squash_parallel_inserts` を有効にして `INSERT` を実行すると発生するサーバー例外 (論理エラー `this->visited_views == right->visited_views`) を修正しました。 [#107027](https://github.com/ClickHouse/ClickHouse/pull/107027) ([groeneai](https://github.com/groeneai)).
* 書き込みスキーマに一致しないカラム (たとえば、サブカラムにフラット化される `Nested` カラムや、明示的なカラムサブセットを指定したテーブル関数) を含む Delta Lake テーブルへの挿入時に発生する `LOGICAL_ERROR` 例外を修正しました。このような挿入は、代わりにユーザー向けの `INCOMPATIBLE_COLUMNS` エラーで失敗するようになりました。 [#107058](https://github.com/ClickHouse/ClickHouse/pull/107058) ([groeneai](https://github.com/groeneai)).
* 修飾付きアスタリスクマッチャー (たとえば `x.*`) が再帰項内で名前によって再帰 CTE を参照した場合に発生する `LOGICAL_ERROR` ("Table expression ... data must be initialized") を修正しました。このようなマッチャーは、その位置での修飾付きカラム (`x.a`) や修飾なしマッチャー (`*`) と同様に、再帰テーブルのカラムを展開するようになりました。 [#107144](https://github.com/ClickHouse/ClickHouse/pull/107144) ([groeneai](https://github.com/groeneai)).
* リフレッシャブルmaterialized view に、修飾なしの名前が一時テーブルまたは CTE 名と一致する `REFRESH ... DEPENDS ON <name>` 依存関係がある場合、再起動時にサーバーがクラッシュループに陥る可能性がある `LOGICAL_ERROR` ("Unexpected exception in refresh scheduling") を修正しました。 [#107156](https://github.com/ClickHouse/ClickHouse/pull/107156) ([groeneai](https://github.com/groeneai)).
* `toString` や `concat` などの関数を、単一の非 NULL バリアントと NULL を含む `Variant` または `Dynamic` カラムに適用し、関数が入力カラムをそのまま返す場合に発生する `LOGICAL_ERROR` (`Variant N (T) has size X, but expected Y`) を修正しました。 [#107374](https://github.com/ClickHouse/ClickHouse/pull/107374) ([groeneai](https://github.com/groeneai)).
* `use_strict_insert_block_limits` が有効な場合に、`Alias` テーブルへの非同期 `INSERT` で発生する `LOGICAL_ERROR` (`block.rows() == getRows()`) を修正しました。 [#107400](https://github.com/ClickHouse/ClickHouse/pull/107400) ([groeneai](https://github.com/groeneai)).
* キー式 (`ORDER BY`、`PRIMARY KEY`、`PARTITION BY`、またはスキップ `INDEX`) に、右辺がテーブルである `IN` 演算子 (例: `ORDER BY (x IN some_table)`) が含まれる場合に発生するサーバー例外 (`Logical error: Not-ready Set is passed as the second argument for function 'in'`) を修正しました。このようなキー式は、テーブル作成時に拒否されるようになりました。 [#107424](https://github.com/ClickHouse/ClickHouse/pull/107424) ([groeneai](https://github.com/groeneai)).
* DISTINCT キーのセットの初期化中に割り当てに失敗した場合 (たとえば、メモリ制限に達した場合) に発生する可能性があった、`DISTINCT` 処理中のまれなサーバークラッシュを修正しました。 [#107467](https://github.com/ClickHouse/ClickHouse/pull/107467) ([groeneai](https://github.com/groeneai)).
* 次の操作の前にキャッシュされた認証情報を更新することで、一時的な S3 認証情報の期限切れ後に `DeltaLake` 操作が失敗する問題を修正しました。STS の assume-role 認証情報も、認証失敗後に更新されます。 [#107480](https://github.com/ClickHouse/ClickHouse/pull/107480) ([ahmadov](https://github.com/ahmadov)).
* `PARTITION BY` キーを持つテーブルのクエリ時に、より大きな式に含まれる `IN`/`NOT IN` サブクエリ (たとえば `WHERE (c0 IN (SELECT ...)) != 0`) がある場合に発生する `Not-ready Set is passed as the second argument for function 'in'` (`LOGICAL_ERROR`) を修正しました。 [#107515](https://github.com/ClickHouse/ClickHouse/pull/107515) ([groeneai](https://github.com/groeneai)).
* `log_formatted_queries = 1` で分散クエリプランをローカル実行した場合 (`make_distributed_plan` + `distributed_plan_execute_locally`) に発生する可能性があったクラッシュ (null ポインタのデリファレンス) を修正しました。 [#107570](https://github.com/ClickHouse/ClickHouse/pull/107570) ([groeneai](https://github.com/groeneai)).
* `enable_analyzer = 0` でクエリを実行中に、ターゲットが `Distributed` テーブルである materialized view を読み取るとサーバーがクラッシュする問題を修正しました。 [#107653](https://github.com/ClickHouse/ClickHouse/pull/107653) ([groeneai](https://github.com/groeneai)).
* `input_format_allow_errors_num > 0` を指定して Protobuf データを読み取る際、同じブロック内で有効なメッセージの後に不正な (スキップ可能な) メッセージがある場合に発生するサーバークラッシュ (SIGSEGV) を修正しました。 [#107739](https://github.com/ClickHouse/ClickHouse/pull/107739) ([atsarevskiy](https://github.com/atsarevskiy)).
* リモートテーブル構造の推論中にブリッジが応答しなくなった場合に、`odbc` および `jdbc` table function が数分間ハングし、クエリのキャンセル (`KILL QUERY`、`max_execution_time`) を無視する問題を修正しました。 [#107809](https://github.com/ClickHouse/ClickHouse/pull/107809) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* `remote()`/`remoteSecure()` に渡される named collection の `database`/`db` オーバーライドが定数のデータベース名でない場合 (例: `remote(nc, database = (SELECT 1))`) に発生する可能性があったクラッシュ (null ポインタのデリファレンス) を修正しました。クラッシュする代わりに、クエリは明確なエラーで失敗するようになりました。 [#108271](https://github.com/ClickHouse/ClickHouse/pull/108271) ([groeneai](https://github.com/groeneai)).
* `_distance` カラムを SELECT する vector search クエリで、`LOGICAL_ERROR` で失敗する代わりに適切なエラーが返されるようになりました。 [#108423](https://github.com/ClickHouse/ClickHouse/pull/108423) ([rschu1ze](https://github.com/rschu1ze)).
* `quantileTDigest` 系の集約関数の状態カラムを `GROUP BY` キーとして使用し、複数のスレッドで同時にシリアライズした場合に発生する可能性があったクラッシュ (heap-buffer-overflow) を修正しました。 [#110263](https://github.com/ClickHouse/ClickHouse/pull/110263) ([groeneai](https://github.com/groeneai)).
* 逆順 (降順) のソートキー (`ORDER BY (g, r DESC)`) を持つテーブルでの主キー索引解析における誤ったプルーニングを修正しました。先行キーのカラムの変化と、その後に続く降順キーのカラムにまたがる粒度が誤ってプルーニングされ、一致する行が除外される可能性がありました。 [#111059](https://github.com/ClickHouse/ClickHouse/pull/111059) ([nihalzp](https://github.com/nihalzp)).
* `INSERT` が、ターゲットが `Alias` で内部クエリが行数を変更する依存 materialized view を通過し、エイリアス経由で到達可能な重複排除テーブルが存在する場合に発生する論理エラー `block.rows() == getRows()` (リリースビルドにおける範囲外読み取りおよび挿入の重複排除の不具合) を修正しました。 [#111103](https://github.com/ClickHouse/ClickHouse/pull/111103) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* `String` 値を含む不正な集約関数の状態をデシリアライズする際に、範囲外メモリアクセスによって発生するセグメンテーションフォールトを修正しました。このような状態は検証のうえ拒否され、セグメンテーションフォールトが発生しないようになりました。 [#111606](https://github.com/ClickHouse/ClickHouse/pull/111606) ([mstetsyuk](https://github.com/mstetsyuk)).
* bloom filter メタデータに不整合がある Parquet file を読み取る際のクラッシュを修正しました。このようなファイルでは、本来より少ない行が警告なく返される可能性もありました。 [#112498](https://github.com/ClickHouse/ClickHouse/pull/112498) ([tiandiwonder](https://github.com/tiandiwonder)).
* `File` engine または `file` table function への `INSERT` で、`Avro` など追記をサポートしないフォーマットを使用して空でないファイルに追記した際に発生するsegfaultおよびサイレントなデータ破損を修正しました。ファイルディスクリプタまたはパーティション化されたパス経由の書き込みでは既存のチェックが回避されていたため、フォーマットプレフィックスが抑制され、既存のバイト列の後に2つ目のヘッダーが書き込まれ、ファイルが読み取れなくなっていました。このような`INSERT`は、通常のパスの場合と同様に、`CANNOT_APPEND_TO_FILE`で拒否されるようになりました。[#112839](https://github.com/ClickHouse/ClickHouse/pull/112839) ([groeneai](https://github.com/groeneai)).
* リフレッシャブルmaterialized viewがリフレッシュクエリの計画中にブロックされた場合に、`DROP TABLE`および`SYSTEM STOP VIEW`がハングする問題を修正しました。[#113188](https://github.com/ClickHouse/ClickHouse/pull/113188) ([evillique](https://github.com/evillique)).
* 非同期挿入キューのエントリのデッドラインが同一の場合に、まれにserverが終了する問題を修正しました。[#113363](https://github.com/ClickHouse/ClickHouse/pull/113363) ([mstetsyuk](https://github.com/mstetsyuk)).
* 読み取りバッファを所有するinput formatを介してParquetを読み取る際に発生するヒープメモリ破損を修正しました。たとえば、`SOURCE(FILE(... format 'Parquet'))`を使用するDictionaryです。バックグラウンドのprefetchおよびデコードタスクが、パイプラインによるバッファ解放後もそのバッファを介して読み書きする可能性があり、serverが異常終了するおそれがありました。[#114668](https://github.com/ClickHouse/ClickHouse/pull/114668) ([groeneai](https://github.com/groeneai)).
* 名前が内部tableの名前より辞書式順序で前に来る`TimeSeries` table (たとえば`-ts`という名前のtable) をdropする場合や、`ENGINE = TimeSeries`で宣言されたmaterialized viewをdropする場合にハングする問題を修正しました。drop処理がDDLガードで自己デッドロックし、`KILL QUERY`でキャンセルできませんでした。[#114953](https://github.com/ClickHouse/ClickHouse/pull/114953) ([groeneai](https://github.com/groeneai)).

<h3 id="other-bug-fixes">
  その他のバグ修正
</h3>

* 関数 `like`、`ilike`、`notLike`、`notILike`、`match` が、非定数の needle を指定した定数の haystack (例: `'foo' LIKE pattern_column`) をサポートするようになりました。従来は `ILLEGAL_COLUMN` がスローされていました。 [#100479](https://github.com/ClickHouse/ClickHouse/pull/100479) ([Onyx2406](https://github.com/Onyx2406)).
* 通常のプロジェクションを持つテーブルに対する VIEW から選択する際に発生する `NOT_FOUND_COLUMN_IN_BLOCK` エラーを修正しました。 [#101218](https://github.com/ClickHouse/ClickHouse/pull/101218) ([amosbird](https://github.com/amosbird)).
* `max_bytes_per_second`、`max_cpus` などのワークロード設定で、負の Float64 値 (例: `-100.5`) を拒否するようになりました。従来は負の整数値のみが検証されていたため、負の浮動小数点値により壊れた scheduler ノードが暗黙的に作成されていました。 [#101842](https://github.com/ClickHouse/ClickHouse/pull/101842) ([groeneai](https://github.com/groeneai)).
* オブジェクトストレージからの読み取りが、クエリのキャンセルに速やかに応答するようになりました。 [#103016](https://github.com/ClickHouse/ClickHouse/pull/103016) ([SmitaRKulkarni](https://github.com/SmitaRKulkarni)).
* `max_insert_block_size_bytes` が `0` (デフォルト) の場合に、`INSERT` の解析時に `input_format_max_block_size_bytes` が暗黙的に無視される問題を修正しました。この設定により、行入力フォーマットで生成されるブロックのサイズが正しく制限されるようになりました。 [#103068](https://github.com/ClickHouse/ClickHouse/pull/103068) ([Fgrtue](https://github.com/Fgrtue)).
* 末尾のヌルバイトを誤って除去していたため、ClickHouse が無効な GSSAPI トークンを生成することがある問題を修正しました。 [#103114](https://github.com/ClickHouse/ClickHouse/pull/103114) ([EmeraldShift](https://github.com/EmeraldShift)).
* EXPLAIN SYNTAX がパラメーター化ビューを展開するようになりました。 [#103263](https://github.com/ClickHouse/ClickHouse/pull/103263) ([jrdi](https://github.com/jrdi)).
* `INSERT INTO FUNCTION hdfs(...)` を介して HDFS に Parquet (および ORC、Arrow などのトレーラーを持つフォーマット) を書き込む際に発生するデータ破損を修正しました。26.1 以降、`WriteBufferFromHDFS` は `finalize()` 時に作業用バッファをフラッシュしていなかったため、Parquet の `PAR1` フッターを含め、すべてのファイルの末尾最大 `DBMS_DEFAULT_BUFFER_SIZE` バイトが暗黙的に失われていました。このようなファイルを読み取ると、`Not a Parquet file (wrong magic bytes at the end of file)` が返されていました。 [#103268](https://github.com/ClickHouse/ClickHouse/pull/103268) ([groeneai](https://github.com/groeneai)).
* 結合サイズ制限 (`max_rows_in_join` / `max_bytes_in_join`) を `join_overflow_mode = 'break'` とともに設定した場合に、相関サブクエリで誤った結果や論理エラーが発生する可能性がある問題を修正しました。相関サブクエリの評価用に内部で作成される結合は、これらのユーザー設定の制限を無視するようになったため、早期に停止して行を破棄することがなくなりました。 [#103322](https://github.com/ClickHouse/ClickHouse/pull/103322) ([groeneai](https://github.com/groeneai)).
* 集約プロジェクションに異なる `IN (...)` 条件を持つ複数の `sumIf` 集約が含まれる場合に、誤った結果が返されたりプロジェクションが使用されなかったりする問題を修正しました。 [#104765](https://github.com/ClickHouse/ClickHouse/pull/104765) ([Ergus](https://github.com/Ergus)).
* `deltaSumTimestamp` が、ゼロをまたぐ符号付き整数型に対して誤った結果を返す問題を修正しました。 [#104830](https://github.com/ClickHouse/ClickHouse/pull/104830) ([thevar1able](https://github.com/thevar1able)).
* メタデータファイルが破損しているか読み込めない、アタッチ直後の `Iceberg`、`DeltaLake`、または `Hudi` テーブルに対する `DELETE FROM` で発生する `Logical error: 'Metadata is not initialized'` を修正しました。代わりに通常のユーザー向け例外が報告され、サーバーは稼働を継続します。 [#104917](https://github.com/ClickHouse/ClickHouse/pull/104917) ([groeneai](https://github.com/groeneai)).
* ストレージ句 (`ORDER BY`、`PARTITION BY`、`PRIMARY KEY`、`SAMPLE BY`、`TTL`、`UNIQUE KEY`、またはエンジンの`SETTINGS`) を`ENGINE`なしで指定する`ATTACH TABLE name <clauses>;`クエリでは、保存済みの定義を使用してテーブルを再アタッチし、ユーザー指定の句を破棄する代わりに、`BAD_ARGUMENTS`がスローされるようになりました。クエリレベルのセッション`SETTINGS` (`log_comment`など) は引き続き適用されます。保存済みのメタデータで再アタッチするには`ATTACH TABLE t;`を使用し、設定を変更するには`ATTACH`後に`ALTER TABLE t MODIFY SETTING ...`を使用してください。 [#105068](https://github.com/ClickHouse/ClickHouse/pull/105068) ([groeneai](https://github.com/groeneai)).
* バイナリまたは文字列カラムに破損した中間オフセットを含むArrowまたはArrowStreamファイルの読み取り時に発生するヒープバッファオーバーフロー、および地理タグ付きArrowカラムの読み取り時に発生するヌルポインタ逆参照を修正しました。 [#105449](https://github.com/ClickHouse/ClickHouse/pull/105449) ([Algunenano](https://github.com/Algunenano)).
* `ALTER`後に圧縮された`Memory`テーブルから`Dynamic`サブカラムを読み取る際にサーバーが終了する問題を修正しました。 [#105464](https://github.com/ClickHouse/ClickHouse/pull/105464) ([Avogar](https://github.com/Avogar)).
* `WithNames`フォーマットのスキーマキャッシュキーに`skip_first_lines`を含めるようにしました。 [#105469](https://github.com/ClickHouse/ClickHouse/pull/105469) ([Avogar](https://github.com/Avogar)).
* 小規模でソートされていない入力に対して`histogram`が誤った結果を生成する問題を修正しました。 [#105548](https://github.com/ClickHouse/ClickHouse/pull/105548) ([Avogar](https://github.com/Avogar)).
* `optimize_trivial_insert_select`が有効な場合に、テーブル関数で挿入先テーブルを使用する際の問題を修正しました。 [#105555](https://github.com/ClickHouse/ClickHouse/pull/105555) ([Avogar](https://github.com/Avogar)).
* `estimateCompressionRatio`ウィンドウ関数で、行間で蓄積データが失われる問題を修正しました。 [#105581](https://github.com/ClickHouse/ClickHouse/pull/105581) ([Avogar](https://github.com/Avogar)).
* Hiveパーティション値の抽出で`cast_string_to_date_time_mode`設定が考慮されるようになり、デフォルトでパーティションキー内のタイムゾーン接尾辞 (例：`+0000`、`+00:00`、`Z`) を含むISO 8601タイムスタンプを受け入れるようになりました。 [#105584](https://github.com/ClickHouse/ClickHouse/pull/105584) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* 不正な形式の行の後における`Template`入力フォーマットのエラー復旧を修正しました。 [#105735](https://github.com/ClickHouse/ClickHouse/pull/105735) ([niyue](https://github.com/niyue)).
* ハンドラー引数が単一のスペースで区切られるよう`SYSTEM INSTRUMENT ADD`のフォーマットを修正し、値が3つ以上ある、または最小値が最大値を超える範囲を指定する無効な`SLEEP`インストルメンテーション引数リストを拒否するようにしました。 [#105984](https://github.com/ClickHouse/ClickHouse/pull/105984) ([pamarcos](https://github.com/pamarcos)).
* Boolパーティションキーに対するALTER TABLEパーティション操作が暗黙的に失敗する問題を修正しました。 [#106004](https://github.com/ClickHouse/ClickHouse/pull/106004) ([Avogar](https://github.com/Avogar)).
* デフォルト値を持つ型付きJSONパスに対する`JSONExtractRaw`および`JSONHas`の問題を修正しました。 [#106005](https://github.com/ClickHouse/ClickHouse/pull/106005) ([Avogar](https://github.com/Avogar)).
* データレイク構成において、空のベースパスに誤った`/`プレフィックスが付く問題を修正しました。 [#106013](https://github.com/ClickHouse/ClickHouse/pull/106013) ([thewisenerd](https://github.com/thewisenerd)).
* 部分的な`SHOW DICTIONARIES`の権限取り消し時に`system.dictionaries`が0行を返す問題を修正しました。 [#106105](https://github.com/ClickHouse/ClickHouse/pull/106105) ([Avogar](https://github.com/Avogar)).
* `(c0 / -42)` や `intDiv(c0, -42)` などの単調減少関数を含む `ORDER BY` を持つテーブルに対するクエリで、誤った結果が返される問題を修正しました。基になる列に対する述語 (例: `c0 < 0`) によって一致する行を含む granule が誤ってプルーニングされ、結果が欠落することがありました。 [#106136](https://github.com/ClickHouse/ClickHouse/pull/106136) ([nihalzp](https://github.com/nihalzp)).
* 挿入時に不正な形式の `DDSketch` 集約状態を検証するようにしました。 [#106236](https://github.com/ClickHouse/ClickHouse/pull/106236) ([yariks5s](https://github.com/yariks5s)).
* 失敗した `SLRU` のダウングレード後に発生する filesystem-cache の整合性の問題を修正し、エントリがエビクション状態のまま残ることを防止しました。また、`System`/`Data` 分割 cache のリサイズと空き領域のクリーンアップも修正し、制限値をアトミックに更新して両方の cache セグメントから領域を回収できるようにしました。 [#106286](https://github.com/ClickHouse/ClickHouse/pull/106286) ([kssenii](https://github.com/kssenii)).
* 仮数のシフトが 1 ビットずれていたことに起因する、非正規 `Float16` 値から `Float32` 値への誤った変換を修正しました (例: Numpy の `.npy` ファイルから読み取る場合) 。 [#106343](https://github.com/ClickHouse/ClickHouse/pull/106343) ([jh0x](https://github.com/jh0x)).
* `regexpExtract(haystack, pattern)` を修正し、capturing group のない pattern では `INDEX_OF_POSITIONAL_ARGUMENT_IS_OUT_OF_RANGE` をスローするのではなく、マッチ全体を返すようにしました。 [#106374](https://github.com/ClickHouse/ClickHouse/pull/106374) ([groeneai](https://github.com/groeneai)).
* `NaN` または無限大の点座標を含む source data から Polygon 辞書を構築する際に発生する論理エラーを修正しました。このような座標は、明確なエラーとともに拒否されるようになりました。 [#106423](https://github.com/ClickHouse/ClickHouse/pull/106423) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* HTTP Dictionary で、named collections を通じて request headers を指定できるようになりました。 [#106459](https://github.com/ClickHouse/ClickHouse/pull/106459) ([ZelvaMan](https://github.com/ZelvaMan)).
* 不正な形式の `Avro` enum 値を検証し、範囲外のメモリアクセスや server の終了を引き起こす代わりに、例外として拒否するようにしました。 [#106476](https://github.com/ClickHouse/ClickHouse/pull/106476) ([mstetsyuk](https://github.com/mstetsyuk)).
* 同順位の判定時に、`LIMIT WITH TIES` および小数指定の `LIMIT WITH TIES` が `ORDER BY ... COLLATE` の照合順序を考慮しない問題を修正しました。照合順序上は等しい行 (例: 数値照合順序における `'1'` と `'01'`) がバイト単位で比較されていたため、一部の同順位行が結果から誤って除外されていました。 [#106539](https://github.com/ClickHouse/ClickHouse/pull/106539) ([nihalzp](https://github.com/nihalzp)).
* 入力が照合順序 (`ORDER BY ... COLLATE`) でソートされている場合に、順序付き `DISTINCT` および順序付き `LIMIT BY` の最適化 (負の `LIMIT BY` を含む) が誤った結果を返す問題を修正しました。照合順序上は等しい行 (例: 大文字・小文字を区別しない照合順序における `'a'` と `'A'`) は照合キーで並べ替えられ、値としては隣接しないため、collator を使用する場合は順序付き最適化をスキップするようにしました。 [#106564](https://github.com/ClickHouse/ClickHouse/pull/106564) ([nihalzp](https://github.com/nihalzp)).
* NATS consumer のシャットダウン中に発生し、server が終了する可能性があった競合状態を修正しました。 [#106692](https://github.com/ClickHouse/ClickHouse/pull/106692) ([mstetsyuk](https://github.com/mstetsyuk)).
* 信頼できない入力から到達可能な format reader における、複数のメモリ安全性およびリソース枯渇の問題を修正しました。これには、native Parquet リーダーの `DataPageV2` における definition/repetition level の長さ処理時のヒープ範囲外読み取り、深くネストされたスキーマを持つ Parquet files でのスタックオーバーフロー、GeoParquet WKB/WKT geometry および Avro の文字列/バイト列の解析時に `max_memory_usage` を無視する割り当てが含まれます。 [#106739](https://github.com/ClickHouse/ClickHouse/pull/106739) ([Algunenano](https://github.com/Algunenano)).
* HTTPS クライアントに対して `keeper_server.http_control.secure_port` が平文 HTTP レスポンスを返していた問題を修正しました。セキュアポートで HTTPS が正しく提供されるようになりました。[#106822](https://github.com/ClickHouse/ClickHouse/pull/106822) ([linjiayu1025-collab](https://github.com/linjiayu1025-collab)).
* `SHOW CREATE ROW POLICY` が、他のキーワードと異なり `restrictive`/`permissive` を大文字ではなく小文字で出力していた問題を修正しました。[#106865](https://github.com/ClickHouse/ClickHouse/pull/106865) ([valerypetrov](https://github.com/valerypetrov)).
* パーティションキーに `LowCardinality(Nullable(...))` カラムを含むテーブルで、パーツを再読み込みするたびに (server の再起動、`DETACH`、または `ATTACH`) 、パーツが破損としてマークされデタッチされていた問題を修正しました。26.5 以降、このようなカラムの最小値と最大値が `NULL` の場合、パーツごとの minmax 索引ファイルが書き込まれなくなっていましたが、パーツ整合性チェックでは引き続きそのファイルが必要とされていました。影響を受けるバージョンで書き込まれたパーツには minmax 索引ファイルがないため、引き続き手動で再アタッチする必要があります。[#106945](https://github.com/ClickHouse/ClickHouse/pull/106945) ([PedroTadim](https://github.com/PedroTadim)).
* 非同期挿入フラッシュ (`AsyncInsertFlush`) クエリにおいて、`system.processors_profile_log` および `system.query_log` の `elapsed_us` が常にゼロとなり、`read_rows`/`read_bytes` が過少計上されていた問題を修正しました。[#106982](https://github.com/ClickHouse/ClickHouse/pull/106982) ([cwurm](https://github.com/cwurm)).
* `UNION`/`INTERSECT`/`EXCEPT` の一方のブランチが `Sparse` シリアル化されたカラムを読み取り、もう一方のブランチが同じカラムを完全なカラムとして読み取った場合 (たとえば materialized view へのプッシュ時) に発生していた、`Block structure mismatch in UnionStep stream` 論理エラー (debug/sanitizer ビルドでは server が異常終了し、release ビルドでは `Code: 49`) を修正しました。[#107041](https://github.com/ClickHouse/ClickHouse/pull/107041) ([groeneai](https://github.com/groeneai)).
* `optimize_read_in_order` および `read_in_order_use_virtual_row` を有効にした `UNION ALL` に対する `ORDER BY` クエリで、行の順序が不正になる問題を修正しました。[#107053](https://github.com/ClickHouse/ClickHouse/pull/107053) ([vdimir](https://github.com/vdimir)).
* `SHOW ROW POLICIES` または `SHOW MASKING POLICIES` の後に `FORMAT`、`SETTINGS`、または `INTO OUTFILE` 句が続く場合に構文エラーとなる問題を修正しました (例: `SHOW ROW POLICIES FORMAT TabSeparated`) 。[#107061](https://github.com/ClickHouse/ClickHouse/pull/107061) ([groeneai](https://github.com/groeneai)).
* カスタムのトリム文字セットが 16 文字を超える場合に `trimLeft`、`trimRight`、`trimBoth` (およびエイリアスの `ltrim`、`rtrim`、`trim`) が `TOO_LARGE_STRING_SIZE` をスローしていた問題を修正しました。任意の長さのトリムセットが再びサポートされるようになりました。[#107071](https://github.com/ClickHouse/ClickHouse/pull/107071) ([fm4v](https://github.com/fm4v)).
* `quantileExactExclusive`、`quantilesExactExclusive`、`quantileExactInclusive`、`quantilesExactInclusive` で、大きな範囲にまたがる `Int64` 入力に対して誤った結果を生成する可能性があった符号付き整数オーバーフローを修正しました。[#107154](https://github.com/ClickHouse/ClickHouse/pull/107154) ([groeneai](https://github.com/groeneai)).
* 設定の再読み込み時に起動スクリプトが再実行されなくなり、一度限りの起動アクションが再度実行されることを防止します。[#107187](https://github.com/ClickHouse/ClickHouse/pull/107187) ([mstetsyuk](https://github.com/mstetsyuk)).
* `max_streams_for_union_step` 設定によりユニオンパイプラインが縮小された場合に、`optimize_read_in_order` を有効にした `UNION ALL` に対する `ORDER BY` の結果順序が不正になる問題を修正しました。プランがソート済みの UNION 出力ストリームに依存する場合は、縮小をスキップするようになりました。[#107208](https://github.com/ClickHouse/ClickHouse/pull/107208) ([vdimir](https://github.com/vdimir)).
* server の終了処理の後半でプロキシ設定を解決する際に、null ポインタを逆参照する可能性があった問題を修正しました。[#107231](https://github.com/ClickHouse/ClickHouse/pull/107231) ([PedroTadim](https://github.com/PedroTadim)).
* `ORDER BY ... WITH FILL`で、補完対象カラムより前の ORDER BY カラムに`COLLATE`照合順序が指定されている場合に余分な行が生成される問題を修正しました。行はその照合順序を使用してソートプレフィックスごとにグループ化されるようになり、ソート順と一致します。[#107365](https://github.com/ClickHouse/ClickHouse/pull/107365) ([groeneai](https://github.com/groeneai)) 。
* 非有限の浮動小数点値 (`nan`や`inf`など) が`prometheusQuery` / `prometheusQueryRange`テーブル関数のタイムスタンプ/期間引数として渡された場合の未定義動作を修正しました。このような引数では、不正なタイムスタンプが生成される代わりに`BAD_ARGUMENTS`が発生するようになりました。[#107417](https://github.com/ClickHouse/ClickHouse/pull/107417) ([groeneai](https://github.com/groeneai)) 。
* `NULL`ペイロード値を保持する集約関数 (`*_respect_nulls`ファミリー: `anyRespectNulls`、`first_value_respect_nulls`、`anyLast_respect_nulls`、`last_value_respect_nulls`) に対する`optimize_rewrite_aggregate_function_with_if`最適化で誤った結果が返される問題を修正しました。このような関数では、この最適化によって`f(if(cond, x, NULL))`が`-If`形式に書き換えられなくなりました。[#107430](https://github.com/ClickHouse/ClickHouse/pull/107430) ([groeneai](https://github.com/groeneai)) 。
* ORC 入力内の不正な境界値に対する検証を追加しました。[#107580](https://github.com/ClickHouse/ClickHouse/pull/107580) ([al13n321](https://github.com/al13n321)) 。
* MySQL プロトコルポートにおける、認証不要でメモリ枯渇を引き起こすサービス拒否攻撃を修正しました。[#107599](https://github.com/ClickHouse/ClickHouse/pull/107599) ([tiandiwonder](https://github.com/tiandiwonder)) 。
* `MySQL Connector/J` 8.2.0以降 (9.xを含む) で MySQL インターフェイスを使用できない問題を修正しました。`OK`パケットの`info`フィールドは MySQL サーバーと同様に長さエンコードされるようになり、JDBC driverが接続できるようになりました。[#107693](https://github.com/ClickHouse/ClickHouse/pull/107693) ([alexey-milovidov](https://github.com/alexey-milovidov)) 。
* `UNION`/`INTERSECT`/`EXCEPT`の兄弟ブランチが`WHERE`述語のみ異なり、一方のブランチの述語が定数畳み込みによって`Const`カラムになった場合に発生していた、`Block structure mismatch in UnionStep stream`論理エラー (デバッグ/サニタイザービルドではサーバーが異常終了し、リリースビルドでは`Code: 49`) を修正しました。[#107719](https://github.com/ClickHouse/ClickHouse/pull/107719) ([groeneai](https://github.com/groeneai)) 。
* Apache Arrow Java 19.0.0より前 (Apache Sparkを含む) で生成された空の`String`または`Binary`カラムを持つ`Arrow`および`ArrowStream`データの読み取り時に、`INCORRECT_DATA`が発生しなくなりました。[#107764](https://github.com/ClickHouse/ClickHouse/pull/107764) ([Algunenano](https://github.com/Algunenano)) 。
* `Variant`判別子が存在しないバリアントを参照する不正な Native ブロックは、安全に拒否されるようになりました。[#107991](https://github.com/ClickHouse/ClickHouse/pull/107991) ([uwezkhan](https://github.com/uwezkhan)) 。
* 複数スレッドで`Dynamic`カラムを読み取る際のパフォーマンスリグレッションを修正しました。[#107997](https://github.com/ClickHouse/ClickHouse/pull/107997) ([Avogar](https://github.com/Avogar)) 。
* 非推奨のデータレイク設定`storage_catalog_url`がカタログガードによって正しく拒否されるようになりました (以前は`storage_catalog_type`と`storage_aws_access_key_id`のみがチェックされていました) 。また、エラーメッセージにはすべての非推奨設定が一覧表示されます。[#108040](https://github.com/ClickHouse/ClickHouse/pull/108040) ([alexey-milovidov](https://github.com/alexey-milovidov)) 。
* `ArrowFlight`テーブル関数/エンジンが、オプションの`dataset`キーを省略した名前付きコレクションを`No such key 'dataset'`エラーで拒否する問題を修正しました。[#108041](https://github.com/ClickHouse/ClickHouse/pull/108041) ([alexey-milovidov](https://github.com/alexey-milovidov)) 。
* シークレットと認証情報が、ログに記録されたビュー SQL に公開されるのではなく、`system.query_views_log.view_query` でマスクされるようになりました。[#108214](https://github.com/ClickHouse/ClickHouse/pull/108214) ([Fidelaggio](https://github.com/Fidelaggio))。
* JSON の型付きパスで `type_json_allow_duplicated_key_with_literal_and_nested_object` が機能しない問題を修正しました。[#108218](https://github.com/ClickHouse/ClickHouse/pull/108218) ([Avogar](https://github.com/Avogar))。
* 入力文字列が 32768 バイトを超え、文字セットを検出できない場合に、`detectCharset` および `detectLanguageUnknown` 関数で未定義動作 (`memcpy` に null ポインターが渡される) が発生する問題を修正しました。[#108250](https://github.com/ClickHouse/ClickHouse/pull/108250) ([groeneai](https://github.com/groeneai))。
* 遅延マテリアライゼーションとともに WHERE 句で `_part_starting_offset/_part_offset` 仮想カラムを使用するクエリで発生する `NOT_FOUND_COLUMN_IN_BLOCK` エラーを修正しました。[#108287](https://github.com/ClickHouse/ClickHouse/pull/108287) ([vdimir](https://github.com/vdimir))。
* `format_display_secrets_in_show_and_select` が無効 (デフォルト) の場合、`EXPLAIN actions`、`EXPLAIN header`、および `EXPLAIN PIPELINE` の出力で、`encrypt`、`decrypt`、`HMAC` などの関数のシークレット引数を非表示にしました。[#108386](https://github.com/ClickHouse/ClickHouse/pull/108386) ([Algunenano](https://github.com/Algunenano))。
* `CREATE OR REPLACE` は、その `TO` ターゲットが同じリフレッシャブルmaterialized view にすでに所有されている場合でも成功するようになりました。別のビューに所有されているターゲットは引き続き拒否されます。[#108392](https://github.com/ClickHouse/ClickHouse/pull/108392) ([evillique](https://github.com/evillique))。
* `file()` および Dictionary ソースと同様に、`catboostEvaluate` のモデルパスを `user_files` ディレクトリに制限しました。以前は、この関数は制約チェックなしで任意のファイルシステムパスを受け入れていたため、`user_files` 外のファイルの存在確認や読み取りをトリガーできました。モデルは現在、`user_files` 内に配置する必要があります。[#108463](https://github.com/ClickHouse/ClickHouse/pull/108463) ([groeneai](https://github.com/groeneai))。
* `CREATE OR REPLACE MATERIALIZED VIEW ... POPULATE` により、新しいビューがソーステーブルをサブスクライブしないままとなり、置換後に insert されたすべての行が暗黙的に失われる問題を修正しました。[#108728](https://github.com/ClickHouse/ClickHouse/pull/108728) ([alexey-milovidov](https://github.com/alexey-milovidov))。
* `GROUPING SETS`、`ROLLUP`、または `CUBE` と `max_threads > 1` を使用して `uniqExact` 集約状態をマージする際に発生するセグメンテーションフォールトを修正しました。[#108928](https://github.com/ClickHouse/ClickHouse/pull/108928) ([Algunenano](https://github.com/Algunenano))。
* 互換性設定の引き上げ時に発生する可能性がある論理エラー "Unexpected substream ... for column ..." を修正しました。[#109496](https://github.com/ClickHouse/ClickHouse/pull/109496) ([Avogar](https://github.com/Avogar))。
* `getClientHTTPHeader` 関数は、[RFC 9110](https://www.rfc-editor.org/info/rfc9110/#section-5.1) に従い、ヘッダー名を大文字小文字を区別せずに扱うようになりました。特に、`authorization` ヘッダーは大文字小文字にかかわらずフィルタリングされるようになりました。[#109791](https://github.com/ClickHouse/ClickHouse/pull/109791) ([Felixoid](https://github.com/Felixoid))。
* 非同期 INSERT と重複排除 (`async_insert=1`、`async_insert_deduplicate=1`) で発生するサイレントデータ損失を修正しました。異なる `insert_deduplication_token` 値を持つ複数の async-insert エントリが、互いに異なるパーティションに書き込む 1 回の flush に統合された場合、各トークンは、自身の行が書き込まれたパーティションだけでなく、flush が処理したすべてのパーティションの重複排除ログに登録されていました。その後、書き込み先ではなかったパーティションでこれらのトークンのいずれかを再利用して insert を行うと、サイレントに重複排除されていました。トークンは現在、実際にその行が書き込まれたパーティションに対してのみ登録されます。[#111049](https://github.com/ClickHouse/ClickHouse/pull/111049) ([groeneai](https://github.com/groeneai))。
* 非同期 Native フォーマットの INSERT を修正し、`ALTER ... MODIFY COLUMN` 後に非互換となったバッファ済みエントリが 1 件あっても、バッチ全体が失敗しないようにしました。 [#111108](https://github.com/ClickHouse/ClickHouse/pull/111108) ([Felixoid](https://github.com/Felixoid)).
* 別種のオブジェクトで Dictionary を `CREATE OR REPLACE` する際の問題を修正しました。置換がすでにコミットされた後に `CANNOT_DETACH_DICTIONARY_AS_TABLE` で失敗し、孤立した `_tmp_replace_*` テーブルが残ることがありました。 [#111142](https://github.com/ClickHouse/ClickHouse/pull/111142) ([evillique](https://github.com/evillique)).
* 証明書検証を有効にした TLS ハンドシェイク中に発生するピア証明書のメモリリークを修正しました。 [#111425](https://github.com/ClickHouse/ClickHouse/pull/111425) ([thevar1able](https://github.com/thevar1able)).
* フィルター分割最適化 (`query_plan_split_filter`) が、フィルター対象のカラム名が入力カラム名と同じ `WHERE` で実行された場合に発生する可能性があった論理エラー `Block structure mismatch in IntersectOrExceptStep stream: different number of columns` を修正しました。この最適化により内部カラム `__split_filter` がブランチ出力ヘッダーに残り、`INTERSECT` や `UNION` などの集合演算における兄弟ブランチとの不一致が生じていました。 [#111930](https://github.com/ClickHouse/ClickHouse/pull/111930) ([groeneai](https://github.com/groeneai)).
* 夏時間を採用するタイムゾーンで、`Time`、`Time64`、または `DateTime` 値に対して `toString` を使用するフィルターや `ORDER BY` 式で不正な結果が返る問題を修正しました。また、テーブルのソートキーのプレフィックスに対する `ORDER BY` と、`String` から `Nullable(String)` への変換における順序読み取り最適化を復元しました。 [#113291](https://github.com/ClickHouse/ClickHouse/pull/113291) ([vdimir](https://github.com/vdimir)).
* `kafka_num_consumers` が CPU コア数に基づく上限を超えている場合の `Kafka` テーブルの `ATTACH` を修正しました。 [#113390](https://github.com/ClickHouse/ClickHouse/pull/113390) ([evillique](https://github.com/evillique)).
* 不正なクエリ結果を防ぐため、projection 使用時は分散索引解析を無効化しました。 [#115132](https://github.com/ClickHouse/ClickHouse/pull/115132) ([azat](https://github.com/azat)).
* 行を空の結果に整形する際に、不正な結果または論理エラーを引き起こす可能性があった関数 `formatRowNoNewline` のバグを修正しました。 [#115669](https://github.com/ClickHouse/ClickHouse/pull/115669) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* 長さが 8 の倍数ではないバイナリ文字列リテラルの結果や、圧縮ブロックに本体がない場合の LZ4 展開処理で、初期化されていないメモリを返さないようにしました。 [#115704](https://github.com/ClickHouse/ClickHouse/pull/115704) ([alexey-milovidov](https://github.com/alexey-milovidov)).
* 異なるオブジェクト値が誤って重複排除されるのを防ぐため、重複排除ハッシュにオブジェクトパスを含めました。 [#115866](https://github.com/ClickHouse/ClickHouse/pull/115866) ([Felixoid](https://github.com/Felixoid)).
