Skip to content

Conversation

@x-tong
Copy link

@x-tong x-tong commented Jan 26, 2026

Summary

Part 1/3 of Flink RowData to Arrow conversion implementation (split from #1930).

This PR adds the foundational type conversion utilities:

  • FlinkArrowUtils: Conversion form Flink RowData to Arrow types
  • Support for all common Flink types including primitives, temporal, and complex types
  • Comprehensive unit tests for type conversion

Follow-up PRs

  • Part 2: FlinkArrowFieldWriter + FlinkArrowWriter
  • Part 3: FlinkArrowFFIExporter

Test plan

  • Unit tests for FlinkArrowUtils type conversion
  • Build passes with ./auron-build.sh --pre --sparkver 3.5 --scalaver 2.12 -DskipBuildNative
  • Code formatted with ./dev/reformat

Related: #1850

Part 1 of Flink RowData to Arrow conversion implementation.

This PR adds the foundational type conversion utilities:
- FlinkArrowUtils: Bidirectional conversion between Flink LogicalType and Arrow types
- Support for all common Flink types including primitives, temporal, and complex types
- Comprehensive unit tests for type conversion
Copy link
Contributor

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

This PR introduces foundational type conversion utilities for Flink-Arrow integration as part 1 of a 3-part implementation series. It adds FlinkArrowUtils with methods to convert Flink LogicalTypes to Arrow types, supporting primitives, temporal types, and complex structures (arrays, maps, rows).

Changes:

  • Added FlinkArrowUtils class with one-way conversion from Flink LogicalType to Arrow types
  • Added comprehensive unit tests covering all supported type conversions
  • Added Arrow and Flink table dependencies to support the conversion utilities

Reviewed changes

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

File Description
auron-flink-extension/auron-flink-runtime/src/main/java/org/apache/auron/flink/arrow/FlinkArrowUtils.java Core utility class implementing Flink-to-Arrow type conversion with methods for types, fields, and schemas, plus a shared ROOT_ALLOCATOR for Arrow memory management
auron-flink-extension/auron-flink-runtime/src/test/java/org/apache/auron/flink/arrow/FlinkArrowUtilsTest.java Comprehensive test suite covering basic types, complex types (arrays, rows, maps), temporal types, and error handling
auron-flink-extension/auron-flink-runtime/pom.xml Added Arrow dependencies (arrow-c-data, arrow-memory-unsafe, arrow-vector) and test dependencies (junit-jupiter-api)
.gitignore Added LSP-related files (*.prefs) to ignore list

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

…ache/auron/flink/arrow/FlinkArrowUtils.java

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant