Skip to content

Proper handle sparse nullable columns in inner/left joins#93038

Merged
Avogar merged 1 commit intoClickHouse:masterfrom
amosbird:fix-92920
Dec 29, 2025
Merged

Proper handle sparse nullable columns in inner/left joins#93038
Avogar merged 1 commit intoClickHouse:masterfrom
amosbird:fix-92920

Conversation

@amosbird
Copy link
Collaborator

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 join results when the right-side join key is a sparse column. This closes #92920. I can only reproduce the bug with set compatibility='23.3'. Not sure if it should be backported.

Documentation entry for user-facing changes

  • Documentation is written (mandatory for new features)

@clickhouse-gh
Copy link
Contributor

clickhouse-gh bot commented Dec 25, 2025

Workflow [PR], commit [1ef1fa5]

Summary:

job_name test_name status info comment
Integration tests (amd_asan, db disk, old analyzer, 2/6) failure
test_storage_s3_queue/test_5.py::test_shutdown_order FAIL IGNORED
test_storage_s3_queue/test_5.py::test_mv_settings[1-unordered] FAIL IGNORED
test_storage_s3_queue/test_5.py::test_mv_settings[1-ordered] FAIL IGNORED
test_storage_s3_queue/test_5.py::test_mv_settings[9999999999-unordered] FAIL IGNORED
test_storage_s3_queue/test_5.py::test_mv_settings[9999999999-ordered] FAIL IGNORED
test_storage_s3_queue/test_5.py::test_detach_attach_table FAIL IGNORED
test_storage_s3_queue/test_5.py::test_failed_startup FAIL IGNORED
test_storage_s3_queue/test_5.py::test_create_or_replace_table FAIL IGNORED
test_storage_s3_queue/test_5.py::test_persistent_processing_nodes_cleanup FAIL IGNORED
test_storage_s3_queue/test_5.py::test_persistent_processing FAIL IGNORED
2 more test cases not shown
Integration tests (arm_binary, distributed plan, 4/4) failure
test_userspace_page_cache/test.py::test_size_adjustment FAIL issue ISSUE EXISTS
Integration tests (amd_tsan, 2/6) failure
test_backup_restore_on_cluster/test_disallow_concurrency.py::test_concurrent_backups_on_same_node FAIL IGNORED
test_backup_restore_on_cluster/test_disallow_concurrency.py::test_concurrent_backups_on_different_nodes FAIL IGNORED
test_backup_restore_on_cluster/test_disallow_concurrency.py::test_concurrent_restores_on_same_node FAIL issue ISSUE EXISTS
test_backup_restore_on_cluster/test_disallow_concurrency.py::test_concurrent_restores_on_different_node FAIL IGNORED
test_storage_s3_queue/test_5.py::test_shutdown_order FAIL IGNORED
BuzzHouse (amd_debug) failure
Logical error: 'Inconsistent AST formatting: the query: (STID: 1941-1bfa) FAIL issue ISSUE EXISTS

@clickhouse-gh clickhouse-gh bot added the pr-bugfix Pull request with bugfix, not backported by default label Dec 25, 2025
@Avogar Avogar self-assigned this Dec 29, 2025
@Avogar Avogar added this pull request to the merge queue Dec 29, 2025
Merged via the queue into ClickHouse:master with commit 39e022d Dec 29, 2025
126 of 131 checks passed
@robot-clickhouse robot-clickhouse added the pr-synced-to-cloud The PR is synced to the cloud repo label Dec 29, 2025
@fm4v fm4v added pr-must-backport Pull request should be backported intentionally. Use this label with great care! v25.12-must-backport labels Jan 21, 2026
@robot-ch-test-poll3 robot-ch-test-poll3 added the pr-must-backport-synced The `*-must-backport` labels are synced into the cloud Sync PR label Jan 21, 2026
robot-clickhouse added a commit that referenced this pull request Jan 21, 2026
Cherry pick #93038 to 25.3: Proper handle sparse nullable columns in inner/left joins
robot-clickhouse added a commit that referenced this pull request Jan 21, 2026
robot-clickhouse added a commit that referenced this pull request Jan 21, 2026
Cherry pick #93038 to 25.8: Proper handle sparse nullable columns in inner/left joins
robot-clickhouse added a commit that referenced this pull request Jan 21, 2026
robot-clickhouse added a commit that referenced this pull request Jan 21, 2026
Cherry pick #93038 to 25.10: Proper handle sparse nullable columns in inner/left joins
robot-clickhouse added a commit that referenced this pull request Jan 21, 2026
robot-clickhouse added a commit that referenced this pull request Jan 21, 2026
Cherry pick #93038 to 25.11: Proper handle sparse nullable columns in inner/left joins
robot-clickhouse added a commit that referenced this pull request Jan 21, 2026
robot-clickhouse added a commit that referenced this pull request Jan 21, 2026
Cherry pick #93038 to 25.12: Proper handle sparse nullable columns in inner/left joins
robot-clickhouse added a commit that referenced this pull request Jan 21, 2026
@robot-ch-test-poll1 robot-ch-test-poll1 added the pr-backports-created Backport PRs are successfully created, it won't be processed by CI script anymore label Jan 21, 2026
Avogar added a commit that referenced this pull request Jan 23, 2026
Backport #93038 to 25.12: Proper handle sparse nullable columns in inner/left joins
Avogar added a commit that referenced this pull request Jan 23, 2026
Backport #93038 to 25.11: Proper handle sparse nullable columns in inner/left joins
Avogar added a commit that referenced this pull request Jan 23, 2026
Backport #93038 to 25.10: Proper handle sparse nullable columns in inner/left joins
Avogar added a commit that referenced this pull request Jan 23, 2026
Backport #93038 to 25.8: Proper handle sparse nullable columns in inner/left joins
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

pr-backports-created Backport PRs are successfully created, it won't be processed by CI script anymore pr-bugfix Pull request with bugfix, not backported by default pr-must-backport Pull request should be backported intentionally. Use this label with great care! pr-must-backport-synced The `*-must-backport` labels are synced into the cloud Sync PR pr-synced-to-cloud The PR is synced to the cloud repo v25.12-must-backport

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Logical error: Column 'col1 Int64 Sparse(size = 0, Nullable(size = 1, Int64(size = 1), UInt8(size = 1)), UInt64(size = 0))' is expected to be nullable

6 participants