apache / apache/arrow-java

Truly unchecked getters

オープン
#1,252 コメント 0 件 リアクション 0 件 担当者 0 名 GitHub で見る
Type: enhancement
主要言語
Java
スター
94
フォーク
152
平均マージ
3日 16時間
マージ済み PR(30日)
11

説明

### 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

コントリビューションガイド

コントリビューションガイドを開く

調査の方向性

まず、既存の Arrow 配列 getter API と、リンク先の行にある Iceberg の VectorizedSparkParquetReaders.java でのチェックなしアクセスの使用状況を確認してください。Issue には arrow-java のファイルやテストが挙げられていないため、まず影響を受ける getter ファミリーとテスト箇所を特定してください。要求されたチェックなし API が一貫して利用でき、呼び出し側が責任を負う動作がテストでカバーされていれば完了です。

索引モデルが issue の本文から書いたものです。

評価

技術スタック
java
領域
data-engineering
issue の種類
機能追加
難易度
5/5
見積もり時間
1週間以上
活発さ
静か
明瞭さ
説明が足りない
初心者へのやさしさ
35/100

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。