Flight SQL JDBC interval strings use the default locale for digits
Mantenedores costumam responder em até 2 dias
Ninguém assumiu esta issue ainda.
Avaliação
- Dificuldade
- 1/5
- Tempo estimado
- Menos de uma hora
- Facilidade para iniciantes
- 88/100
Direção de pesquisa
Comece em IntervalStringUtils.formatIntervalYear e formatIntervalDay, que constroem as strings de intervalo JDBC retornadas por getString() e getObject(). Reproduza o problema com a locale padrão ar-EG e, em seguida, verifique se os valores formatados usam dígitos ASCII e correspondem aos padrões de intervalo documentados para a saída de ano/mês e dia/hora.
Escrita pelo modelo de indexação a partir do texto da issue.
Descrição
IntervalStringUtils.formatIntervalYear and formatIntervalDay build the Oracle-style INTERVAL YEAR TO MONTH / INTERVAL DAY TO SECOND strings that the JDBC interval accessor returns from getString()/getObject() with String.format("...%d...", ...) and no explicit Locale. java.util.Formatter localises %d digits with the JVM default locale, so on a JVM whose default locale uses non-ASCII digits (e.g. ar-EG, bn-BD, mr-IN) an interval renders as +٠٢١-٠٢ instead of +021-02. The value handed back to JDBC clients is then non-ASCII and any downstream code that parses it as [+-]YYY-MM / [+-]DDD HH:MM:SS.mmm breaks.
This is the same root cause as GH-1300 (C Data Interface format strings), just in the JDBC layer. Fix is to pass Locale.ROOT to the two String.format calls.
Reproduction
Locale.setDefault(Locale.forLanguageTag("ar-EG"));
IntervalStringUtils.formatIntervalYear(Period.of(21, 2, 0)); // returns "+٠٢١-٠٢", expected "+021-02"
- Linguagem predominante
- Java
- Estrelas
- 95
- Forks
- 154
- Merge médio
- 2d 20h
- PRs com merge (30d)
- 8
Preparar o ambiente
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 ·
Mantenedores costumam responder em até 2 dias
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 78/100
apache/arrow-java#1236 ·
Mantenedores costumam responder em até 2 dias
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 78/100
apache/arrow-java#1230 ·
Mantenedores costumam responder em até 2 dias
-
Type: bug
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 85/100
apache/arrow-java#1205 ·
Mantenedores costumam responder em até 2 dias
-
Type: bug
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 68/100
apache/arrow-java#1196 · 1 comentário ·
Mantenedores costumam responder em até 2 dias
Todas as issues de apache/arrow-java
Issues semelhantes
-
bug triage
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 85/100
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 88/100
Mantenedores costumam responder em até 1 dia
-
security
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 65/100
IBM/networking-java-sdk#204 ·
-
bug Technical Debt
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 78/100
avniproject/avni-server#1080 ·
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 88/100
objectionary/eoc#1396 ·
Mantenedores costumam responder em até 1 dia