diff --git a/tree/dataframe/src/RArrowDS.cxx b/tree/dataframe/src/RArrowDS.cxx index 51d4f1292d2d26bebaf02bfad226cb47c1a09e68..0f3b050333f2b9c9384df060af37b88c1a60a9f0 100644 --- a/tree/dataframe/src/RArrowDS.cxx +++ b/tree/dataframe/src/RArrowDS.cxx @@ -68,11 +68,11 @@ ROOT_ARROW_STL_CONVERSION(bool, BooleanType) ROOT_ARROW_STL_CONVERSION(int8_t, Int8Type) ROOT_ARROW_STL_CONVERSION(int16_t, Int16Type) ROOT_ARROW_STL_CONVERSION(int32_t, Int32Type) -ROOT_ARROW_STL_CONVERSION(int64_t, Int64Type) +ROOT_ARROW_STL_CONVERSION(Long64_t, Int64Type) ROOT_ARROW_STL_CONVERSION(uint8_t, UInt8Type) ROOT_ARROW_STL_CONVERSION(uint16_t, UInt16Type) ROOT_ARROW_STL_CONVERSION(uint32_t, UInt32Type) -ROOT_ARROW_STL_CONVERSION(uint64_t, UInt64Type) +ROOT_ARROW_STL_CONVERSION(ULong64_t, UInt64Type) ROOT_ARROW_STL_CONVERSION(float, FloatType) ROOT_ARROW_STL_CONVERSION(double, DoubleType) ROOT_ARROW_STL_CONVERSION(std::string, StringType) @@ -101,7 +101,9 @@ private: using ArrayType = typename arrow::TypeTraits<ArrowType>::ArrayType; auto values = reinterpret_cast<ArrayType *>(array.values().get()); auto offset = array.value_offset(entry); - RVec<T> tmp(const_cast<T *>(values->raw_values()) + offset, array.value_length(entry)); + // Here the cast to void* is a worksround while we figure out the + // issues we have with long long types, signed and unsigned. + RVec<T> tmp(reinterpret_cast<T *>((void *)values->raw_values()) + offset, array.value_length(entry)); cache.swap(tmp); return (void *)(&cache); }