This is an automated email from the ASF dual-hosted git repository.
dongjoon pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/orc.git
The following commit(s) were added to refs/heads/main by this push:
new 954ba0c7a ORC-1752: Fix NumberFormatException when reading json
timestamp type in benchmark
954ba0c7a is described below
commit 954ba0c7a88688097942a995b97881784c6cfa35
Author: sychen <[email protected]>
AuthorDate: Mon Aug 5 09:14:31 2024 -0700
ORC-1752: Fix NumberFormatException when reading json timestamp type in
benchmark
### What changes were proposed in this pull request?
This PR aims to fix NumberFormatException when reading json timestamp type
in benchmark.
### Why are the changes needed?
Because the source data of the benchmark has two timestamp formats, we need
to be compatible with both Long and String timestamp formats.
```java
Exception in thread "main" java.lang.NumberFormatException: For input
string: "2015-11-04T12:00:00Z"
at
java.base/java.lang.NumberFormatException.forInputString(NumberFormatException.java:67)
at java.base/java.lang.Long.parseLong(Long.java:711)
at java.base/java.lang.Long.parseLong(Long.java:836)
at com.google.gson.JsonPrimitive.getAsLong(JsonPrimitive.java:206)
at
org.apache.orc.bench.core.convert.json.JsonReader$TimestampColumnConverter.convert(JsonReader.java:175)
at
org.apache.orc.bench.core.convert.json.JsonReader.nextBatch(JsonReader.java:86)
at
org.apache.orc.bench.core.convert.GenerateVariants$RecursiveReader.nextBatch(GenerateVariants.java:195)
at
org.apache.orc.bench.core.convert.GenerateVariants.run(GenerateVariants.java:154)
at org.apache.orc.bench.core.Driver.main(Driver.java:64)
```
### How was this patch tested?
```bash
java -jar core/target/orc-benchmarks-core-*-uber.jar generate data
java -jar core/target/orc-benchmarks-core-*-uber.jar scan data
```
### Was this patch authored or co-authored using generative AI tooling?
No
Closes #1995 from cxzl25/ORC-1752.
Authored-by: sychen <[email protected]>
Signed-off-by: Dongjoon Hyun <[email protected]>
---
.../java/org/apache/orc/bench/core/convert/json/JsonReader.java | 7 ++++++-
1 file changed, 6 insertions(+), 1 deletion(-)
diff --git
a/java/bench/core/src/java/org/apache/orc/bench/core/convert/json/JsonReader.java
b/java/bench/core/src/java/org/apache/orc/bench/core/convert/json/JsonReader.java
index a63d80b5b..ece88f08b 100644
---
a/java/bench/core/src/java/org/apache/orc/bench/core/convert/json/JsonReader.java
+++
b/java/bench/core/src/java/org/apache/orc/bench/core/convert/json/JsonReader.java
@@ -172,7 +172,12 @@ public class JsonReader implements BatchReader {
vect.isNull[row] = true;
} else {
TimestampColumnVector vector = (TimestampColumnVector) vect;
- vector.set(row, new Timestamp(value.getAsLong()));
+ try {
+ vector.set(row, new Timestamp(value.getAsLong()));
+ } catch (NumberFormatException e) {
+ vector.set(row, Timestamp.valueOf(value.getAsString()
+ .replaceAll("[TZ]", " ")));
+ }
}
}
}