This is an automated email from the ASF dual-hosted git repository.

dongjoon pushed a commit to branch branch-2.0
in repository https://gitbox.apache.org/repos/asf/orc.git


The following commit(s) were added to refs/heads/branch-2.0 by this push:
     new 1ee81a076 ORC-1752: Fix NumberFormatException when reading json 
timestamp type in benchmark
1ee81a076 is described below

commit 1ee81a076512443e64672f5a31bc11477cad40a6
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]>
    (cherry picked from commit 954ba0c7a88688097942a995b97881784c6cfa35)
    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]", " ")));
+        }
       }
     }
   }

Reply via email to