From eec786a7f7d1e28783b74f77e55c1d2862669f6e Mon Sep 17 00:00:00 2001 From: David Li Date: Fri, 23 May 2025 10:31:52 +0900 Subject: [PATCH] MINOR: Fix broken Linux JNI build I think this was due to apache/arrow@1229ceddd512aa5b3a601019ee3b4bae28cfa3e6. --- ci/scripts/jni_build.sh | 4 ++++ ci/scripts/jni_manylinux_build.sh | 1 + gandiva/src/main/cpp/jni_common.cc | 2 +- 3 files changed, 6 insertions(+), 1 deletion(-) diff --git a/ci/scripts/jni_build.sh b/ci/scripts/jni_build.sh index aec6fc325c..083d56ec76 100755 --- a/ci/scripts/jni_build.sh +++ b/ci/scripts/jni_build.sh @@ -50,11 +50,15 @@ Darwin) esac : "${ARROW_JAVA_BUILD_TESTS:=${ARROW_BUILD_TESTS:-ON}}" +: "${ARROW_VCPKG:=OFF}" : "${CMAKE_BUILD_TYPE:=release}" read -ra EXTRA_CMAKE_OPTIONS <<<"${JAVA_JNI_CMAKE_ARGS:-}" +# Must set ARROW_VCPKG because upstream Findutf8proc.cmake checks that to +# determine what to do cmake \ -S "${source_dir}" \ -B "${build_dir}" \ + -DARROW_VCPKG="${ARROW_VCPKG}" \ -DARROW_JAVA_JNI_ENABLE_DATASET="${ARROW_DATASET:-OFF}" \ -DARROW_JAVA_JNI_ENABLE_GANDIVA="${ARROW_GANDIVA:-OFF}" \ -DARROW_JAVA_JNI_ENABLE_ORC="${ARROW_ORC:-OFF}" \ diff --git a/ci/scripts/jni_manylinux_build.sh b/ci/scripts/jni_manylinux_build.sh index a34ec0f420..9fed86da4c 100755 --- a/ci/scripts/jni_manylinux_build.sh +++ b/ci/scripts/jni_manylinux_build.sh @@ -71,6 +71,7 @@ export ARROW_GANDIVA export ARROW_ORC : "${ARROW_PARQUET:=ON}" : "${ARROW_S3:=ON}" +export ARROW_VCPKG=ON # influences jni_build.sh : "${CMAKE_BUILD_TYPE:=release}" : "${CMAKE_UNITY_BUILD:=ON}" : "${VCPKG_ROOT:=/opt/vcpkg}" diff --git a/gandiva/src/main/cpp/jni_common.cc b/gandiva/src/main/cpp/jni_common.cc index 2851250072..ec4888a512 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: