Flight SQL JDBC interval strings use the default locale for digits
I maintainer di solito rispondono entro 1 giorno
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 1/5
- Tempo stimato
- Meno di un'ora
- Idoneità per principianti
- 88/100
Direzione di ricerca
Inizia da IntervalStringUtils.formatIntervalYear e formatIntervalDay, che costruiscono le stringhe degli intervalli JDBC restituite da getString() e getObject(). Riproduci il problema con la locale predefinita ar-EG, quindi verifica che i valori formattati utilizzino cifre ASCII e corrispondano ai pattern di intervallo documentati per l’output anno/mese e giorno/ora.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
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"
- Lingua principale
- Java
- Stelle
- 97
- Fork
- 158
- Merge medio
- 7g 12h
- PR unite (30g)
- 31
Preparare l'ambiente
- Include un Dockerfile o un file Docker Compose
- Ha un modello di pull request
- Leggi la guida per i contributori
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di apache/arrow-java
-
DictionaryEncoder.decode accepts out-of-range dictionary indicesForse già presa @Arawoof06 l’ha presa 49 giorni fa. Aperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 74/100
apache/arrow-java#1261 ·
I maintainer di solito rispondono entro 1 giorno
-
ArrowFlightJdbcArray.getArray(index, count) can read past the end of the array sliceForse già presa @Arawoof06 l’ha presa 78 giorni fa. Aperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
apache/arrow-java#1236 ·
I maintainer di solito rispondono entro 1 giorno
-
[Java][JDBC] ClobConsumer writes past VarCharVector data buffer for large CLOBsForse già presa @Arawoof06 l’ha presa 83 giorni fa. Aperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
apache/arrow-java#1230 ·
I maintainer di solito rispondono entro 1 giorno
-
[Java] DictionaryEncoder doesn't crash when decoding index outside of DictionaryForse già presa @jakobhok-neo4j l’ha presa 141 giorni fa. ApertaType: bug
Difficoltà 2/5 1-3 ore Idoneità per principianti 74/100
apache/arrow-java#1158 ·
I maintainer di solito rispondono entro 1 giorno
-
Type: enhancement
Difficoltà 2/5 1-3 ore Idoneità per principianti 76/100
apache/arrow-java#1100 ·
I maintainer di solito rispondono entro 1 giorno
Tutte le issue di apache/arrow-java
Issue simili
-
bug needs triage
Difficoltà 2/5 1-3 ore Idoneità per principianti 68/100
OpenAEV-Platform/openaev#8334 ·
I maintainer di solito rispondono entro 2 giorni
-
discussion welcome security waiting for feedback
Difficoltà 2/5 1-3 ore Idoneità per principianti 62/100
I maintainer di solito rispondono entro 1 giorno
-
bug
Difficoltà 2/5 1-3 ore Idoneità per principianti 76/100
SkyblockerMod/Skyblocker#2767 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 80/100
I maintainer di solito rispondono entro 2 giorni
-
Clock.MakeTime fails to validate hour, minute, and second ranges due to inert Calendar.set try-catchAperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 84/100
mit-cml/appinventor-sources#4139 ·
I maintainer di solito rispondono entro 1 giorno