Skip to content

Antalya 26.5: Support Nullable(Tuple) for Arrow, ArrowStream, ORC, legacy Parquet formats#1976

Open
zvonand wants to merge 2 commits into
antalya-26.5from
feature/antalya-26.5/pr-1802
Open

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

Conversation

@zvonand

@zvonand zvonand commented Jun 26, 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 June 26, 2026 10:10
…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/CHColumnToArrowColumn.cpp
#	src/Processors/Formats/Impl/MsgPackRowInputFormat.cpp
#	tests/queries/0_stateless/04065_tuple_inside_nullable_parquet_roundtrip.reference
#	tests/queries/0_stateless/04065_tuple_inside_nullable_parquet_roundtrip.sql
CHColumnToArrowColumn.cpp: kept antalya-26.5's architecture (children
array + nullBytemapToArrowBitmap + arrow::StructArray::Make) which already
incorporates the key changes from the source PR: passing nullptr instead of
null_bytemap to nested fillArrowArray calls, and handling struct-level nulls
via the null bitmap. The source PR's builder.AppendNull/Append loop is the
antalya-26.3 equivalent of antalya-26.5's StructArray::Make with null_bitmap.

MsgPackRowInputFormat.cpp: moved the Nullable-unwrapping block to before
the tuple_type/size-check lines, matching the source PR's ordering.

Test files: kept the antalya-26.5 adaptation (V3-reader-only queries, no
input_format_parquet_use_native_reader_v3 variants) because the setting is
MAKE_OBSOLETE in antalya-26.5 — V3 reader is always used and the = 0 Arrow
reader path cannot be enabled via the setting.
@zvonand zvonand added releasy Created/managed by RelEasy antalya-26.5 ai-resolved Port conflict auto-resolved by Claude labels Jun 26, 2026
@github-actions

Copy link
Copy Markdown

Workflow [PR], commit [cb46867]

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.5 releasy Created/managed by RelEasy

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant