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#
 
    