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 54b42c881 ORC-2081: Support ORC LZ4 in bench module
54b42c881 is described below

commit 54b42c881f4c308507948c8af942a4a2e86dec7f
Author: Dongjoon Hyun <[email protected]>
AuthorDate: Fri Feb 6 15:36:20 2026 -0800

    ORC-2081: Support ORC LZ4 in bench module
    
    ### What changes were proposed in this pull request?
    
    This PR aims to support ORC LZ4 in bench module.
    
    ### Why are the changes needed?
    
    To benchmark `LZ4` like the other codecs.
    
    ### How was this patch tested?
    
    Manually run the following.
    
    **BUILD**
    ```
    $ cd java
    
    $ mvn package -DskipTests -Pbenchmark
    ```
    
    **WRITE**
    ```
    $ java -jar core/target/orc-benchmarks-core-*-uber.jar generate data -d 
sales -c lz4 -f orc
    Processing sales [orc]
    ```
    
    **FILE NAME**
    ```
    $ ls -alR data/generated/sales
    total 6029680
    drwxr-xr-x 3 dongjoon  staff          96 Feb  6 15:10 .
    drwxr-xr-x 3 dongjoon  staff          96 Feb  6 14:50 ..
    -rw-r--r-- 1 dongjoon  staff  3083885325 Feb  6 15:07 orc.lz4
    ```
    
    **READ**
    ```
    $ java -jar core/target/orc-benchmarks-core-*-uber.jar scan data -d sales 
-c lz4 -f orc
    data/generated/sales/orc.lz4 rows: 25000000 batches: 24415
    ```
    
    **ORC-TOOLS**
    ```
    $ orc-tools meta data/generated/sales/orc.lz4 | head -n4
    Processing data file data/generated/sales/orc.lz4 [length: 3083885325]
    Structure for data/generated/sales/orc.lz4
    File Version: 0.12 with ORC_14 by ORC Java 2.3.0-SNAPSHOT
    Rows: 25000000
    Compression: LZ4
    ```
    
    ### Was this patch authored or co-authored using generative AI tooling?
    
    Generated-by: `Opus 4.5` on `Claude Code`
    
    Closes #2519 from dongjoon-hyun/ORC-2081.
    
    Authored-by: Dongjoon Hyun <[email protected]>
    Signed-off-by: Dongjoon Hyun <[email protected]>
---
 .../core/src/java/org/apache/orc/bench/core/CompressionKind.java    | 6 ++++++
 java/bench/core/src/java/org/apache/orc/bench/core/Utilities.java   | 2 ++
 2 files changed, 8 insertions(+)

diff --git 
a/java/bench/core/src/java/org/apache/orc/bench/core/CompressionKind.java 
b/java/bench/core/src/java/org/apache/orc/bench/core/CompressionKind.java
index 6eda6ad26..b9dc36f1f 100644
--- a/java/bench/core/src/java/org/apache/orc/bench/core/CompressionKind.java
+++ b/java/bench/core/src/java/org/apache/orc/bench/core/CompressionKind.java
@@ -18,6 +18,7 @@
 
 package org.apache.orc.bench.core;
 
+import io.airlift.compress.lz4.Lz4Codec;
 import io.airlift.compress.snappy.SnappyCodec;
 import org.apache.hadoop.fs.Path;
 
@@ -34,6 +35,7 @@ public enum CompressionKind {
   NONE("none"),
   ZLIB("gz"),
   SNAPPY("snappy"),
+  LZ4("lz4"),
   ZSTD("zstd");
 
   CompressionKind(String extension) {
@@ -54,6 +56,8 @@ public enum CompressionKind {
         return new GZIPOutputStream(out);
       case SNAPPY:
         return new SnappyCodec().createOutputStream(out);
+      case LZ4:
+        return new Lz4Codec().createOutputStream(out);
       default:
         throw new IllegalArgumentException("Unhandled kind " + this);
     }
@@ -67,6 +71,8 @@ public enum CompressionKind {
         return new GZIPInputStream(in);
       case SNAPPY:
         return new SnappyCodec().createInputStream(in);
+      case LZ4:
+        return new Lz4Codec().createInputStream(in);
       default:
         throw new IllegalArgumentException("Unhandled kind " + this);
     }
diff --git a/java/bench/core/src/java/org/apache/orc/bench/core/Utilities.java 
b/java/bench/core/src/java/org/apache/orc/bench/core/Utilities.java
index 1d25746d4..2ad51472b 100644
--- a/java/bench/core/src/java/org/apache/orc/bench/core/Utilities.java
+++ b/java/bench/core/src/java/org/apache/orc/bench/core/Utilities.java
@@ -58,6 +58,8 @@ public class Utilities {
         return org.apache.orc.CompressionKind.ZLIB;
       case SNAPPY:
         return org.apache.orc.CompressionKind.SNAPPY;
+      case LZ4:
+        return org.apache.orc.CompressionKind.LZ4;
       case ZSTD:
         return org.apache.orc.CompressionKind.ZSTD;
       default:

Reply via email to