iceberg-cpp
Loading...
Searching...
No Matches
Public Member Functions | List of all members
iceberg::TableUpdateContext Class Reference

Context for generating table requirements. More...

#include <table_requirements.h>

Public Member Functions

 TableUpdateContext (const TableMetadata *base, bool is_replace)
 Construct a context for requirement generation.
 
 TableUpdateContext (const TableUpdateContext &)=delete
 
TableUpdateContextoperator= (const TableUpdateContext &)=delete
 
 TableUpdateContext (TableUpdateContext &&) noexcept=default
 
void AddRequirement (std::unique_ptr< TableRequirement > requirement)
 Add a requirement to the list.
 
const TableMetadatabase () const
 Get the base table metadata.
 
bool is_replace () const
 Check if this is a replace operation.
 
Result< std::vector< std::unique_ptr< TableRequirement > > > Build ()
 Build and return the list of requirements.
 
void RequireLastAssignedFieldIdUnchanged ()
 Require that the last assigned field ID remains unchanged.
 
void RequireCurrentSchemaIdUnchanged ()
 Require that the current schema ID remains unchanged.
 
void RequireLastAssignedPartitionIdUnchanged ()
 Require that the last assigned partition ID remains unchanged.
 
void RequireDefaultSpecIdUnchanged ()
 Require that the default spec ID remains unchanged.
 
void RequireDefaultSortOrderIdUnchanged ()
 Require that the default sort order ID remains unchanged.
 
void RequireNoBranchesChanged ()
 Require that no branches have been changed.
 
bool AddChangedRef (const std::string &ref_name)
 Track a changed ref and return whether it was newly added.
 

Detailed Description

Context for generating table requirements.

This context is passed to each TableUpdate's GenerateRequirements method and maintains state about what requirements have already been added to avoid duplicates.

Constructor & Destructor Documentation

◆ TableUpdateContext()

iceberg::TableUpdateContext::TableUpdateContext ( const TableMetadata base,
bool  is_replace 
)
inline

Construct a context for requirement generation.

Parameters
baseThe base table metadata (maybe nullptr for table creation)
is_replaceWhether this is a replace operation (more permissive)

Member Function Documentation

◆ AddChangedRef()

bool iceberg::TableUpdateContext::AddChangedRef ( const std::string &  ref_name)

Track a changed ref and return whether it was newly added.

Parameters
ref_nameThe name of the ref being changed
Returns
true if this is the first time the ref is being changed

The documentation for this class was generated from the following files: