Cherry pick #101178 to 25.8: Fix crash when GLOBAL IN set lacks explicit elements during DIA by robot-clickhouse-ci-1 · Pull Request #102712 · ClickHouse/ClickHouse · GitHub
Skip to content

Cherry pick #101178 to 25.8: Fix crash when GLOBAL IN set lacks explicit elements during DIA#102712

Closed
robot-clickhouse-ci-1 wants to merge 10 commits into
backport/25.8/101178from
cherrypick/25.8/101178
Closed

Cherry pick #101178 to 25.8: Fix crash when GLOBAL IN set lacks explicit elements during DIA#102712
robot-clickhouse-ci-1 wants to merge 10 commits into
backport/25.8/101178from
cherrypick/25.8/101178

Conversation

@robot-clickhouse-ci-1

Copy link
Copy Markdown
Contributor

Original pull-request #101178

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 backport them, then just close this pull-request.

The check results does not matter at this step - you can safely ignore them.

Troubleshooting

If the conflicts were resolved in a wrong way

If this cherry-pick PR is completely screwed by a wrong conflicts resolution, and you want to recreate it:

  • delete the pr-cherrypick label from the PR
  • delete this branch from the repository

You also need to check the Original pull-request for pr-backports-created label, and delete if it's presented there

The PR source

The PR is created in the CI job

groeneai and others added 10 commits March 30, 2026 08:38
…ed index analysis

When distributed index analysis (DIA) encounters a GLOBAL IN predicate
whose set has been built without explicit elements (e.g. because
use_index_for_in_with_subqueries_max_values was exceeded during
buildOrderedSetInplace), setExternalTable() would crash with:
"Trying to attach external table to a ready set without explicit elements"

This happened in stress tests where the AST fuzzer could produce queries
with GLOBAL IN on tables with DIA enabled, and the set had too many
elements to retain explicit values (only hashes remained).

The fix adds a check in tryBuildAdditionalFilterAST(): if the set is
already built without explicit elements, the GLOBAL IN predicate is
skipped from the distributed filter. DIA still functions correctly —
it just won't use this predicate for remote index analysis, which is
a slight optimization loss but maintains correctness.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
…t-set-elements

Fix crash when GLOBAL IN set lacks explicit elements during DIA
@robot-clickhouse-ci-1 robot-clickhouse-ci-1 added pr-cherrypick Cherry-pick of merge-commit before backporting. Do not use manually - automated use only! do not test disable testing on pull request pr-bugfix Pull request with bugfix, not backported by default labels Apr 14, 2026
@nickitat nickitat closed this Apr 16, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

do not test disable testing on pull request pr-bugfix Pull request with bugfix, not backported by default pr-cherrypick Cherry-pick of merge-commit before backporting. Do not use manually - automated use only!

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants