diff --git a/src/iceberg/arrow/literal_util.cc b/src/iceberg/arrow/literal_util.cc index c13338199..e8ee4d6c6 100644 --- a/src/iceberg/arrow/literal_util.cc +++ b/src/iceberg/arrow/literal_util.cc @@ -123,9 +123,7 @@ Result> ToArrowScalar(const Literal& literal, return std::make_shared<::arrow::DoubleScalar>(std::get(value)); case TypeId::kDecimal: { const auto& decimal = std::get(value); - ::arrow::Decimal128 arrow_decimal( - static_cast(decimal.value() >> 64), - static_cast(decimal.value() & ~uint64_t{0})); + ::arrow::Decimal128 arrow_decimal(decimal.high(), decimal.low()); return std::make_shared<::arrow::Decimal128Scalar>(arrow_decimal, std::move(arrow_type)); }