> **Series**: #112871 -> **#112873** (this), #112872, #112874, #112875, #112876 **Problem.** When the batch `SubmitBatch` delete request itself fails, the per-object response loop is skipped, so zero `system.blob_storage_log` Delete events are recorded for the whole batch. Failure scenario: ``` removeObjectsBatchIfExists: SubmitBatch() throws (e.g. 403 on th
> **Series**: #112871 -> **#112874** (this), #112872, #112873, #112875, #112876 **Problem.** `checkDataPart` swallows a retryable error and returns empty checksums, so `CHECK TABLE` and the fetch path treat a transient failure as "verified" and can persist an empty integrity baseline. Failure scenario: ``` checkDataPart(): catch retryable -> return {} CHECK
Share query access info with the forwarded target insert so materialized views triggered on the target are recorded in the `views` column of `system.query_log`. <!-- Linked issues and pull requests. Use full GitHub URLs, one relationship per line; delete the lines you don't need. Closes: https://github.com/ClickHouse/ClickHouse/issues/NNNNN (auto-closes the
Split the four regular-function families containing more than 100 functions into individual reference pages with compact searchable overview indexes. This draft tests a different information architecture for the largest Mintlify reference pages, reducing the amount of interactive code-block content rendered on a single page while preserving generated documen
<!-- Linked issues and pull requests. Use full GitHub URLs, one relationship per line; delete the lines you don't need. Closes: https://github.com/ClickHouse/ClickHouse/issues/NNNNN (auto-closes the issue when this PR is merged into the default branch) Related: https://github.com/ClickHouse/ClickHouse/pull/NNNNN --> fix: https://github.com/ClickHouse/ClickHo
Related: https://github.com/ClickHouse/ClickHouse/pull/102343 Paimon incremental reads have documented at-most-once semantics: the Keeper watermark advances at file-collection time, before the collected batch is delivered, so a crash inside that window loses the batch. This window has been untestable — nothing can deterministically crash a server between two
Update anonymous public S3 documentation examples to pass `NOSIGN` explicitly following the ClickHouse 26.7 server credential behavior change. This prevents public reads from attempting to use server-managed credentials. The audit also found and repairs two stale public paths: the LAION guide now uses the surviving 10-million-row shard, and the S3 brace-expa
Unity Catalog on GCS vends an OAuth token in `gcp_oauth_token`, but `UnityCatalog` only parsed AWS temporary credentials for S3-compatible locations. As a result, table metadata could be listed while reads failed because no storage credentials were created. Parse the GCP OAuth token as `GCSCredentials` for both initial credential resolution and refresh. Add
### Changelog category (leave one): - New Feature ### Changelog entry (a [user-readable short description](https://github.com/ClickHouse/ClickHouse/blob/master/docs/changelog_entry_guidelines.md) of the changes that goes into CHANGELOG.md): Keeper can store data on disk now, in a custom LSM tree. It has similar performance to the previous storage. Use coordn
Closes https://github.com/ClickHouse/ClickHouse/issues/113993 `Range` previously tightened every `Int64` or `UInt64` endpoint without knowing the key type it would be compared against. Move that normalization into `KeyCondition` after checking the key type is represented by an integer, preserving integer pruning while keeping fractional and future non-intege
importance 1@EmeraldShiftopenpr-bugfixcan be testedv26.4-must-backportOriginal evidence ↗
### Changelog category (leave one): - Bug Fix (user-visible misbehavior in an official stable release) ### Changelog entry (a user-readable short description of the changes that goes to CHANGELOG.md): Fix ClickHouse Keeper refusing to start with `CORRUPTED_DATA` after a crash during cross-segment Raft log truncation (`writeAt`), which could leave an acknowle
Turns the primitive `??` "generate one SQL query" helper in the client into a full interactive AI agent, available with a single `?` (`??` is kept as an alias). The agent works over a live connection: it is given the context of the recent queries in the session (with results truncated to the first and last lines to save tokens, plus error messages) and can u
The top-K `ORDER BY <column> LIMIT n` optimization decides whether a query is filtered by looking at the plan-visible filters only: `where_clause = filter_step || getPrewhereInfo()`. A row policy is a reader-side filter that is not visible there, so a query filtered only by a policy took the unfiltered fast path: `MergeTreeDataSelectExecutor` enabled `perfor
Related: https://github.com/ClickHouse/ClickHouse/pull/113575 Related: https://github.com/ClickHouse/ClickHouse/pull/110613 ### Changelog category (leave one): - Build/Testing/Packaging Improvement ### Changelog entry (a [user-readable short description](https://github.com/ClickHouse/ClickHouse/blob/master/docs/changelog_entry_guidelines.md) of the changes t
Adds the `output_format_sql_insert_include_table_schema` setting for the `SQLInsert` output format. When enabled, `SQLInsert` prepends a `CREATE TABLE` statement derived from the query result schema, making the generated SQL directly replayable into an empty database. The table definition uses the result column names and types with `MergeTree` and `ORDER BY
<!--- A technical comment, you are free to remove or leave it as it is when PR is created The following categories are used in the next scripts, update them accordingly utils/changelog/changelog.py tests/ci/cancel_and_rerun_workflow_lambda/app.py --> ### Changelog category (leave one): - Bug Fix (user-visible misbehavior in an official stable release) ### Ch
### Changelog category (leave one): - New Feature ### Changelog entry (a [user-readable short description](https://github.com/ClickHouse/ClickHouse/blob/master/docs/changelog_entry_guidelines.md) of the changes that goes into CHANGELOG.md): Add incremental refreshable materialized views managed via refresh_incremental, which when used each refresh reads only
Fixes https://github.com/ClickHouse/clickhouse-private/issues/65753. ### Changelog category (leave one): - Bug Fix (user-visible misbehavior in an official stable release) ### Changelog entry (a [user-readable short description](https://github.com/ClickHouse/ClickHouse/blob/master/docs/changelog_entry_guidelines.md) of the changes that goes into CHANGELOG.md
Related: https://github.com/ClickHouse/ClickHouse/pull/110833 This is the `getTreeHash` part of #110833, split off because it stands on its own: it fixes wrong results that have nothing to do with that pull request's motivation (comparing stored table definitions). Only the `src/Parsers` changes were taken; the `sameAST` helper and the metadata comparison st
Reverts https://github.com/ClickHouse/ClickHouse/pull/110733 (merge commit `48ebef16af656664bab51cd5bb605a65e9b8ec9e`), which added the `nats_credentials` setting to the `NATS` table engine. Removed by this pull request: * the `nats_credentials` setting and its use in `NATSConnection` (`natsOptions_SetUserCredentialsFromMemory`), so the engine again takes cr
Closes: https://github.com/ClickHouse/ClickHouse/issues/113419 Related: https://github.com/ClickHouse/ClickHouse/pull/113406 `Tuple()` can be sorted, but the scalar comparison functions used by `__topKFilter` reject zero-sized tuples. This change skips top-K dynamic filtering when the sort column is directly `Tuple()`. A nested empty `Tuple`, including throu
A copy-paste slip in `XDGBaseDirectories`: `ENV_XDG_CACHE_HOME` was defined as `"XDG_STATE_HOME"`, so `XDGBaseDirectories::getCacheHome` ignored the `XDG_CACHE_HOME` environment variable and obeyed `XDG_STATE_HOME` instead. `getCacheHome` currently has no in-tree callers, so this does not change observable behavior yet; it fixes the helper before callers app
Fix nested disk S3 I/O ignoring inner RESOURCE throttler at DiskObjectStorage entry points ### Changelog category (leave one): - Bug Fix (user-visible misbehavior in an official stable release) ### Changelog entry (a user-readable short description of the changes that goes into CHANGELOG.md): Fix nested disk RESOURCE bandwidth limiting: when a cache disk wra
- https://github.com/PeerDB-io/peerdb/pull/4635 - https://github.com/PeerDB-io/peerdb/pull/4632 ### Changelog category - Documentation (changelog entry is not required) ### Changelog entry Document `DEFAULT ...` DDL propagation for mysql and postgres ClickPipes. <!-- ch-version-info:start --> ### Version info - Merged into: `26.8.1.1323` (included in `26.8`
<!-- Linked issues and pull requests. Use full GitHub URLs, one relationship per line; delete the lines you don't need. Closes: https://github.com/ClickHouse/ClickHouse/issues/NNNNN (auto-closes the issue when this PR is merged into the default branch) Related: https://github.com/ClickHouse/ClickHouse/pull/NNNNN --> ### Changelog category (leave one): - Not
The build job populated the submodule working trees with a bare `git submodule update` on a submodule cache hit, which walks the submodules one at a time on a single core. In `Build (arm_tidy)` on master that step takes 39 s at ~3% CPU of a 32-core `m8g.8xlarge` — an otherwise idle machine waiting on one `git` process, right before the equally single-threade
<!--- A technical description of your changes with a motivation --> The second-pass vector search optimization (`vector_search_with_rescoring = 0`) removed the distance function from the `ExpressionStep` outputs and re-appended the rewritten `_distance` alias at the end, changing the header column order. Steps created above the `Sorting` before that rewrite
Enable documentation review requests now that the relevant teams have repository access. ClickPipes documentation changes request reviews from both `docs` and `clickpipes`; language-client and connector documentation changes request reviews from both `docs` and `integrations-ecosystem`. Documentation reviews are skipped when a PR also changes files under `sr
Related: https://github.com/ClickHouse/ClickHouse/pull/109739 ## Problem The Iceberg spec lets `current-snapshot-id` be absent, `-1`, or JSON null, and all three mean the same thing: the table has no current snapshot. External writers do emit `"current-snapshot-id": null`. Reading such a table, several commands fail with an unrelated Poco conversion error in
<!-- PR title: Fix error message for ALTER DROP COLUMN of a column used in a key expression --> Closes: https://github.com/ClickHouse/ClickHouse/issues/71776 Related follow-up issues: #114481, #114181 `ALTER DROP COLUMN` and `ALTER CLEAR COLUMN` behaved inconsistently on a column that belongs to `ORDER BY`, `PRIMARY KEY` or `PARTITION BY` An `ALTER` is valid
<!-- Related: https://github.com/ClickHouse/ClickHouse/pull/113834 Related: https://github.com/ClickHouse/ClickHouse/pull/113528 --> Scheduled patch releases stopped incrementing the patch number — successive releases on a branch reused the same `vX.Y.P.*` line (e.g. `26.6.2.81`, `26.6.2.158`, `26.6.2.160`), because the post-release version bump was lost whe
Original pull-request https://github.com/ClickHouse/ClickHouse/pull/113289 ## Do not merge this PR manually This pull-request is a first step of an automated backporting. It contains changes similar to calling `git cherry-pick` locally. If you intend to continue backporting the changes, then resolve all conflicts if any. Otherwise, if you do not want to back
importance 1@robot-ch-test-poll3closeddo not testpr-bugfixpr-cherrypickOriginal evidence ↗
Original pull-request https://github.com/ClickHouse/ClickHouse/pull/113289 ## Do not merge this PR manually This pull-request is a first step of an automated backporting. It contains changes similar to calling `git cherry-pick` locally. If you intend to continue backporting the changes, then resolve all conflicts if any. Otherwise, if you do not want to back
importance 1@robot-ch-test-poll3closeddo not testpr-bugfixpr-cherrypickOriginal evidence ↗
Original pull-request https://github.com/ClickHouse/ClickHouse/pull/113289 This pull-request is a last step of an automated backporting. Treat it as a standard pull-request: look at the checks and resolve conflicts. Merge it only if you intend to backport changes to the target branch, otherwise just close it. ### The PR source The PR is created in the [CI jo
Leasing Stateless Workers only makes sense for a distributed query plan, so `distributed_plan_workers_num` no longer has to be paired with `make_distributed_plan`: a non-zero Worker count enables the plan on its own. An explicit `make_distributed_plan` still wins if provided. The implication is applied before the adjustments added in https://github.com/Click
### Changelog category (leave one): - Not for changelog (changelog entry is not required) ## Background First part of [#99754](https://github.com/ClickHouse/ClickHouse/pull/99754) This one adds the data structure — `ColumnId`, `ColumnIdMapping`, its durable store, and the schema fields that carry a mapping: - `ColumnId`: a strong typed struct to replace the
Adds a community-maintained ProbeDeck integration guide for iOS and iPadOS. The guide covers ClickHouse Cloud and self-hosted setup, database authentication, mTLS, SSH bastions, monitoring sources, a reproducible query, limits, and troubleshooting. It also adds ProbeDeck to the SQL client navigation and overview. The screenshots use deterministic synthetic d
importance 1@chamavclosedpr-documentationmanual approvecan be testedpr-synced-to-cloudOriginal evidence ↗
<!-- Linked issues and pull requests. Use full GitHub URLs, one relationship per line; delete the lines you don't need. Closes: https://github.com/ClickHouse/ClickHouse/issues/NNNNN (auto-closes the issue when this PR is merged into the default branch) Related: https://github.com/ClickHouse/ClickHouse/pull/NNNNN --> Improves the [supported cloud regions page
<!-- Linked issues and pull requests. Use full GitHub URLs, one relationship per line; delete the lines you don't need. Closes: https://github.com/ClickHouse/ClickHouse/issues/NNNNN (auto-closes the issue when this PR is merged into the default branch) Related: https://github.com/ClickHouse/ClickHouse/pull/NNNNN --> ### Changelog category (leave one): - Impr
The partial+merge aggregation strategy of `make_distributed_plan` rewrites a final aggregation into a partial `AggregatingStep` plus a memory-efficient `MergingAggregatedStep`. The memory-efficient merge consumes each input as a stream of two-level buckets in ascending order, but the rewrite kept `should_produce_results_in_order_of_bucket_number = false` on
### Changelog category (leave one): - Improvement ### Changelog entry (a [user-readable short description](https://github.com/ClickHouse/ClickHouse/blob/master/docs/changelog_entry_guidelines.md) of the changes that goes into CHANGELOG.md): todo
Evaluating `LIKE`/`ILIKE` by scanning the text index dictionary always used an exact direct read, which removes the original condition from the query plan. That is only valid when a matching dictionary token proves the predicate, which is not the case when the index is built on a container while the predicate reads a single element out of it: with an index o
### Changelog category (leave one): - CI Fix or improvement (changelog entry is not required) ### Changelog entry (a user-readable short description of the changes that goes to CHANGELOG.md): Raise the log-wait timeout in the integration test `test_storage_kafka/test_keeper_session_loss_direct_read.py` to fix its flakiness. The test waits for the `StorageKaf
Adds the unattended `continue-pr-auto` skill and the `utils/continue-all-prs.sh` driver that runs it over the open pull requests, with a status bar renderer (`utils/continue-all-prs-status.py`) and an `utils/exclude-authors.txt` list. `continue-pr` keeps its interactive behavior (it may still ask about ambiguous conflicts and unclear reviewer suggestions); `
`CancellationChecker::appendTask` derived a query's cancellation deadline from the current time truncated to whole milliseconds, and then aligned it up to the 100 ms grid the worker batches deadlines on. The alignment normally hides the truncation, but when the deadline already sits on the grid - one query in a hundred - it adds no padding, and the deadline
Closes: https://github.com/ClickHouse/ClickHouse/issues/100613 Closes: https://github.com/ClickHouse/ClickHouse/issues/50237 Related: https://github.com/ClickHouse/ClickHouse/pull/99281 ## Problem A `MATERIALIZED` column computed from another `MATERIALIZED` column is never recalculated by `ALTER TABLE ... UPDATE`. It keeps the value `INSERT` computed, foreve