Skip to content

Antalya 26.6: Support Nullable(Tuple) for Arrow, ArrowStream, ORC, legacy Parquet formats - #2176

Open
zvonand wants to merge 3 commits into
antalya-26.6from
feature/antalya-26.6/pr-1802-1
Open

Antalya 26.6: Support Nullable(Tuple) for Arrow, ArrowStream, ORC, legacy Parquet formats#2176
zvonand wants to merge 3 commits into
antalya-26.6from
feature/antalya-26.6/pr-1802-1

Conversation

@zvonand

@zvonand zvonand commented Aug 6, 2026

Copy link
Copy Markdown
Member

Changelog category (leave one):

  • Improvement

Changelog entry (a user-readable short description of the changes that goes to CHANGELOG.md):

Support Nullable(Tuple) for Arrow, ArrowStream, ORC, legacy Parquet formats (ClickHouse#101272 by @nihalzp) (#1802 by @zvonand).

CI/CD Options

Exclude tests:

  • Fast test
  • Integration Tests
  • Stateless tests
  • Stateful tests
  • Performance tests
  • All with ASAN
  • All with TSAN
  • All with MSAN
  • All with UBSAN
  • All with Coverage
  • All with Aarch64
  • All Regression
  • Disable CI Cache

Regression jobs to run:

  • Fast suites (mostly <1h)
  • Aggregate Functions (2h)
  • Alter (1.5h)
  • Benchmark (30m)
  • ClickHouse Keeper (1h)
  • Iceberg (2h)
  • LDAP (1h)
  • Parquet (1.5h)
  • RBAC (1.5h)
  • SSL Server (1h)
  • S3 (2h)
  • S3 Export (2h)
  • Swarms (30m)
  • Tiered Storage (2h)

Cherry-picked from #1802.

zvonand added 2 commits August 6, 2026 12:56
…next commit)

---
Original cherry-pick message follows:

Merge pull request #1802 from Altinity/feature/antalya-26.3/ClickHouse-ClickHouse-pr-101272

Antalya 26.3: Support Nullable(Tuple) for Arrow, ArrowStream, ORC, legacy Parquet formats
# Conflicts:
#	src/Processors/Formats/Impl/ArrowColumnToCHColumn.cpp
#	src/Processors/Formats/Impl/CHColumnToArrowColumn.cpp
#	src/Processors/Formats/Impl/MsgPackRowInputFormat.cpp
#	tests/queries/0_stateless/04064_tuple_inside_nullable_arrow_orc_roundtrip.reference
#	tests/queries/0_stateless/04064_tuple_inside_nullable_arrow_orc_roundtrip.sql
#	tests/queries/0_stateless/04065_tuple_inside_nullable_parquet_roundtrip.reference
#	tests/queries/0_stateless/04065_tuple_inside_nullable_parquet_roundtrip.sql
All conflicted hunks resolved in favour of antalya-26.6 ("ours"): the
source PR's changes are already present on the base branch in an evolved
form (upstream ClickHouse#101272 plus its 26.6 follow-ups), so no source-PR line is
lost:

* ArrowColumnToCHColumn.cpp: `unwrapNullableTuple` list/Nested handling and
  the null-value zeroing in `readColumnWithNumericData` are already on
  antalya-26.6; kept the base branch's extra last-offset validation and the
  `schema_inference_allow_nullable_tuple_type`-gated STRUCT condition
  (backport of ClickHouse#109185), which supersedes the PR's unconditional removal of
  the STRUCT check.
* CHColumnToArrowColumn.cpp: struct-level null handling already exists on
  antalya-26.6 via `nullBytemapToArrowBitmap` + `arrow::StructArray::Make`
  (the builder-based Append/AppendNull shape from the PR no longer applies).
* MsgPackRowInputFormat.cpp: identical Nullable(Tuple) unwrapping already on
  antalya-26.6, only placed after the tuple size check.
* 04064/04065 tests: base-branch versions already cover the PR's cases;
  04065 was adapted on antalya-26.6 to the V3-reader-only world where
  `input_format_parquet_use_native_reader_v3` no longer exists.

Also dropped the cherry-pick's misplaced copy of the "zero out values at
null positions" block: git applied it to `readColumnWithDurationData`,
a function the source PR does not touch, while the PR's actual target
(`readColumnWithNumericData`) already carries it on antalya-26.6.
@zvonand zvonand added releasy Created/managed by RelEasy antalya-26.6 forwardport This is a frontport of code that existed in previous Antalya versions ai-resolved Port conflict auto-resolved by Claude labels Aug 6, 2026
@github-actions

github-actions Bot commented Aug 6, 2026

Copy link
Copy Markdown

Workflow [PR], commit [dd5d843]

@zvonand zvonand mentioned this pull request Aug 7, 2026
60 tasks
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

ai-resolved Port conflict auto-resolved by Claude antalya-26.6 forwardport This is a frontport of code that existed in previous Antalya versions releasy Created/managed by RelEasy

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants