Skip to content

Backport #118796 to 26.7: Iceberg manifest list partition summaries - #119200

Merged
clickhouse-gh[bot] merged 2 commits into
26.7from
backport/26.7/118796
Sep 13, 2026
Merged

Backport #118796 to 26.7: Iceberg manifest list partition summaries#119200
clickhouse-gh[bot] merged 2 commits into
26.7from
backport/26.7/118796

Conversation

@robot-clickhouse-ci-2

@robot-clickhouse-ci-2 robot-clickhouse-ci-2 commented Sep 10, 2026

Copy link
Copy Markdown
Contributor

Original pull-request #118796

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 job

Version info

  • Merged into: 26.7.8.8

@robot-clickhouse-ci-2 robot-clickhouse-ci-2 added the pr-backport Changes, backported to release branch. Do not use manually - automated use only! label Sep 10, 2026
@clickhouse-gh

clickhouse-gh Bot commented Sep 10, 2026

Copy link
Copy Markdown
Contributor

Workflow [BackportPR], commit [6dfa588]

Summary:

@clickhouse-gh clickhouse-gh Bot added the external Author is not a member of the ClickHouse organization label Sep 11, 2026
@maxknv maxknv removed the external Author is not a member of the ClickHouse organization label Sep 11, 2026
`test_writes_manifest_list_partition_summary` asserts the raw bytes
of the manifest-list partition summary, and it is the first test to do
so, which is why it fails on this branch for every parametrisation
while it is green on master:

  At index 1 diff: (False, None, b'\x0b\x00\x00\x00\x00\x00\x00\x00', ...) != (False, None, b'\x0b\x00\x00\x00', ...)

The `Int32` partition bound is written as 8 bytes where Appendix D of
the Iceberg specification requires 4. `dumpValue` sizes its output as
`sizeof(T)` with `T` deduced from its argument, and
`Field::safeGet<Int32>` returns `NearestFieldType<Int32>`, which is
`Int64`, so the branch asks for an `Int32` and gets an 8-byte value.

Narrow before `dumpValue` sees it, with the same `static_cast<Int32>`
the neighbouring small-integer branch already uses. This is the source
half of `3dc6b4f4ef32` (#117571, `Closes #117072`), which never got a
backport label; this branch needs it because the test it adds pins the
spec width. That test is the coverage here, so the stateless test of
the original commit is left out rather than duplicated.

The data-file bounds are corrected by the same line, so this branch
stops writing manifests that `pyiceberg` refuses to plan a filtered
scan over (`unpack requires a buffer of 4 bytes`). No reader change is
needed in either direction: `ColumnVector::insertData` ignores the
buffer length and does `unalignedLoad<T>(pos)`, so an existing 8-byte
bound still decodes.

Related: #117571
Related: #117072
@clickhouse-gh
clickhouse-gh Bot merged commit 7f6ff14 into 26.7 Sep 13, 2026
38 of 39 checks passed
@clickhouse-gh
clickhouse-gh Bot deleted the backport/26.7/118796 branch September 13, 2026 21:12
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

pr-backport Changes, backported to release branch. Do not use manually - automated use only!

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants