Autonomy Software C++ 24.5.1
Welcome to the Autonomy Software repository of the Mars Rover Design Team (MRDT) at Missouri University of Science and Technology (Missouri S&T)! API reference contains the source code and other resources for the development of the autonomy software for our Mars rover. The Autonomy Software project aims to compete in the University Rover Challenge (URC) by demonstrating advanced autonomous capabilities and robust navigation algorithms.
Loading...
Searching...
No Matches
duckdb::ColumnData Class Reference
Inheritance diagram for duckdb::ColumnData:
Collaboration diagram for duckdb::ColumnData:

Public Member Functions

 ColumnData (BlockManager &block_manager, DataTableInfo &info, idx_t column_index, LogicalType type, ColumnDataType data_type, optional_ptr< ColumnData > parent)
 
virtual FilterPropagateResult CheckZonemap (ColumnScanState &state, TableFilter &filter)
 
BlockManagerGetBlockManager () const
 
DatabaseInstanceGetDatabase () const
 
DataTableInfoGetTableInfo () const
 
StorageManagerGetStorageManager () const
 
virtual idx_t GetMaxEntry ()
 
idx_t GetAllocationSize () const
 
optional_ptr< const CompressionFunctionGetCompressionFunction () const
 
virtual void SetDataType (ColumnDataType data_type)
 
ColumnDataType GetDataType () const
 
bool HasParent () const
 
void SetParent (optional_ptr< ColumnData > parent)
 
const ColumnDataParent () const
 
virtual const BaseStatisticsGetChildStats (const ColumnData &child) const
 
const LogicalTypeGetType () const
 
ColumnSegmentTreeGetSegmentTree ()
 
void SetCount (idx_t new_count)
 
bool HasUpdates () const
 Whether or not the column has any updates.
 
bool HasChanges (idx_t start_row, idx_t end_row) const
 
bool HasChanges () const
 Whether or not the column has changes at this level.
 
virtual bool HasAnyChanges () const
 Whether or not the column has ANY changes, including in child columns.
 
virtual ScanVectorType GetVectorScanType (ColumnScanState &state, idx_t scan_count, Vector &result)
 Whether or not we can scan an entire vector.
 
virtual void InitializePrefetch (PrefetchState &prefetch_state, ColumnScanState &scan_state, idx_t rows)
 Initialize prefetch state with required I/O data for the next N rows.
 
virtual void InitializeScan (ColumnScanState &state)
 Initialize a scan of the column.
 
virtual void InitializeScanWithOffset (ColumnScanState &state, idx_t row_idx)
 Initialize a scan starting at the specified offset.
 
idx_t Scan (TransactionData transaction, idx_t vector_index, ColumnScanState &state, Vector &result)
 Scan the next vector from the column.
 
virtual idx_t Scan (TransactionData transaction, idx_t vector_index, ColumnScanState &state, Vector &result, idx_t scan_count)
 
virtual void ScanCommittedRange (idx_t row_group_start, idx_t offset_in_row_group, idx_t count, Vector &result)
 
virtual idx_t ScanCount (ColumnScanState &state, Vector &result, idx_t count, idx_t result_offset=0)
 
virtual void Filter (TransactionData transaction, idx_t vector_index, ColumnScanState &state, Vector &result, SelectionVector &sel, idx_t &count, const TableFilter &filter, TableFilterState &filter_state)
 Select.
 
virtual void Select (TransactionData transaction, idx_t vector_index, ColumnScanState &state, Vector &result, SelectionVector &sel, idx_t count)
 
virtual void Skip (ColumnScanState &state, idx_t count=STANDARD_VECTOR_SIZE)
 Skip the scan forward by "count" rows.
 
virtual void InitializeAppend (ColumnAppendState &state)
 Initialize an appending phase for this column.
 
virtual void Append (BaseStatistics &stats, ColumnAppendState &state, Vector &vector, idx_t count)
 Append a vector of type [type] to the end of the column.
 
void Append (ColumnAppendState &state, Vector &vector, idx_t count)
 Append a vector of type [type] to the end of the column.
 
virtual void AppendData (BaseStatistics &stats, ColumnAppendState &state, UnifiedVectorFormat &vdata, idx_t count)
 
virtual void RevertAppend (row_t new_count)
 Revert a set of appends to the ColumnData.
 
virtual idx_t Fetch (ColumnScanState &state, row_t row_id, Vector &result)
 Fetch the vector from the column data that belongs to this specific row.
 
virtual void FetchRow (TransactionData transaction, ColumnFetchState &state, const StorageIndex &storage_index, row_t row_id, Vector &result, idx_t result_idx)
 Fetch a specific row id and append it to the vector.
 
virtual void Update (TransactionData transaction, DataTable &data_table, idx_t column_index, Vector &update_vector, row_t *row_ids, idx_t update_count, idx_t row_group_start)
 
virtual void UpdateColumn (TransactionData transaction, DataTable &data_table, const vector< column_t > &column_path, Vector &update_vector, row_t *row_ids, idx_t update_count, idx_t depth, idx_t row_group_start)
 
virtual unique_ptr< BaseStatisticsGetUpdateStatistics ()
 
virtual void VisitBlockIds (BlockIdVisitor &visitor) const
 
virtual unique_ptr< ColumnCheckpointStateCreateCheckpointState (const RowGroup &row_group, PartialBlockManager &partial_block_manager)
 
unique_ptr< ColumnCheckpointStateCheckpoint (const RowGroup &row_group, ColumnCheckpointInfo &info)
 
virtual unique_ptr< ColumnCheckpointStateCheckpoint (const RowGroup &row_group, ColumnCheckpointInfo &info, const BaseStatistics &stats)
 
virtual void CheckpointScan (ColumnSegment &segment, ColumnScanState &state, idx_t count, Vector &scan_vector) const
 
virtual bool IsPersistent ()
 
vector< DataPointerGetDataPointers ()
 
virtual PersistentColumnData Serialize ()
 
void InitializeColumn (PersistentColumnData &column_data)
 
virtual void InitializeColumn (PersistentColumnData &column_data, BaseStatistics &target_stats)
 
virtual void GetColumnSegmentInfo (const QueryContext &context, idx_t row_group_index, vector< idx_t > col_path, vector< ColumnSegmentInfo > &result)
 
virtual void Verify (RowGroup &parent)
 
FilterPropagateResult CheckZonemap (const StorageIndex &index, TableFilter &filter)
 
void MergeStatistics (const BaseStatistics &other)
 
void MergeIntoStatistics (BaseStatistics &other)
 
unique_ptr< BaseStatisticsGetStatistics () const
 
const BaseStatisticsGetStatisticsRef () const
 
template<class TARGET >
TARGETCast ()
 
template<class TARGET >
const TARGETCast () const
 
- Public Member Functions inherited from duckdb::enable_shared_from_this< ColumnData >
shared_ptr< ColumnDatashared_from_this ()
 
shared_ptr< ColumnData constshared_from_this () const
 

Static Public Member Functions

static shared_ptr< ColumnDataDeserialize (BlockManager &block_manager, DataTableInfo &info, idx_t column_index, ReadStream &source, const LogicalType &type)
 
static shared_ptr< ColumnDataCreateColumn (BlockManager &block_manager, DataTableInfo &info, idx_t column_index, const LogicalType &type, ColumnDataType data_type=ColumnDataType::MAIN_TABLE, optional_ptr< ColumnData > parent=nullptr)
 

Public Attributes

atomic< idx_tcount
 The count of the column data.
 
BlockManagerblock_manager
 The block manager.
 
DataTableInfoinfo
 Table info for the column.
 
idx_t column_index
 The column index of the column, either within the parent table or within the parent.
 
LogicalType type
 The type of the column.
 

Protected Member Functions

void AppendTransientSegment (SegmentLock &l, idx_t start_row)
 Append a transient segment.
 
void AppendSegment (SegmentLock &l, unique_ptr< ColumnSegment > segment)
 
void BeginScanVectorInternal (ColumnScanState &state)
 
idx_t ScanVector (ColumnScanState &state, Vector &result, idx_t remaining, ScanVectorType scan_type, idx_t result_offset=0)
 Scans a base vector from the column.
 
idx_t ScanVector (TransactionData transaction, idx_t vector_index, ColumnScanState &state, Vector &result, idx_t target_scan, ScanVectorType scan_type, UpdateScanType update_type)
 Scans a vector from the column merged with any potential updates.
 
idx_t ScanVector (TransactionData transaction, idx_t vector_index, ColumnScanState &state, Vector &result, idx_t target_scan, UpdateScanType update_type)
 
void SelectVector (ColumnScanState &state, Vector &result, idx_t target_count, const SelectionVector &sel, idx_t sel_count)
 
void FilterVector (ColumnScanState &state, Vector &result, idx_t target_count, SelectionVector &sel, idx_t &sel_count, const TableFilter &filter, TableFilterState &filter_state)
 
void FetchUpdates (TransactionData transaction, idx_t vector_index, Vector &result, idx_t scan_count, UpdateScanType update_type)
 
void FetchUpdateRow (TransactionData transaction, row_t row_id, Vector &result, idx_t result_idx)
 
void UpdateInternal (TransactionData transaction, DataTable &data_table, idx_t column_index, Vector &update_vector, row_t *row_ids, idx_t update_count, Vector &base_vector, idx_t row_group_start)
 
idx_t FetchUpdateData (ColumnScanState &state, row_t *row_ids, Vector &base_vector, idx_t row_group_start)
 
idx_t GetVectorCount (idx_t vector_index) const
 
- Protected Member Functions inherited from duckdb::enable_shared_from_this< ColumnData >
 enable_shared_from_this (enable_shared_from_this const &) noexcept
 
enable_shared_from_thisoperator= (enable_shared_from_this const &) noexcept
 

Protected Attributes

ColumnSegmentTree data
 The segments holding the data of this column segment.
 
mutex update_lock
 The lock for the updates.
 
unique_ptr< UpdateSegmentupdates
 The updates for this column segment.
 
mutex stats_lock
 The lock for the stats.
 
atomic< idx_tallocation_size
 Total transient allocation size.
 
unique_ptr< SegmentStatisticsstats
 The stats of the root segment.
 

Private Member Functions

void UpdateCompressionFunction (SegmentLock &l, const CompressionFunction &function)
 

Private Attributes

atomic< ColumnDataType > data_type
 Whether or not this column data belongs to a main table or if it is transaction local.
 
optional_ptr< ColumnDataparent
 The parent column (if any)
 
atomic_ptr< const CompressionFunctioncompression
 

Friends

class ColumnDataCheckpointer
 

Member Function Documentation

◆ GetBlockManager()

BlockManager & duckdb::ColumnData::GetBlockManager ( ) const
inline
49286 {
49287 return block_manager;
49288 }
BlockManager & block_manager
The block manager.
Definition duckdb.hpp:49275

◆ GetAllocationSize()

idx_t duckdb::ColumnData::GetAllocationSize ( ) const
inline
49294 {
49295 return allocation_size;
49296 }
atomic< idx_t > allocation_size
Total transient allocation size.
Definition duckdb.hpp:49463

◆ GetCompressionFunction()

optional_ptr< const CompressionFunction > duckdb::ColumnData::GetCompressionFunction ( ) const
inline
49297 {
49298 return compression.get();
49299 }
atomic_ptr< const CompressionFunction > compression
Definition duckdb.hpp:49474

◆ GetDataType()

ColumnDataType duckdb::ColumnData::GetDataType ( ) const
inline
49301 {
49302 return data_type;
49303 }
atomic< ColumnDataType > data_type
Whether or not this column data belongs to a main table or if it is transaction local.
Definition duckdb.hpp:49469

◆ HasParent()

bool duckdb::ColumnData::HasParent ( ) const
inline
49305 {
49306 return parent;
49307 }
optional_ptr< ColumnData > parent
The parent column (if any)
Definition duckdb.hpp:49471

◆ SetParent()

void duckdb::ColumnData::SetParent ( optional_ptr< ColumnData parent)
inline
49308 {
49309 this->parent = parent;
49310 }

◆ Parent()

const ColumnData & duckdb::ColumnData::Parent ( ) const
inline
49311 {
49312 D_ASSERT(HasParent());
49313 return *parent;
49314 }

◆ GetType()

const LogicalType & duckdb::ColumnData::GetType ( ) const
inline
49318 {
49319 return type;
49320 }
LogicalType type
The type of the column.
Definition duckdb.hpp:49281

◆ GetSegmentTree()

ColumnSegmentTree & duckdb::ColumnData::GetSegmentTree ( )
inline
49321 {
49322 return data;
49323 }
ColumnSegmentTree data
The segments holding the data of this column segment.
Definition duckdb.hpp:49455

◆ SetCount()

void duckdb::ColumnData::SetCount ( idx_t  new_count)
inline
49324 {
49325 this->count = new_count;
49326 }
atomic< idx_t > count
The count of the column data.
Definition duckdb.hpp:49273

◆ Checkpoint()

unique_ptr< ColumnCheckpointState > duckdb::ColumnData::Checkpoint ( const RowGroup row_group,
ColumnCheckpointInfo info 
)

If this is a nested column, "stats" are the corresponding statistics from the parent column Otherwise, "stats" == this->statistics->stats

◆ Cast() [1/2]

template<class TARGET >
TARGET & duckdb::ColumnData::Cast ( )
inline
49478 {
49479 DynamicCastCheck<TARGET>(this);
49480 return reinterpret_cast<TARGET &>(*this);
49481 }

◆ Cast() [2/2]

template<class TARGET >
const TARGET & duckdb::ColumnData::Cast ( ) const
inline
49483 {
49484 DynamicCastCheck<TARGET>(this);
49485 return reinterpret_cast<const TARGET &>(*this);
49486 }

Member Data Documentation

◆ compression

atomic_ptr<const CompressionFunction> duckdb::ColumnData::compression
private

The compression function used by the ColumnData This is empty if the segments have mixed compression or the ColumnData is empty


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