apache / apache/arrow-java

Truly unchecked getters

Aberta
#1,252 0 comentários 0 reações 0 responsáveis Ver no GitHub
Type: enhancement
Linguagem predominante
Java
Estrelas
94
Forks
152
Merge médio
3d 16h
PRs com merge (30d)
11

Descrição

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

Guia de contribuição

Abrir o guia de contribuição

Direção de pesquisa

Comece revisando as APIs existentes de getters de arrays do Arrow e o uso de acessos sem verificação em VectorizedSparkParquetReaders.java do Iceberg nas linhas vinculadas. O issue não menciona arquivos nem testes do arrow-java, então primeiro identifique quais famílias de getters e locais de teste são afetados. O trabalho estará concluído quando as APIs sem verificação solicitadas estiverem disponíveis de forma consistente e os testes cobrirem o comportamento cuja responsabilidade cabe ao chamador.

Escrita pelo modelo de indexação a partir do texto da issue.

Avaliação

Stack de tecnologia
java
Domínio
data-engineering
Tipo de issue
Funcionalidade
Dificuldade
5/5
Tempo estimado
Mais de uma semana
Status de atividade
Pouca atividade
Clareza
Precisa de esclarecimento
Facilidade para iniciantes
35/100

Receba novas issues na sua caixa de entrada

Um resumo curto de issues do GitHub para quem está começando.