iceberg-cpp
Loading...
Searching...
No Matches
Classes | Public Types | Public Attributes | List of all members
iceberg::FieldProjection Struct Reference

A field schema partner to carry projection information. More...

#include <schema_util.h>

Classes

struct  ExtraAttributes
 Format-specific attributes for the field. For example, for Parquet it might store column id and level info of the projected leaf field. More...
 

Public Types

enum class  Kind {
  kProjected , kMetadata , kConstant , kDefault ,
  kNull
}
 How the field is projected. More...
 
using From = std::variant< std::monostate, size_t, Literal >
 A variant to indicate how to set the value of the field.
 

Public Attributes

Kind kind
 The kind of projection of the field it partners with.
 
From from
 The source to set the value of the field.
 
std::vector< FieldProjectionchildren
 The children of the field if it is a nested field.
 
std::shared_ptr< ExtraAttributesattributes
 Format-specific attributes for the field.
 

Detailed Description

A field schema partner to carry projection information.

Member Typedef Documentation

◆ From

using iceberg::FieldProjection::From = std::variant<std::monostate, size_t, Literal>

A variant to indicate how to set the value of the field.

Note
std::monostate is used to indicate that the field is not projected.
size_t is used to indicate the field index in the source schema on the same nesting level when kind is kProjected.
Literal is used to indicate the value of the field when kind is kConstant or kDefault.

Member Enumeration Documentation

◆ Kind

enum class iceberg::FieldProjection::Kind
strong

How the field is projected.

Enumerator
kProjected 

The field is projected from the source with possible conversion for supported schema evolution.

kMetadata 

Metadata column whose value is generated on demand.

kConstant 

The field is a constant value (e.g. partition field value)

kDefault 

The field is missing in the source and should be filled with default value.

kNull 

An optional field that is not present in the source.


The documentation for this struct was generated from the following file: