Scalars#
- structScalar:publicstd::enable_shared_from_this<Scalar>,publicarrow::util::EqualityComparable<Scalar>#
Base class for scalar values.
AScalar represents a single value with a specificDataType. 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 byarrow::BaseListScalar,arrow::ExtensionScalar,arrow::NullScalar,arrow::RunEndEncodedScalar,arrow::StructScalar,arrow::UnionScalar, arrow::internal::PrimitiveScalarBase
Public Functions
- StatusValidate()const#
Perform cheap validation checks.
This is O(k) where k is the number of descendents.
- Returns:
- StatusValidateFull()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:
- StatusAccept(ScalarVisitor*visitor)const#
Apply theScalarVisitor::Visit() method specialized to the scalar type.
Public Members
- boolis_valid=false#
Whether the value is valid (not null) or not.
- structHash#
- StatusValidate()const#
Factory functions#
- std::shared_ptr<Scalar>MakeNullScalar(std::shared_ptr<DataType>type)#
Scalar factory for null scalars.
- template<typenameValue>
Result<std::shared_ptr<Scalar>>MakeScalar(std::shared_ptr<DataType>type,Value&&value)# Scalar factory for non-null scalars.
- template<typenameValue,typenameTraits=CTypeTraits<typenamestd::decay<Value>::type>,typenameScalarType=typenameTraits::ScalarType,typenameEnable=decltype(ScalarType(std::declval<Value>(),Traits::type_singleton()))>
std::shared_ptr<Scalar>MakeScalar(Valuevalue)# Type-inferring scalar factory for non-null scalars.
Construct aScalar instance with aDataType determined by the input C++ type. (for exampleInt8Scalar for a int8_t input). Only non-parametric primitive types and String are supported.
- inlinestd::shared_ptr<Scalar>MakeScalar(std::stringvalue)#
- inlinestd::shared_ptr<Scalar>MakeScalar(conststd::shared_ptr<Scalar>&scalar)#
Concrete scalar subclasses#
- structNullScalar:publicarrow::Scalar#
- #include <arrow/scalar.h>
A scalar value forNullType. Never valid.
Public Functions
- inlineNullScalar()#
- inlineNullScalar()#
- structBooleanScalar:publicarrow::internal::PrimitiveScalar<BooleanType,bool>#
- #include <arrow/scalar.h>
Public Types
- usingBase=internal::PrimitiveScalar<BooleanType,bool>#
- usingBase=internal::PrimitiveScalar<BooleanType,bool>#
- template<typenameT>
structNumericScalar:publicarrow::internal::PrimitiveScalar<T># - #include <arrow/scalar.h>
Public Types
- structInt8Scalar:publicarrow::NumericScalar<Int8Type>#
- #include <arrow/scalar.h>
- structInt16Scalar:publicarrow::NumericScalar<Int16Type>#
- #include <arrow/scalar.h>
- structInt32Scalar:publicarrow::NumericScalar<Int32Type>#
- #include <arrow/scalar.h>
- structInt64Scalar:publicarrow::NumericScalar<Int64Type>#
- #include <arrow/scalar.h>
- structUInt8Scalar:publicarrow::NumericScalar<UInt8Type>#
- #include <arrow/scalar.h>
- structUInt16Scalar:publicarrow::NumericScalar<UInt16Type>#
- #include <arrow/scalar.h>
- structUInt32Scalar:publicarrow::NumericScalar<UInt32Type>#
- #include <arrow/scalar.h>
- structUInt64Scalar:publicarrow::NumericScalar<UInt64Type>#
- #include <arrow/scalar.h>
- structHalfFloatScalar:publicarrow::NumericScalar<HalfFloatType>#
- #include <arrow/scalar.h>
- structFloatScalar:publicarrow::NumericScalar<FloatType>#
- #include <arrow/scalar.h>
- structDoubleScalar:publicarrow::NumericScalar<DoubleType>#
- #include <arrow/scalar.h>
- structBaseBinaryScalar:publicarrow::internal::PrimitiveScalarBase#
- #include <arrow/scalar.h>
Subclassed byarrow::BinaryScalar,arrow::BinaryViewScalar,arrow::LargeBinaryScalar
- structBinaryScalar:publicarrow::BaseBinaryScalar,privatearrow::internal::ArraySpanFillFromScalarScratchSpace<BinaryScalar>#
- #include <arrow/scalar.h>
Subclassed byarrow::FixedSizeBinaryScalar,arrow::StringScalar
Public Types
- usingTypeClass=BinaryType#
- usingArraySpanFillFromScalarScratchSpace=internal::ArraySpanFillFromScalarScratchSpace<BinaryScalar>#
- usingTypeClass=BinaryType#
- structStringScalar:publicarrow::BinaryScalar#
- #include <arrow/scalar.h>
Public Types
- usingTypeClass=StringType#
- usingTypeClass=StringType#
- structBinaryViewScalar:publicarrow::BaseBinaryScalar,privatearrow::internal::ArraySpanFillFromScalarScratchSpace<BinaryViewScalar>#
- #include <arrow/scalar.h>
Subclassed byarrow::StringViewScalar
Public Types
- usingTypeClass=BinaryViewType#
- usingArraySpanFillFromScalarScratchSpace=internal::ArraySpanFillFromScalarScratchSpace<BinaryViewScalar>#
- usingTypeClass=BinaryViewType#
- structStringViewScalar:publicarrow::BinaryViewScalar#
- #include <arrow/scalar.h>
Public Types
- usingTypeClass=StringViewType#
- usingTypeClass=StringViewType#
- structLargeBinaryScalar:publicarrow::BaseBinaryScalar,privatearrow::internal::ArraySpanFillFromScalarScratchSpace<LargeBinaryScalar>#
- #include <arrow/scalar.h>
Subclassed byarrow::LargeStringScalar
Public Types
- usingTypeClass=LargeBinaryType#
- usingArraySpanFillFromScalarScratchSpace=internal::ArraySpanFillFromScalarScratchSpace<LargeBinaryScalar>#
- usingTypeClass=LargeBinaryType#
- structLargeStringScalar:publicarrow::LargeBinaryScalar#
- #include <arrow/scalar.h>
Public Types
- usingTypeClass=LargeStringType#
- usingTypeClass=LargeStringType#
- structFixedSizeBinaryScalar:publicarrow::BinaryScalar#
- #include <arrow/scalar.h>
Public Types
- usingTypeClass=FixedSizeBinaryType#
- usingTypeClass=FixedSizeBinaryType#
- template<typenameT>
structTemporalScalar:publicarrow::internal::PrimitiveScalar<T># - #include <arrow/scalar.h>
Subclassed byarrow::DateScalar< T >,arrow::IntervalScalar< T >,arrow::TimeScalar< T >
- template<typenameT>
structDateScalar:publicarrow::TemporalScalar<T># - #include <arrow/scalar.h>
Public Types
- usingValueType=typenameTemporalScalar<T>::ValueType#
- usingValueType=typenameTemporalScalar<T>::ValueType#
- structDate32Scalar:publicarrow::DateScalar<Date32Type>#
- #include <arrow/scalar.h>
- structDate64Scalar:publicarrow::DateScalar<Date64Type>#
- #include <arrow/scalar.h>
- template<typenameT>
structTimeScalar:publicarrow::TemporalScalar<T># - #include <arrow/scalar.h>
Public Functions
- inlineTimeScalar(typenameTemporalScalar<T>::ValueTypevalue,TimeUnit::typeunit)#
- inlineTimeScalar(typenameTemporalScalar<T>::ValueTypevalue,TimeUnit::typeunit)#
- structTime32Scalar:publicarrow::TimeScalar<Time32Type>#
- #include <arrow/scalar.h>
- structTime64Scalar:publicarrow::TimeScalar<Time64Type>#
- #include <arrow/scalar.h>
- structTimestampScalar:publicarrow::TemporalScalar<TimestampType>#
- #include <arrow/scalar.h>
Public Functions
- inlineTimestampScalar(typenameTemporalScalar<TimestampType>::ValueTypevalue,TimeUnit::typeunit,std::stringtz="")#
Public Static Functions
- staticResult<TimestampScalar>FromISO8601(std::string_viewiso8601,TimeUnit::typeunit)#
- inlineTimestampScalar(typenameTemporalScalar<TimestampType>::ValueTypevalue,TimeUnit::typeunit,std::stringtz="")#
- template<typenameT>
structIntervalScalar:publicarrow::TemporalScalar<T># - #include <arrow/scalar.h>
Public Types
- usingValueType=typenameTemporalScalar<T>::ValueType#
- usingValueType=typenameTemporalScalar<T>::ValueType#
- structMonthIntervalScalar:publicarrow::IntervalScalar<MonthIntervalType>#
- #include <arrow/scalar.h>
- structDayTimeIntervalScalar:publicarrow::IntervalScalar<DayTimeIntervalType>#
- #include <arrow/scalar.h>
- structMonthDayNanoIntervalScalar:publicarrow::IntervalScalar<MonthDayNanoIntervalType>#
- #include <arrow/scalar.h>
- structDurationScalar:publicarrow::TemporalScalar<DurationType>#
- #include <arrow/scalar.h>
Public Functions
- inlineDurationScalar(typenameTemporalScalar<DurationType>::ValueTypevalue,TimeUnit::typeunit)#
- template<template<typename,typename>classStdDuration,typenameRep>
inlineexplicitDurationScalar(StdDuration<Rep,std::nano>d)#
- template<template<typename,typename>classStdDuration,typenameRep>
inlineexplicitDurationScalar(StdDuration<Rep,std::micro>d)#
- template<template<typename,typename>classStdDuration,typenameRep>
inlineexplicitDurationScalar(StdDuration<Rep,std::milli>d)#
- template<template<typename,typename>classStdDuration,typenameRep,intmax_tNum>
inlineexplicitDurationScalar(StdDuration<Rep,std::ratio<Num,1>>d)#
- inlineDurationScalar(typenameTemporalScalar<DurationType>::ValueTypevalue,TimeUnit::typeunit)#
- template<typenameTYPE_CLASS,typenameVALUE_TYPE>
structDecimalScalar:publicarrow::internal::PrimitiveScalarBase# - #include <arrow/scalar.h>
- structDecimal32Scalar:publicarrow::DecimalScalar<Decimal32Type,Decimal32>#
- #include <arrow/scalar.h>
- structDecimal64Scalar:publicarrow::DecimalScalar<Decimal64Type,Decimal64>#
- #include <arrow/scalar.h>
- structDecimal128Scalar:publicarrow::DecimalScalar<Decimal128Type,Decimal128>#
- #include <arrow/scalar.h>
- structDecimal256Scalar:publicarrow::DecimalScalar<Decimal256Type,Decimal256>#
- #include <arrow/scalar.h>
- structBaseListScalar:publicarrow::Scalar#
- #include <arrow/scalar.h>
Subclassed byarrow::FixedSizeListScalar,arrow::LargeListScalar,arrow::LargeListViewScalar,arrow::ListScalar,arrow::ListViewScalar,arrow::MapScalar
Public Functions
- structListScalar:publicarrow::BaseListScalar,privatearrow::internal::ArraySpanFillFromScalarScratchSpace<ListScalar>#
- #include <arrow/scalar.h>
Public Types
- usingArraySpanFillFromScalarScratchSpace=internal::ArraySpanFillFromScalarScratchSpace<ListScalar>#
- usingArraySpanFillFromScalarScratchSpace=internal::ArraySpanFillFromScalarScratchSpace<ListScalar>#
- structLargeListScalar:publicarrow::BaseListScalar,privatearrow::internal::ArraySpanFillFromScalarScratchSpace<LargeListScalar>#
- #include <arrow/scalar.h>
Public Types
- usingTypeClass=LargeListType#
- usingArraySpanFillFromScalarScratchSpace=internal::ArraySpanFillFromScalarScratchSpace<LargeListScalar>#
- usingTypeClass=LargeListType#
- structListViewScalar:publicarrow::BaseListScalar,privatearrow::internal::ArraySpanFillFromScalarScratchSpace<ListViewScalar>#
- #include <arrow/scalar.h>
Public Types
- usingTypeClass=ListViewType#
- usingArraySpanFillFromScalarScratchSpace=internal::ArraySpanFillFromScalarScratchSpace<ListViewScalar>#
- usingTypeClass=ListViewType#
- structLargeListViewScalar:publicarrow::BaseListScalar,privatearrow::internal::ArraySpanFillFromScalarScratchSpace<LargeListViewScalar>#
- #include <arrow/scalar.h>
Public Types
- usingTypeClass=LargeListViewType#
- usingArraySpanFillFromScalarScratchSpace=internal::ArraySpanFillFromScalarScratchSpace<LargeListViewScalar>#
- usingTypeClass=LargeListViewType#
- structMapScalar:publicarrow::BaseListScalar,privatearrow::internal::ArraySpanFillFromScalarScratchSpace<MapScalar>#
- #include <arrow/scalar.h>
Public Types
- structFixedSizeListScalar:publicarrow::BaseListScalar#
- #include <arrow/scalar.h>
Public Types
- usingTypeClass=FixedSizeListType#
- usingTypeClass=FixedSizeListType#
- structStructScalar:publicarrow::Scalar#
- #include <arrow/scalar.h>
Public Functions
Public Members
- ScalarVectorvalue#
Public Static Functions
- staticResult<std::shared_ptr<StructScalar>>Make(ValueTypevalue,std::vector<std::string>field_names)#
- ScalarVectorvalue#
- structUnionScalar:publicarrow::Scalar#
- #include <arrow/scalar.h>
Subclassed byarrow::DenseUnionScalar,arrow::SparseUnionScalar
Public Members
- constint8_ttype_code#
- constint8_ttype_code#
- structSparseUnionScalar:publicarrow::UnionScalar,privatearrow::internal::ArraySpanFillFromScalarScratchSpace<SparseUnionScalar>#
- #include <arrow/scalar.h>
Public Types
- usingTypeClass=SparseUnionType#
- usingArraySpanFillFromScalarScratchSpace=internal::ArraySpanFillFromScalarScratchSpace<SparseUnionScalar>#
Public Functions
Public Static Functions
- staticstd::shared_ptr<Scalar>FromValue(std::shared_ptr<Scalar>value,intfield_index,std::shared_ptr<DataType>type)#
Construct aSparseUnionScalar from a single value, versus having to construct a vector of scalars.
- usingTypeClass=SparseUnionType#
- structDenseUnionScalar:publicarrow::UnionScalar,privatearrow::internal::ArraySpanFillFromScalarScratchSpace<DenseUnionScalar>#
- #include <arrow/scalar.h>
Public Types
- usingTypeClass=DenseUnionType#
- usingArraySpanFillFromScalarScratchSpace=internal::ArraySpanFillFromScalarScratchSpace<DenseUnionScalar>#
Public Functions
- usingTypeClass=DenseUnionType#
- structRunEndEncodedScalar:publicarrow::Scalar,privatearrow::internal::ArraySpanFillFromScalarScratchSpace<RunEndEncodedScalar>#
- #include <arrow/scalar.h>
Public Types
- usingTypeClass=RunEndEncodedType#
- usingArraySpanFillFromScalarScratchSpace=internal::ArraySpanFillFromScalarScratchSpace<RunEndEncodedScalar>#
Public Functions
- explicitRunEndEncodedScalar(conststd::shared_ptr<DataType>&type)#
Constructs a NULLRunEndEncodedScalar.
- ~RunEndEncodedScalar()override#
- usingTypeClass=RunEndEncodedType#
- structDictionaryScalar:publicarrow::internal::PrimitiveScalarBase#
- #include <arrow/scalar.h>
AScalar value forDictionaryType.
is_validdenotes the validity of theindex, regardless of the corresponding value in thedictionary.Public Types
- usingTypeClass=DictionaryType#
Public Members
- structarrow::DictionaryScalar::ValueTypevalue#
Public Static Functions
- staticstd::shared_ptr<DictionaryScalar>Make(std::shared_ptr<Scalar>index,std::shared_ptr<Array>dict)#
- structValueType#
- #include <arrow/scalar.h>
- usingTypeClass=DictionaryType#
- structExtensionScalar:publicarrow::Scalar#
- #include <arrow/scalar.h>
AScalar value forExtensionType.
The value is the underlying storage scalar.
is_validmust only be true ifvalueis non-null andvalue->is_validis true
Utilities#
- classScalarVisitor#
Abstract scalar visitor class.
Subclass this to create a visitor that can be used with theScalar::Accept() method.
Public Functions
- virtual~ScalarVisitor()=default#
- virtualStatusVisit(constNullScalar&scalar)#
- virtualStatusVisit(constBooleanScalar&scalar)#
- virtualStatusVisit(constInt8Scalar&scalar)#
- virtualStatusVisit(constInt16Scalar&scalar)#
- virtualStatusVisit(constInt32Scalar&scalar)#
- virtualStatusVisit(constInt64Scalar&scalar)#
- virtualStatusVisit(constUInt8Scalar&scalar)#
- virtualStatusVisit(constUInt16Scalar&scalar)#
- virtualStatusVisit(constUInt32Scalar&scalar)#
- virtualStatusVisit(constUInt64Scalar&scalar)#
- virtualStatusVisit(constHalfFloatScalar&scalar)#
- virtualStatusVisit(constFloatScalar&scalar)#
- virtualStatusVisit(constDoubleScalar&scalar)#
- virtualStatusVisit(constStringScalar&scalar)#
- virtualStatusVisit(constStringViewScalar&scalar)#
- virtualStatusVisit(constBinaryScalar&scalar)#
- virtualStatusVisit(constBinaryViewScalar&scalar)#
- virtualStatusVisit(constLargeStringScalar&scalar)#
- virtualStatusVisit(constLargeBinaryScalar&scalar)#
- virtualStatusVisit(constFixedSizeBinaryScalar&scalar)#
- virtualStatusVisit(constDate64Scalar&scalar)#
- virtualStatusVisit(constDate32Scalar&scalar)#
- virtualStatusVisit(constTime32Scalar&scalar)#
- virtualStatusVisit(constTime64Scalar&scalar)#
- virtualStatusVisit(constTimestampScalar&scalar)#
- virtualStatusVisit(constDayTimeIntervalScalar&scalar)#
- virtualStatusVisit(constMonthDayNanoIntervalScalar&type)#
- virtualStatusVisit(constMonthIntervalScalar&scalar)#
- virtualStatusVisit(constDurationScalar&scalar)#
- virtualStatusVisit(constDecimal32Scalar&scalar)#
- virtualStatusVisit(constDecimal64Scalar&scalar)#
- virtualStatusVisit(constDecimal128Scalar&scalar)#
- virtualStatusVisit(constDecimal256Scalar&scalar)#
- virtualStatusVisit(constListScalar&scalar)#
- virtualStatusVisit(constLargeListScalar&scalar)#
- virtualStatusVisit(constListViewScalar&scalar)#
- virtualStatusVisit(constLargeListViewScalar&scalar)#
- virtualStatusVisit(constFixedSizeListScalar&scalar)#
- virtualStatusVisit(constStructScalar&scalar)#
- virtualStatusVisit(constDictionaryScalar&scalar)#
- virtualStatusVisit(constSparseUnionScalar&scalar)#
- virtualStatusVisit(constDenseUnionScalar&scalar)#
- virtualStatusVisit(constRunEndEncodedScalar&scalar)#
- virtualStatusVisit(constExtensionScalar&scalar)#
- virtual~ScalarVisitor()=default#

