XuQianJin-Stars opened a new pull request, #2537: URL: https://github.com/apache/fluss/pull/2537
### Purpose Linked issue: close #2186 Add Array type support for Lance storage format to enable storing and retrieving tables with array columns. ### Brief change log **LanceArrowUtils.java:** - Added ArrayType import and handling in `toArrowType()` method to convert Fluss ArrayType to Arrow List type - Enhanced `toArrowField()` method to create children fields for ArrayType, properly handling nested array structures by recursively creating element fields **ArrowDataConverter.java:** - Added ListVector import for handling Arrow list vectors - Implemented `copyListVectorData()` method to handle copying of ListVector data between shaded and non-shaded Arrow implementations - Enhanced `copyVectorData()` method to detect and delegate ListVector copying to the specialized handler - Added recursive handling for nested array elements in the data conversion process **LanceTieringTest.java:** - Added new test case `testTieringWriteTableWithArrayType()` to verify array type support - Test creates tables with both STRING array and INT array columns - Test verifies writing and reading array data through Lance storage - Added helper methods `genArrayTableRecords()` and `verifyArrayTableRecords()` for array data generation and verification ### Tests - **Unit Test:** `LanceTieringTest#testTieringWriteTableWithArrayType` - Tests writing and reading tables with array columns (STRING array and INT array) through Lance storage - **Existing Tests:** All existing Lance tiering tests pass, verifying backward compatibility - **Test Coverage:** Validates array schema conversion, data writing, committing, and reading with proper array element verification ### API and Format - **No API changes:** This change only adds support for existing ArrayType in Lance storage implementation - **No format changes:** Uses standard Arrow List format for array storage, which is compatible with Lance ### Documentation - **No new feature introduction:** This change adds support for an existing Fluss data type (ArrayType) in the Lance storage backend - **No documentation update needed:** Array type is already documented in Fluss type system; this implementation extends Lance storage to support it -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: [email protected] For queries about this service, please contact Infrastructure at: [email protected]
