Antalya 25.8: Bump to 25.8.33 - #2287
Open
zvonand wants to merge 60 commits into
Open
Conversation
…bsAssignee::start and finish
…icy AST in place in `Merge`
…3563 Backport ClickHouse#113563 to 25.8: Do not analyze the shared row policy AST in place in `Merge`
…`-Cluster` table functions
…mit::query_map causing LOGICAL_ERROR
…icas read when the requested stage cannot absorb finalized data
Backport ClickHouse#94748 to 25.8: Fix invalid result of joining two `-Cluster` table functions
…ore releasing the format's read buffer
The original change was followed by a test-oracle correction which was not included in this backport. Verify that each forced dictionary reload reaches Parquet row-group reading before considering the lifetime regression covered. CI report: ClickHouse#114927
The dictionary reload executes outside the client query profile-event accounting, so querying `system.query_log` for `ParquetReadRowGroups` always returns zero even after a reload reads Parquet row groups. Keep the forced reload checks and remove the invalid profile-event assertion. CI report: ClickHouse#114927
…3742 Backport ClickHouse#113742 to 25.8: Skip the custom-key parallel replicas read when the requested stage cannot absorb finalized data
…7028 Backport ClickHouse#107028 to 25.8: Fix data race on FileCacheQueryLimit::query_map causing LOGICAL_ERROR
Derive the dictionary source path from the `file` table function so the test uses the actual absolute location when `user_files_path` is empty. CI report: ClickHouse#114927
…before rewrite it, fix no such key thrown
…ORE to survive power loss
…e_fsync_after_insert The test read the `files` column of `system.parts` to size the encrypted-incremental-restore fsync assertion. That column was added by 476e9fc in January, after 25.8 forked, so the automated 25.8 backport of ClickHouse#111378 (ClickHouse#115088) fails at runtime with UNKNOWN_IDENTIFIER even though the cherry-pick applied cleanly and the script is byte-identical to master. The empty shell variable then also fails the `{files:UInt64}` parameter binding. The count the assertion wants is how many files RESTORE copies and must therefore fsync. The test already measures exactly that for its first table via `SELECT path FROM system.parts` plus `find`, so feed the encrypted arm the same count and drop the column read. The two tables have identical schema, data and part-layout settings, so their parts hold the same file set; the physical count is also larger than the checksums map (18 vs 14 on master), since it covers checksums.txt, columns.txt and the zero-byte arr.bin, so the assertion gets stronger rather than weaker. Validated on the official 25.8 binary: the old test reproduces both errors, the new one runs to completion. On master the encrypted restore performs 20 FileSync events against a required 18, the two arms' part file lists are identical on both branches (18 files on master, 15 on 25.8), disabling fsync_after_insert still fails the test, and 50/50 runs pass with randomized settings. Related: ClickHouse#111378 Related: ClickHouse#115088 Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> (cherry picked from commit fd8fc0c)
Backport ClickHouse#87838 to 25.8: unlink METADATA_VERSION_FILE_NAME before rewrite it, fix no such key thrown
Backport of ClickHouse#112327 to 25.8. The robot cherry-pick (ClickHouse#114796) conflicts in src/Dictionaries/DictionaryHelpers.h because the materializing call in getColumnVectorData is removeSpecialRepresentations on master and recursiveRemoveSparse here; removeSpecialRepresentations does not exist on this branch. The resolution keeps 25.8's call and takes the fix's predicate, so the resolved change is the same 8 insertions and 7 deletions as the merged commit. 25.8 is affected. On the official 25.8.30.17 binary the amplified repro (a 2M-row sparse probe joined to a FLAT dictionary with join_algorithm = 'direct') segfaults in 2 of 7 runs, and with jemalloc junk filling it fails 4 of 4 with "Invalid number of rows in Chunk ... expected 65409, got 0". Writing the same data densely passes. A value comparison alone cannot see this: freed but intact memory still returns the right numbers, which is why both arms agreed until the freed page was poisoned. Verified in both directions with a clang-19 Debug build, 25.8's pinned compiler, build ids asserted against the running server. The pristine branch aborts on the first assertion of the ported test, at PODArray::operator[] inside FlatDictionary::hasKeys reached through IDictionary::getByKeys and DirectKeyValueJoin::joinBlock, which is the mechanism reported on master. With the fix the test passes and the repro returns the correct result 3 of 3 runs. The test carries one branch adaptation: enable_lazy_columns_replication does not exist on 25.8 and is rejected as an unknown setting, so it is dropped from the ARRAY JOIN statement. The statement and every assertion are kept. The comment drops ColumnReplicated from the carrier list because that class does not exist here. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> The test comments describe what each statement asserts at the SQL level and no longer name C++ functions or classes, per the review of the master commit. The statements and the reference are unchanged: stripping comments from both revisions yields byte-identical SQL (md5 5a88d22c5d3f4aedbdeb8befef6c0ef9), and both format to the same AST.
…8329 Backport ClickHouse#108329 to 25.8: Bump `libssh` to 0.12.0
…mization when the aggregate argument contains arrayJoin
Backport ClickHouse#99366 to 25.8: Fix data race between BackgroundJobsAssignee::start and finish
…th for null bytes
`unnest`, a case-insensitive alias of `arrayJoin`, was registered only in 8601d0f (2026-05-16), after the 25.8 branch point. On this branch the analyzer throws `UNKNOWN_FUNCTION` at the second statement of the test's single client call, which also skipped statements 3-19: every `optimize_trivial_count_query = 0` control, the four "optimization is kept" arms and all four `EXPLAIN` plan assertions. So the backport carried no verification of the fix it exists to port. This mirrors the master change c97ca0b (ClickHouse#115505), which dropped the two `unnest` arms and relocated the alias coverage into `04241_alias_unnest` - a test that does not exist on this branch, precisely because the alias does not. Nothing is lost at the guard itself: `FunctionNode::resolveAsFunction` stores the canonical name, so `hasFunctionNode(..., "arrayJoin")` sees the `unnest` arms identically to the `arrayJoin` ones, and the surviving 20 reference lines are byte-identical with and without them. CI report: https://s3.amazonaws.com/clickhouse-test-reports/json.html?PR=115468&sha=77b6ebb9c8604d45e2db4a7111e93258704076fa&name_0=BackportPR Related: ClickHouse#115227 Related: ClickHouse#115505 Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
…112327-25.8 Resolve the 25.8 cherry-pick conflict of ClickHouse#112327
…5227 Backport ClickHouse#115227 to 25.8: Do not use the trivial count optimization when the aggregate argument contains arrayJoin
…that hide argument nullability inside uniq
…RowNoNewline` with empty rows
…5669 Backport ClickHouse#115669 to 25.8: Fix out-of-bounds read in `formatRowNoNewline` with empty rows
…5466 Backport ClickHouse#115466 to 25.8: Do not strip injective functions that hide argument nullability inside uniq
…l to the type's default value
…0283 Backport ClickHouse#100283 to 25.8: Validate Iceberg metadata file path for null bytes
The vectorized `String = FixedString` equality on 25.8 does not ignore the `FixedString` padding (that fix is not on this branch), so the `arrayFilter` oracle of `04881_low_cardinality_default_value_needle` reads 0 where master reads 1. The `LowCardinality` result itself (1) matches master, so assert only it. Failure: https://s3.amazonaws.com/clickhouse-test-reports/json.html?PR=115918&sha=latest&name_0=BackportPR&name_1=Stateless%20tests%20(amd_asan%2C%20distributed%20plan%2C%20parallel%2C%202%2F2) PR: ClickHouse#115918 Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…y in query results
…5704 Backport ClickHouse#115704 to 25.8: Do not expose uninitialized memory in query results
…4624 Backport ClickHouse#114624 to 25.8: Find a LowCardinality needle equal to the type's default value
Release v25.8.33.6-lts
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Changelog category (leave one):
CI/CD Options
Exclude tests:
Regression jobs to run: