apache / apache/arrow-java

Truly unchecked getters

Ouverte
#1,252 0 commentaires 0 réactions 0 personnes assignées Voir sur GitHub
Type: enhancement
Langage dominant
Java
Étoiles
94
Forks
152
Merge moyen
3 j 16 h
PR mergées (30 j)
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

Guide de contribution

Ouvrir le guide de contribution

Piste de recherche

Commencez par examiner les API existantes de getters de tableaux Arrow et l’utilisation des accès sans vérification dans VectorizedSparkParquetReaders.java d’Iceberg aux lignes indiquées. L’issue ne mentionne aucun fichier ni test arrow-java ; identifiez donc d’abord les familles de getters et les emplacements de test concernés. Le travail sera terminé lorsque les API sans vérification demandées seront disponibles de manière cohérente et que les tests couvriront le comportement qui place la responsabilité sur l’appelant.

Rédigé par le modèle d'indexation à partir du texte de l'issue.

Évaluation

Stack technique
java
Domaine
data-engineering
Type d'issue
Fonctionnalité
Difficulté
5/5
Temps estimé
Plus d'une semaine
Activité
Calme
Clarté
À clarifier
Accessibilité débutants
35/100

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.