iceberg-cpp
Loading...
Searching...
No Matches
Classes | Functions
type.h File Reference
#include <array>
#include <cstdint>
#include <memory>
#include <optional>
#include <span>
#include <string>
#include <unordered_map>
#include <vector>
#include "iceberg/iceberg_export.h"
#include "iceberg/result.h"
#include "iceberg/schema_field.h"
#include "iceberg/util/formattable.h"
#include "iceberg/util/lazy.h"

Go to the source code of this file.

Classes

class  iceberg::Type
 Interface for a data type for a field. More...
 
class  iceberg::PrimitiveType
 A data type that does not have child fields. More...
 
class  iceberg::NestedType
 A data type that has child fields. More...
 
class  iceberg::StructType
 A data type representing a struct with nested fields. More...
 
class  iceberg::ListType
 A data type representing a list of values. More...
 
class  iceberg::MapType
 A data type representing a dictionary of values. More...
 
class  iceberg::BooleanType
 A data type representing a boolean (true or false). More...
 
class  iceberg::IntType
 A data type representing a 32-bit signed integer. More...
 
class  iceberg::LongType
 A data type representing a 64-bit signed integer. More...
 
class  iceberg::FloatType
 A data type representing a 32-bit (single precision) IEEE-754 float. More...
 
class  iceberg::DoubleType
 A data type representing a 64-bit (double precision) IEEE-754 float. More...
 
class  iceberg::DecimalType
 A data type representing a fixed-precision decimal. More...
 
class  iceberg::DateType
 A data type representing a calendar date without reference to a timezone or time. More...
 
class  iceberg::TimeType
 A data type representing a wall clock time in microseconds without reference to a timezone or date. More...
 
class  iceberg::TimestampBase
 A base class for any timestamp time (irrespective of unit or timezone). More...
 
class  iceberg::TimestampType
 A data type representing a timestamp in microseconds without reference to a timezone. More...
 
class  iceberg::TimestampTzType
 A data type representing a timestamp as microseconds since the epoch in UTC. A time zone or offset is not stored. More...
 
class  iceberg::BinaryType
 A data type representing an arbitrary-length byte sequence. More...
 
class  iceberg::StringType
 A data type representing an arbitrary-length character sequence (encoded in UTF-8). More...
 
class  iceberg::FixedType
 A data type representing a fixed-length bytestring. More...
 
class  iceberg::UuidType
 A data type representing a UUID. While defined as a distinct type, it is effectively a fixed(16). More...
 

Functions

ICEBERG_EXPORT const std::shared_ptr< BooleanType > & iceberg::boolean ()
 Return a BooleanType instance.
 
ICEBERG_EXPORT const std::shared_ptr< IntType > & iceberg::int32 ()
 Return an IntType instance.
 
ICEBERG_EXPORT const std::shared_ptr< LongType > & iceberg::int64 ()
 Return a LongType instance.
 
ICEBERG_EXPORT const std::shared_ptr< FloatType > & iceberg::float32 ()
 Return a FloatType instance.
 
ICEBERG_EXPORT const std::shared_ptr< DoubleType > & iceberg::float64 ()
 Return a DoubleType instance.
 
ICEBERG_EXPORT const std::shared_ptr< DateType > & iceberg::date ()
 Return a DateType instance.
 
ICEBERG_EXPORT const std::shared_ptr< TimeType > & iceberg::time ()
 Return a TimeType instance.
 
ICEBERG_EXPORT const std::shared_ptr< TimestampType > & iceberg::timestamp ()
 Return a TimestampType instance.
 
ICEBERG_EXPORT const std::shared_ptr< TimestampTzType > & iceberg::timestamp_tz ()
 Return a TimestampTzType instance.
 
ICEBERG_EXPORT const std::shared_ptr< BinaryType > & iceberg::binary ()
 Return a BinaryType instance.
 
ICEBERG_EXPORT const std::shared_ptr< StringType > & iceberg::string ()
 Return a StringType instance.
 
ICEBERG_EXPORT const std::shared_ptr< UuidType > & iceberg::uuid ()
 Return a UuidType instance.
 
std::shared_ptr< DecimalTypeiceberg::decimal (int32_t precision, int32_t scale)
 Create a DecimalType with the given precision and scale.
 
std::shared_ptr< FixedTypeiceberg::fixed (int32_t length)
 Create a FixedType with the given length.
 
std::shared_ptr< StructTypeiceberg::struct_ (std::vector< SchemaField > fields)
 Create a StructType with the given fields.
 
std::shared_ptr< ListTypeiceberg::list (SchemaField element)
 Create a ListType with the given element field.
 
std::shared_ptr< MapTypeiceberg::map (SchemaField key, SchemaField value)
 Create a MapType with the given key and value fields.
 
std::string_view iceberg::ToString (TypeId id)
 Get the lowercase string representation of a TypeId.
 

Detailed Description

Data types for Iceberg. This header defines the data types, but see iceberg/type_fwd.h for the enum defining the list of types.

Function Documentation

◆ ToString()

ICEBERG_EXPORT std::string_view iceberg::ToString ( TypeId  id)

Get the lowercase string representation of a TypeId.

This returns the same lowercase string as used by Type::ToString() methods. For example: TypeId::kBoolean -> "boolean", TypeId::kInt -> "int", etc.

Parameters
idThe TypeId to convert to string
Returns
A string_view containing the lowercase type name