Flight SQL JDBC interval strings use the default locale for digits
Maintainer antworten meist innerhalb von 2 Tagen
Dieses Issue hat noch niemand übernommen.
Bewertung
- Schwierigkeit
- 1/5
- Geschätzter Aufwand
- Unter einer Stunde
- Anfängerfreundlichkeit
- 88/100
Rechercherichtung
Beginne bei IntervalStringUtils.formatIntervalYear und formatIntervalDay, die die JDBC-Intervallzeichenfolgen erstellen, die von getString() und getObject() zurückgegeben werden. Reproduziere das Problem mit der Standard-Locale ar-EG und überprüfe anschließend, dass die formatierten Werte ASCII-Ziffern verwenden und den dokumentierten Intervallmustern für die Jahr/Monat- und Tag/Zeit-Ausgabe entsprechen.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Beschreibung
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"
- Vorherrschende Sprache
- Java
- Sterne
- 95
- Forks
- 154
- Ø Merge
- 2 T. 20 Std.
- Gemergte PRs (30 T.)
- 8
Entwicklungsumgebung
Erste Schritte
- Lesen Sie das ganze Issue und danach den Beitragsleitfaden des Projekts.
- Schreiben Sie ins Issue, dass Sie es übernehmen — das erspart doppelte Arbeit.
- Forken Sie das Repository und arbeiten Sie in einem Branch.
- Öffnen Sie einen Pull Request, der die Issue-Nummer nennt.
Mehr aus apache/arrow-java
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 74/100
apache/arrow-java#1261 ·
Maintainer antworten meist innerhalb von 2 Tagen
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 78/100
apache/arrow-java#1236 ·
Maintainer antworten meist innerhalb von 2 Tagen
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 78/100
apache/arrow-java#1230 ·
Maintainer antworten meist innerhalb von 2 Tagen
-
Type: bug
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 85/100
apache/arrow-java#1205 ·
Maintainer antworten meist innerhalb von 2 Tagen
-
Type: bug
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 68/100
apache/arrow-java#1196 · 1 Kommentar ·
Maintainer antworten meist innerhalb von 2 Tagen
Alle Issues in apache/arrow-java
Ähnliche Issues
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 84/100
beehive-lab/TornadoVM#1151 ·
Maintainer antworten meist innerhalb von 1 Tag
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 88/100
Maintainer antworten meist innerhalb von 1 Tag
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 77/100
FasterXML/jackson-dataformats-binary#823 ·
Maintainer antworten meist innerhalb von 1 Tag
-
Schwierigkeit 1/5 Unter einer Stunde Anfängerfreundlichkeit 90/100
Maintainer antworten meist innerhalb von 1 Tag
-
bug
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 78/100
Maintainer antworten meist innerhalb von 1 Tag