Skip to content

Implement largelistview support#303

Merged
CurtHagenlocher merged 5 commits into
apache:mainfrom
CurtHagenlocher:MissingLargeViews
Mar 31, 2026
Merged

Implement largelistview support#303
CurtHagenlocher merged 5 commits into
apache:mainfrom
CurtHagenlocher:MissingLargeViews

Conversation

@CurtHagenlocher
Copy link
Copy Markdown
Contributor

What's Changed

Support for largelistview has been implemented. This still doesn't support lists which are actually more than 2GB, but at least smaller lists of this type can be loaded.

Copy link
Copy Markdown

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Adds end-to-end support for the Arrow LargeListView logical type across the core library, IPC read/write paths, C Data Interface schema/array interop, and test/integration infrastructure (with the stated limitation that >2GB lists are still not supported).

Changes:

  • Introduces LargeListViewType / LargeListViewArray (+ builder) and the ArrowTypeId.LargeListView enum value.
  • Extends IPC serialization/deserialization and stream writing to handle LargeListView buffers and value slicing.
  • Updates C Data Interface schema import/export and array import, plus JSON integration parsing and test generators/verifiers.

Reviewed changes

Copilot reviewed 20 out of 20 changed files in this pull request and generated 2 comments.

Show a summary per file
File Description
test/Apache.Arrow.Tests/TestData.cs Adds LargeListView to the generated schema and array creation for test matrices.
test/Apache.Arrow.Tests/TableTests.cs Updates expected column counts due to the additional LargeListView field.
test/Apache.Arrow.Tests/LargeListViewArrayTests.cs New unit tests for slicing, overflow checks, and basic properties.
test/Apache.Arrow.Tests/LargeListViewArrayBuilderTests.cs New unit tests for builder append/null/clear and nested string lists.
test/Apache.Arrow.Tests/ArrowReaderVerifier.cs Extends array comparison to support LargeListView arrays.
test/Apache.Arrow.Tests/ArrowArrayConcatenatorTests.cs Adds LargeListView to concatenation test coverage and data generation.
test/Apache.Arrow.IntegrationTest/JsonFile.cs Adds JSON-to-type parsing and array creation support for “largelistview”.
src/Apache.Arrow/Types/LargeListViewType.cs New Arrow type definition for LargeListView.
src/Apache.Arrow/Types/IArrowType.cs Adds ArrowTypeId.LargeListView.
src/Apache.Arrow/Ipc/MessageSerializer.cs Deserializes Flatbuf LargeListView fields into LargeListViewType.
src/Apache.Arrow/Ipc/ArrowTypeFlatbufferBuilder.cs Serializes LargeListViewType into Flatbuf LargeListView.
src/Apache.Arrow/Ipc/ArrowStreamWriter.cs Writes LargeListView buffers and slices values based on min/max offsets.
src/Apache.Arrow/Ipc/ArrowReaderImplementation.cs Accounts for LargeListView’s 3-buffer layout when loading fields.
src/Apache.Arrow/C/CArrowSchemaImporter.cs Imports C schema format +vL as LargeListViewType.
src/Apache.Arrow/C/CArrowSchemaExporter.cs Exports LargeListViewType as C schema format +vL.
src/Apache.Arrow/C/CArrowArrayImporter.cs Imports LargeListView arrays (validity + long offsets + long sizes).
src/Apache.Arrow/Arrays/LargeListViewArray.cs New array implementation + builder and slicing helpers.
src/Apache.Arrow/Arrays/ArrowArrayFactory.cs Instantiates LargeListViewArray for ArrowTypeId.LargeListView.
src/Apache.Arrow/Arrays/ArrowArrayBuilderFactory.cs Builds LargeListViewArray.Builder for ArrowTypeId.LargeListView.
src/Apache.Arrow/Arrays/ArrayDataConcatenator.cs Adds concatenation logic for LargeListView arrays.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread src/Apache.Arrow/C/CArrowArrayImporter.cs
Comment thread src/Apache.Arrow/Arrays/LargeListViewArray.cs
Copy link
Copy Markdown
Contributor

@adamreeve adamreeve left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

👍 This looks good to me besides the question about resetting Start in Clear.

Comment thread src/Apache.Arrow/Arrays/LargeListViewArray.cs
Comment thread test/Apache.Arrow.IntegrationTest/JsonFile.cs
@CurtHagenlocher CurtHagenlocher merged commit d1c0a72 into apache:main Mar 31, 2026
14 checks passed
@CurtHagenlocher CurtHagenlocher deleted the MissingLargeViews branch March 31, 2026 13:16
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.

3 participants