iceberg-cpp
Loading...
Searching...
No Matches
Classes | Typedefs | Functions
struct_like.h File Reference
#include <functional>
#include <memory>
#include <span>
#include <string_view>
#include <variant>
#include "iceberg/expression/literal.h"
#include "iceberg/result.h"
#include "iceberg/type_fwd.h"
#include "iceberg/util/decimal.h"

Go to the source code of this file.

Classes

class  iceberg::StructLike
 An immutable struct-like wrapper. More...
 
class  iceberg::ArrayLike
 An immutable array-like wrapper. More...
 
class  iceberg::MapLike
 An immutable map-like wrapper. More...
 
class  iceberg::StructLikeAccessor
 An accessor for a struct-like object. More...
 

Typedefs

using iceberg::Scalar = std::variant< std::monostate, bool, int32_t, int64_t, float, double, std::string_view, Decimal, std::shared_ptr< StructLike >, std::shared_ptr< ArrayLike >, std::shared_ptr< MapLike > >
 A scalar value depending on its data type.
 

Functions

Result< Scalariceberg::LiteralToScalar (const Literal &literal)
 Convert a Literal to a Scalar.
 

Detailed Description

Structures for viewing data in a row-based format. This header contains the definition of StructLike, ArrayLike, and MapLike which provide an unified interface for viewing data from ArrowArray or structs like ManifestFile and ManifestEntry. Note that they do not carry type information and should be used in conjunction with the schema to get the type information.

Typedef Documentation

◆ Scalar

using iceberg::Scalar = typedef std::variant<std::monostate, bool, int32_t, int64_t, float, double, std::string_view, Decimal, std::shared_ptr<StructLike>, std::shared_ptr<ArrayLike>, std::shared_ptr<MapLike> >

A scalar value depending on its data type.

Note that all string and binary values are stored as non-owned string_view and their lifetime is managed by the wrapped object.