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

jbonofre pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/arrow-java.git


The following commit(s) were added to refs/heads/main by this push:
     new e5482cd63 MINOR: Fix Gandiva JNI build against Arrow C++ 24.0.0 (#1140)
e5482cd63 is described below

commit e5482cd63d2043c0e418f1adc7bcd1e5192c5078
Author: JB Onofré <[email protected]>
AuthorDate: Sun May 10 08:15:56 2026 +0200

    MINOR: Fix Gandiva JNI build against Arrow C++ 24.0.0 (#1140)
    
    Arrow C++ 24.0.0 introduced two breaking changes for the JNI build:
    
    1. `arrow::decimal()` was removed; replaced with `arrow::decimal128()`
    in the Gandiva JNI source.
    
    2. xsimd >= 14.0.0 is now a required dependency. The Docker image's
    vcpkg registry only ships xsimd 13.2.0, so the Linux JNI CMake
    configuration was failing. Fixed by passing `xsimd_SOURCE=BUNDLED` to
    the Arrow C++ CMake configure step so Arrow downloads and uses xsimd
    14.0.0 directly, and by passing the vcpkg toolchain file to the Arrow
    C++ configure step so other vcpkg-managed dependencies are still
    resolved correctly.
---
 .env                               | 2 +-
 compose.yaml                       | 3 ++-
 gandiva/src/main/cpp/jni_common.cc | 2 +-
 3 files changed, 4 insertions(+), 3 deletions(-)

diff --git a/.env b/.env
index 2bd725547..51daa0406 100644
--- a/.env
+++ b/.env
@@ -53,4 +53,4 @@ MAVEN=3.9.9
 # Versions for various dependencies used to build artifacts
 # Keep in sync with apache/arrow
 ARROW_REPO_ROOT=./arrow
-VCPKG="4334d8b4c8916018600212ab4dd4bbdc343065d1"    # 2025.09.17 Release
+VCPKG="66c0373dc7fca549e5803087b9487edfe3aca0a1"    # 2026.01.16 Release
diff --git a/compose.yaml b/compose.yaml
index fb290b22f..4fd825e5a 100644
--- a/compose.yaml
+++ b/compose.yaml
@@ -109,5 +109,6 @@ services:
       ARROW_JAVA_CDATA: "ON"
       CCACHE_DIR: "/ccache"
     command:
-      ["git config --global --add safe.directory /arrow-java && \
+      ["/bin/bash", "-c",
+       "git config --global --add safe.directory /arrow-java &&
         /arrow-java/ci/scripts/jni_manylinux_build.sh /arrow-java /arrow 
/build/java /arrow-java/jni"]
diff --git a/gandiva/src/main/cpp/jni_common.cc 
b/gandiva/src/main/cpp/jni_common.cc
index 285125007..ec4888a51 100644
--- a/gandiva/src/main/cpp/jni_common.cc
+++ b/gandiva/src/main/cpp/jni_common.cc
@@ -221,7 +221,7 @@ DataTypePtr ProtoTypeToDataType(const 
gandiva::types::ExtGandivaType& ext_type)
       return arrow::date64();
     case gandiva::types::DECIMAL:
       // TODO: error handling
-      return arrow::decimal(ext_type.precision(), ext_type.scale());
+      return arrow::decimal128(ext_type.precision(), ext_type.scale());
     case gandiva::types::TIME32:
       return ProtoTypeToTime32(ext_type);
     case gandiva::types::TIME64:

Reply via email to