Skip to content

GH-559: [Java] Add FixedSizeBinary support to ComplexCopier - #1253

Open
Maria-Berta wants to merge 3 commits into
apache:mainfrom
Maria-Berta:GH-559-complex-copier-fixed-size-binary
Open

GH-559: [Java] Add FixedSizeBinary support to ComplexCopier#1253
Maria-Berta wants to merge 3 commits into
apache:mainfrom
Maria-Berta:GH-559-complex-copier-fixed-size-binary

Conversation

@Maria-Berta

@Maria-Berta Maria-Berta commented Aug 3, 2026

Copy link
Copy Markdown

Rationale for this change

ComplexCopier did not support copying FixedSizeBinary columns nested in List, Map, Struct, or top-level contexts, throwing UnsupportedOperationException.

What changes are included in this PR?

Adds FIXEDSIZEBINARY cases to:

  • getListWriterForReader
  • getStructWriterForReader
  • getMapWriterForReader
  • the main copy() switch

Are these changes tested?

Yes:

  • testCopyListOfFixedSizeBinary — copying a List
  • testCopyStructOfFixedSizeBinary — copying a Struct field of type FixedSizeBinary

Full TestComplexCopier suite (22 tests) passes with no regressions.

Note: I attempted to add equivalent coverage for Map values of type FixedSizeBinary, but ran into a pre-existing limitation unrelated to this fix — MapWriter/ListWriter's no-arg fixedSizeBinary() delegates to NullableStructWriter.fixedSizeBinary(String), which only looks up an existing child writer and never creates one. The byteWidth-aware overload that does create the vector isn't reachable through the public MapWriter/ListWriter interface. This appears to be a gap in the writer codegen itself rather than something ComplexCopier can work around, so I've left it untested here — happy to open a follow-up issue if that's useful, or take a stab at it if maintainers think it's in scope for this PR.

Closes #559

@github-actions

github-actions Bot commented Aug 3, 2026

Copy link
Copy Markdown

Thank you for opening a pull request!

Please label the PR with one or more of:

  • bug-fix
  • chore
  • dependencies
  • documentation
  • enhancement

Also, add the 'breaking-change' label if appropriate.

See CONTRIBUTING.md for details.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

ComplexCopier missing support for FixedSizeBinary columns

1 participant