Truly unchecked getters
- Dominant language
- Java
- Stars
- 94
- Forks
- 152
- Avg merge
- 3d 16h
- Merged PRs (30d)
- 11
Description
### Describe the enhancement requested
Right now the library integrating with arrow-java needs to resort to hacks of setting environment variable or system property at runtime if it knows its usages of arrow-java can omit null and bounds checking. However, that is not true for all of the usages in the given process leading to invalid data reads or segfaults.
To avoid this pitfall I suggest we add getUnchecked apis that NEVER do any null and bound checking but put the responsibility on the caller to guard against their possibility. For example in apache iceberg https://github.com/apache/iceberg/blob/23b5ce8eeca2d894c7973e19caa5c5ec02b4e4b8/spark/v4.1/spark/src/main/java/org/apache/iceberg/spark/data/vectorized/VectorizedSparkParquetReaders.java#L44-L51
These apis would make it easy to mix libraries that use arrow as an implementation detail along with user code that operates directly on arrow arrays
Contributor guide
Research direction
Start by reviewing the existing Arrow array getter APIs and the unchecked-access usage in Iceberg's VectorizedSparkParquetReaders.java at the linked lines. The issue names no arrow-java files or tests, so first identify which getter families and test locations are affected. Done should mean the requested unchecked APIs are consistently available and their caller-responsibility behavior is covered by tests.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- java
- Domain
- data-engineering
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Quiet
- Clarity
- Needs clarification
- Newbie friendliness
- 35/100