Bug Report: Column Nullability Not Honored in FlightSqlProducer Schema
Ninguém assumiu esta issue ainda.
Avaliação
- Dificuldade
- 2/5
- Tempo estimado
- 1-3 horas
- Facilidade para iniciantes
- 55/100
Direção de pesquisa
Comece por org.apache.arrow.driver.jdbc.utils.ConvertUtils.convertArrowFieldsToColumnMetaDataList(), que converte objetos Arrow Field em instâncias de ColumnMetaData para o driver Flight SQL. Verifique como ColumnMetaData.Builder é preenchido e confirme que os metadados resultantes preservam a nullability de cada campo. O trabalho estará concluído quando os campos Arrow nullable e non-nullable expuserem valores correspondentes de ResultSetMetaData.
Escrita pelo modelo de indexação a partir do texto da issue.
Descrição
Describe the bug, including details regarding any error messages, version, and platform.
In the FlightSqlProducer class, the getFlightInfoPreparedStatement method is responsible for returning the Arrow Schema of the ResultSet for a given query. However, the returned schema does not accurately reflect the nullability of columns. Regardless of whether a column is defined as nullable or non-nullable, the schema always returns a fixed nullability value.
This leads to incorrect ResultSetMetaData when the schema is consumed via the Flight SQL driver.
Root Cause:
The issue originates in the method:
org.apache.arrow.driver.jdbc.utils.ConvertUtils.convertArrowFieldsToColumnMetaDataList()
Here, a list of org.apache.arrow.vector.types.pojo.Field objects is converted into org.apache.calcite.avatica.ColumnMetaData instances. However, the setNullable property of the ColumnMetaData.Builder is not being set based on the actual nullability of the Arrow field.
Expected Behavior:
The setNullable method of ColumnMetaData.Builder should be updated to reflect the value of field.isNullable() from the Arrow schema.
Impact:
This bug results in incorrect metadata being exposed to clients using the Flight SQL driver, potentially leading to misinterpretation of the data schema.
- Linguagem predominante
- Java
- Estrelas
- 95
- Forks
- 154
- Merge médio
- 2d 10h
- PRs com merge (30d)
- 11
Guia de contribuição
Primeiros passos
- Leia a issue inteira e depois o guia de contribuição do projeto.
- Comente na issue dizendo que vai assumir — evita que duas pessoas façam o mesmo trabalho.
- Faça um fork do repositório e trabalhe em uma branch.
- Abra um pull request que referencie o número da issue.
Mais de apache/arrow-java
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 74/100
apache/arrow-java#1261 ·
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 78/100
apache/arrow-java#1236 ·
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 78/100
apache/arrow-java#1230 ·
-
Type: bug
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 85/100
apache/arrow-java#1205 ·
-
Type: bug
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 68/100
apache/arrow-java#1196 · 1 comentário ·
Todas as issues de apache/arrow-java
Issues semelhantes
-
documentation
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 65/100
inu-appcenter/memorIN-backend#288 ·
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 65/100
-
frontend maui-pilot pilot-ask question
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 75/100
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 75/100
-
executions.Query — startDate and timeRange filters are sent with inverted comparison operators Abertaarea/plugin
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 75/100
kestra-io/plugin-kestra#190 ·