Scalars#
- 
struct Scalar : public std::enable_shared_from_this<Scalar>, public arrow::util::EqualityComparable<Scalar>#
 Base class for scalar values.
A Scalar represents a single value with a specific DataType. Scalars are useful for passing single value inputs to compute functions, or for representing individual array elements (with a non-trivial wrapping cost, though).
Subclassed by arrow::BaseListScalar, arrow::ExtensionScalar, arrow::NullScalar, arrow::RunEndEncodedScalar, arrow::StructScalar, arrow::UnionScalar, arrow::internal::PrimitiveScalarBase
Public Functions
- 
Status Validate() const#
 Perform cheap validation checks.
This is O(k) where k is the number of descendents.
- Returns:
 
- 
Status ValidateFull() const#
 Perform extensive data validation checks.
This is potentially O(k*n) where k is the number of descendents and n is the length of descendents (if list scalars are involved).
- Returns:
 
- 
Status Accept(ScalarVisitor *visitor) const#
 Apply the ScalarVisitor::Visit() method specialized to the scalar type.
EXPERIMENTAL Enable obtaining shared_ptr<Scalar> from a const Scalar& context.
Public Members
- 
bool is_valid = false#
 Whether the value is valid (not null) or not.
- 
struct Hash#
 
- 
Status Validate() const#
 
Factory functions#
Scalar factory for null scalars.
Scalar factory for non-null scalars.
Type-inferring scalar factory for non-null scalars.
Construct a Scalar instance with a DataType determined by the input C++ type. (for example Int8Scalar for a int8_t input). Only non-parametric primitive types and String are supported.
- 
inline std::shared_ptr<Scalar> MakeScalar(std::string value)#
 
Concrete scalar subclasses#
- 
struct NullScalar : public arrow::Scalar#
 - #include <arrow/scalar.h>
A scalar value for NullType. Never valid.
Public Functions
- 
inline NullScalar()#
 
 - 
inline NullScalar()#
 
- 
struct BooleanScalar : public arrow::internal::PrimitiveScalar<BooleanType, bool>#
 - #include <arrow/scalar.h>
Public Types
- 
using Base = internal::PrimitiveScalar<BooleanType, bool>#
 
 - 
using Base = internal::PrimitiveScalar<BooleanType, bool>#
 
- 
template<typename T>
struct NumericScalar : public arrow::internal::PrimitiveScalar<T># - #include <arrow/scalar.h>
Public Types
 
- 
struct Int8Scalar : public arrow::NumericScalar<Int8Type>#
 - #include <arrow/scalar.h>
 
- 
struct Int16Scalar : public arrow::NumericScalar<Int16Type>#
 - #include <arrow/scalar.h>
 
- 
struct Int32Scalar : public arrow::NumericScalar<Int32Type>#
 - #include <arrow/scalar.h>
 
- 
struct Int64Scalar : public arrow::NumericScalar<Int64Type>#
 - #include <arrow/scalar.h>
 
- 
struct UInt8Scalar : public arrow::NumericScalar<UInt8Type>#
 - #include <arrow/scalar.h>
 
- 
struct UInt16Scalar : public arrow::NumericScalar<UInt16Type>#
 - #include <arrow/scalar.h>
 
- 
struct UInt32Scalar : public arrow::NumericScalar<UInt32Type>#
 - #include <arrow/scalar.h>
 
- 
struct UInt64Scalar : public arrow::NumericScalar<UInt64Type>#
 - #include <arrow/scalar.h>
 
- 
struct HalfFloatScalar : public arrow::NumericScalar<HalfFloatType>#
 - #include <arrow/scalar.h>
 
- 
struct FloatScalar : public arrow::NumericScalar<FloatType>#
 - #include <arrow/scalar.h>
 
- 
struct DoubleScalar : public arrow::NumericScalar<DoubleType>#
 - #include <arrow/scalar.h>
 
- 
struct BaseBinaryScalar : public arrow::internal::PrimitiveScalarBase#
 - #include <arrow/scalar.h>
Subclassed by arrow::BinaryScalar, arrow::BinaryViewScalar, arrow::LargeBinaryScalar
 
- 
struct BinaryScalar : public arrow::BaseBinaryScalar, private arrow::internal::ArraySpanFillFromScalarScratchSpace<BinaryScalar>#
 - #include <arrow/scalar.h>
Subclassed by arrow::FixedSizeBinaryScalar, arrow::StringScalar
Public Types
- 
using TypeClass = BinaryType#
 
- 
using ArraySpanFillFromScalarScratchSpace = internal::ArraySpanFillFromScalarScratchSpace<BinaryScalar>#
 
 - 
using TypeClass = BinaryType#
 
- 
struct StringScalar : public arrow::BinaryScalar#
 - #include <arrow/scalar.h>
Public Types
- 
using TypeClass = StringType#
 
 - 
using TypeClass = StringType#
 
- 
struct BinaryViewScalar : public arrow::BaseBinaryScalar, private arrow::internal::ArraySpanFillFromScalarScratchSpace<BinaryViewScalar>#
 - #include <arrow/scalar.h>
Subclassed by arrow::StringViewScalar
Public Types
- 
using TypeClass = BinaryViewType#
 
- 
using ArraySpanFillFromScalarScratchSpace = internal::ArraySpanFillFromScalarScratchSpace<BinaryViewScalar>#
 
 - 
using TypeClass = BinaryViewType#
 
- 
struct StringViewScalar : public arrow::BinaryViewScalar#
 - #include <arrow/scalar.h>
Public Types
- 
using TypeClass = StringViewType#
 
 - 
using TypeClass = StringViewType#
 
- 
struct LargeBinaryScalar : public arrow::BaseBinaryScalar, private arrow::internal::ArraySpanFillFromScalarScratchSpace<LargeBinaryScalar>#
 - #include <arrow/scalar.h>
Subclassed by arrow::LargeStringScalar
Public Types
- 
using TypeClass = LargeBinaryType#
 
- 
using ArraySpanFillFromScalarScratchSpace = internal::ArraySpanFillFromScalarScratchSpace<LargeBinaryScalar>#
 
 - 
using TypeClass = LargeBinaryType#
 
- 
struct LargeStringScalar : public arrow::LargeBinaryScalar#
 - #include <arrow/scalar.h>
Public Types
- 
using TypeClass = LargeStringType#
 
 - 
using TypeClass = LargeStringType#
 
- 
struct FixedSizeBinaryScalar : public arrow::BinaryScalar#
 - #include <arrow/scalar.h>
Public Types
- 
using TypeClass = FixedSizeBinaryType#
 
 - 
using TypeClass = FixedSizeBinaryType#
 
- 
template<typename T>
struct TemporalScalar : public arrow::internal::PrimitiveScalar<T># - #include <arrow/scalar.h>
Subclassed by arrow::DateScalar< T >, arrow::IntervalScalar< T >, arrow::TimeScalar< T >
Public Functions
 
- 
template<typename T>
struct DateScalar : public arrow::TemporalScalar<T># - #include <arrow/scalar.h>
Public Types
- 
using ValueType = typename TemporalScalar<T>::ValueType#
 
 - 
using ValueType = typename TemporalScalar<T>::ValueType#
 
- 
struct Date32Scalar : public arrow::DateScalar<Date32Type>#
 - #include <arrow/scalar.h>
 
- 
struct Date64Scalar : public arrow::DateScalar<Date64Type>#
 - #include <arrow/scalar.h>
 
- 
template<typename T>
struct TimeScalar : public arrow::TemporalScalar<T># - #include <arrow/scalar.h>
Public Functions
- 
inline TimeScalar(typename TemporalScalar<T>::ValueType value, TimeUnit::type unit)#
 
 - 
inline TimeScalar(typename TemporalScalar<T>::ValueType value, TimeUnit::type unit)#
 
- 
struct Time32Scalar : public arrow::TimeScalar<Time32Type>#
 - #include <arrow/scalar.h>
 
- 
struct Time64Scalar : public arrow::TimeScalar<Time64Type>#
 - #include <arrow/scalar.h>
 
- 
struct TimestampScalar : public arrow::TemporalScalar<TimestampType>#
 - #include <arrow/scalar.h>
Public Functions
- 
inline TimestampScalar(typename TemporalScalar<TimestampType>::ValueType value, TimeUnit::type unit, std::string tz = "")#
 
Public Static Functions
- 
static Result<TimestampScalar> FromISO8601(std::string_view iso8601, TimeUnit::type unit)#
 
 - 
inline TimestampScalar(typename TemporalScalar<TimestampType>::ValueType value, TimeUnit::type unit, std::string tz = "")#
 
- 
template<typename T>
struct IntervalScalar : public arrow::TemporalScalar<T># - #include <arrow/scalar.h>
Public Types
- 
using ValueType = typename TemporalScalar<T>::ValueType#
 
 - 
using ValueType = typename TemporalScalar<T>::ValueType#
 
- 
struct MonthIntervalScalar : public arrow::IntervalScalar<MonthIntervalType>#
 - #include <arrow/scalar.h>
 
- 
struct DayTimeIntervalScalar : public arrow::IntervalScalar<DayTimeIntervalType>#
 - #include <arrow/scalar.h>
 
- 
struct MonthDayNanoIntervalScalar : public arrow::IntervalScalar<MonthDayNanoIntervalType>#
 - #include <arrow/scalar.h>
 
- 
struct DurationScalar : public arrow::TemporalScalar<DurationType>#
 - #include <arrow/scalar.h>
Public Functions
- 
inline DurationScalar(typename TemporalScalar<DurationType>::ValueType value, TimeUnit::type unit)#
 
- 
template<template<typename, typename> class StdDuration, typename Rep>
inline explicit DurationScalar(StdDuration<Rep, std::nano> d)# 
- 
template<template<typename, typename> class StdDuration, typename Rep>
inline explicit DurationScalar(StdDuration<Rep, std::micro> d)# 
- 
template<template<typename, typename> class StdDuration, typename Rep>
inline explicit DurationScalar(StdDuration<Rep, std::milli> d)# 
- 
template<template<typename, typename> class StdDuration, typename Rep, intmax_t Num>
inline explicit DurationScalar(StdDuration<Rep, std::ratio<Num, 1>> d)# 
 - 
inline DurationScalar(typename TemporalScalar<DurationType>::ValueType value, TimeUnit::type unit)#
 
- 
template<typename TYPE_CLASS, typename VALUE_TYPE>
struct DecimalScalar : public arrow::internal::PrimitiveScalarBase# - #include <arrow/scalar.h>
 
- 
struct Decimal32Scalar : public arrow::DecimalScalar<Decimal32Type, Decimal32>#
 - #include <arrow/scalar.h>
Public Functions
 
- 
struct Decimal64Scalar : public arrow::DecimalScalar<Decimal64Type, Decimal64>#
 - #include <arrow/scalar.h>
Public Functions
 
- 
struct Decimal128Scalar : public arrow::DecimalScalar<Decimal128Type, Decimal128>#
 - #include <arrow/scalar.h>
Public Functions
 
- 
struct Decimal256Scalar : public arrow::DecimalScalar<Decimal256Type, Decimal256>#
 - #include <arrow/scalar.h>
Public Functions
 
- 
struct BaseListScalar : public arrow::Scalar#
 - #include <arrow/scalar.h>
Subclassed by arrow::FixedSizeListScalar, arrow::LargeListScalar, arrow::LargeListViewScalar, arrow::ListScalar, arrow::ListViewScalar, arrow::MapScalar
Public Functions
 
- 
struct ListScalar : public arrow::BaseListScalar, private arrow::internal::ArraySpanFillFromScalarScratchSpace<ListScalar>#
 - #include <arrow/scalar.h>
Public Types
- 
using ArraySpanFillFromScalarScratchSpace = internal::ArraySpanFillFromScalarScratchSpace<ListScalar>#
 
Public Functions
 - 
using ArraySpanFillFromScalarScratchSpace = internal::ArraySpanFillFromScalarScratchSpace<ListScalar>#
 
- 
struct LargeListScalar : public arrow::BaseListScalar, private arrow::internal::ArraySpanFillFromScalarScratchSpace<LargeListScalar>#
 - #include <arrow/scalar.h>
Public Types
- 
using TypeClass = LargeListType#
 
- 
using ArraySpanFillFromScalarScratchSpace = internal::ArraySpanFillFromScalarScratchSpace<LargeListScalar>#
 
Public Functions
 - 
using TypeClass = LargeListType#
 
- 
struct ListViewScalar : public arrow::BaseListScalar, private arrow::internal::ArraySpanFillFromScalarScratchSpace<ListViewScalar>#
 - #include <arrow/scalar.h>
Public Types
- 
using TypeClass = ListViewType#
 
- 
using ArraySpanFillFromScalarScratchSpace = internal::ArraySpanFillFromScalarScratchSpace<ListViewScalar>#
 
Public Functions
 - 
using TypeClass = ListViewType#
 
- 
struct LargeListViewScalar : public arrow::BaseListScalar, private arrow::internal::ArraySpanFillFromScalarScratchSpace<LargeListViewScalar>#
 - #include <arrow/scalar.h>
Public Types
- 
using TypeClass = LargeListViewType#
 
- 
using ArraySpanFillFromScalarScratchSpace = internal::ArraySpanFillFromScalarScratchSpace<LargeListViewScalar>#
 
Public Functions
 - 
using TypeClass = LargeListViewType#
 
- 
struct MapScalar : public arrow::BaseListScalar, private arrow::internal::ArraySpanFillFromScalarScratchSpace<MapScalar>#
 - #include <arrow/scalar.h>
Public Types
Public Functions
 
- 
struct FixedSizeListScalar : public arrow::BaseListScalar#
 - #include <arrow/scalar.h>
Public Types
- 
using TypeClass = FixedSizeListType#
 
Public Functions
 - 
using TypeClass = FixedSizeListType#
 
- 
struct StructScalar : public arrow::Scalar#
 - #include <arrow/scalar.h>
Public Members
- 
ScalarVector value#
 
Public Static Functions
- 
static Result<std::shared_ptr<StructScalar>> Make(ValueType value, std::vector<std::string> field_names)#
 
 - 
ScalarVector value#
 
- 
struct UnionScalar : public arrow::Scalar#
 - #include <arrow/scalar.h>
Subclassed by arrow::DenseUnionScalar, arrow::SparseUnionScalar
Public Members
- 
const int8_t type_code#
 
 - 
const int8_t type_code#
 
- 
struct SparseUnionScalar : public arrow::UnionScalar, private arrow::internal::ArraySpanFillFromScalarScratchSpace<SparseUnionScalar>#
 - #include <arrow/scalar.h>
Public Types
- 
using TypeClass = SparseUnionType#
 
- 
using ArraySpanFillFromScalarScratchSpace = internal::ArraySpanFillFromScalarScratchSpace<SparseUnionScalar>#
 
Public Static Functions
Construct a SparseUnionScalar from a single value, versus having to construct a vector of scalars.
 - 
using TypeClass = SparseUnionType#
 
- 
struct DenseUnionScalar : public arrow::UnionScalar, private arrow::internal::ArraySpanFillFromScalarScratchSpace<DenseUnionScalar>#
 - #include <arrow/scalar.h>
Public Types
- 
using TypeClass = DenseUnionType#
 
- 
using ArraySpanFillFromScalarScratchSpace = internal::ArraySpanFillFromScalarScratchSpace<DenseUnionScalar>#
 
 - 
using TypeClass = DenseUnionType#
 
- 
struct RunEndEncodedScalar : public arrow::Scalar, private arrow::internal::ArraySpanFillFromScalarScratchSpace<RunEndEncodedScalar>#
 - #include <arrow/scalar.h>
Public Types
- 
using TypeClass = RunEndEncodedType#
 
- 
using ArraySpanFillFromScalarScratchSpace = internal::ArraySpanFillFromScalarScratchSpace<RunEndEncodedScalar>#
 
 - 
using TypeClass = RunEndEncodedType#
 
- 
struct DictionaryScalar : public arrow::internal::PrimitiveScalarBase#
 - #include <arrow/scalar.h>
A Scalar value for DictionaryType.
is_validdenotes the validity of theindex, regardless of the corresponding value in thedictionary.Public Types
- 
using TypeClass = DictionaryType#
 
Public Functions
- 
inline const void *data() const override#
 
- 
inline std::string_view view() const override#
 
Public Members
- 
struct arrow::DictionaryScalar::ValueType value#
 
Public Static Functions
- 
struct ValueType#
 - #include <arrow/scalar.h>
 
 - 
using TypeClass = DictionaryType#
 
- 
struct ExtensionScalar : public arrow::Scalar#
 - #include <arrow/scalar.h>
A Scalar value for ExtensionType.
The value is the underlying storage scalar.
is_validmust only be true ifvalueis non-null andvalue->is_validis truePublic Functions
 
Utilities#
- 
class ScalarVisitor#
 Abstract scalar visitor class.
Subclass this to create a visitor that can be used with the Scalar::Accept() method.
Public Functions
- 
virtual ~ScalarVisitor() = default#
 
- 
virtual Status Visit(const NullScalar &scalar)#
 
- 
virtual Status Visit(const BooleanScalar &scalar)#
 
- 
virtual Status Visit(const Int8Scalar &scalar)#
 
- 
virtual Status Visit(const Int16Scalar &scalar)#
 
- 
virtual Status Visit(const Int32Scalar &scalar)#
 
- 
virtual Status Visit(const Int64Scalar &scalar)#
 
- 
virtual Status Visit(const UInt8Scalar &scalar)#
 
- 
virtual Status Visit(const UInt16Scalar &scalar)#
 
- 
virtual Status Visit(const UInt32Scalar &scalar)#
 
- 
virtual Status Visit(const UInt64Scalar &scalar)#
 
- 
virtual Status Visit(const HalfFloatScalar &scalar)#
 
- 
virtual Status Visit(const FloatScalar &scalar)#
 
- 
virtual Status Visit(const DoubleScalar &scalar)#
 
- 
virtual Status Visit(const StringScalar &scalar)#
 
- 
virtual Status Visit(const StringViewScalar &scalar)#
 
- 
virtual Status Visit(const BinaryScalar &scalar)#
 
- 
virtual Status Visit(const BinaryViewScalar &scalar)#
 
- 
virtual Status Visit(const LargeStringScalar &scalar)#
 
- 
virtual Status Visit(const LargeBinaryScalar &scalar)#
 
- 
virtual Status Visit(const FixedSizeBinaryScalar &scalar)#
 
- 
virtual Status Visit(const Date64Scalar &scalar)#
 
- 
virtual Status Visit(const Date32Scalar &scalar)#
 
- 
virtual Status Visit(const Time32Scalar &scalar)#
 
- 
virtual Status Visit(const Time64Scalar &scalar)#
 
- 
virtual Status Visit(const TimestampScalar &scalar)#
 
- 
virtual Status Visit(const DayTimeIntervalScalar &scalar)#
 
- 
virtual Status Visit(const MonthDayNanoIntervalScalar &type)#
 
- 
virtual Status Visit(const MonthIntervalScalar &scalar)#
 
- 
virtual Status Visit(const DurationScalar &scalar)#
 
- 
virtual Status Visit(const Decimal32Scalar &scalar)#
 
- 
virtual Status Visit(const Decimal64Scalar &scalar)#
 
- 
virtual Status Visit(const Decimal128Scalar &scalar)#
 
- 
virtual Status Visit(const Decimal256Scalar &scalar)#
 
- 
virtual Status Visit(const ListScalar &scalar)#
 
- 
virtual Status Visit(const LargeListScalar &scalar)#
 
- 
virtual Status Visit(const ListViewScalar &scalar)#
 
- 
virtual Status Visit(const LargeListViewScalar &scalar)#
 
- 
virtual Status Visit(const FixedSizeListScalar &scalar)#
 
- 
virtual Status Visit(const StructScalar &scalar)#
 
- 
virtual Status Visit(const DictionaryScalar &scalar)#
 
- 
virtual Status Visit(const SparseUnionScalar &scalar)#
 
- 
virtual Status Visit(const DenseUnionScalar &scalar)#
 
- 
virtual Status Visit(const RunEndEncodedScalar &scalar)#
 
- 
virtual Status Visit(const ExtensionScalar &scalar)#
 
- 
virtual ~ScalarVisitor() = default#