Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 3 additions & 3 deletions src/duckdb/src/function/table/version/pragma_version.cpp
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
#ifndef DUCKDB_PATCH_VERSION
#define DUCKDB_PATCH_VERSION "0-dev3480"
#define DUCKDB_PATCH_VERSION "0-dev3486"
#endif
#ifndef DUCKDB_MINOR_VERSION
#define DUCKDB_MINOR_VERSION 4
Expand All @@ -8,10 +8,10 @@
#define DUCKDB_MAJOR_VERSION 1
#endif
#ifndef DUCKDB_VERSION
#define DUCKDB_VERSION "v1.4.0-dev3480"
#define DUCKDB_VERSION "v1.4.0-dev3486"
#endif
#ifndef DUCKDB_SOURCE_ID
#define DUCKDB_SOURCE_ID "ecde6b6514"
#define DUCKDB_SOURCE_ID "036b9bc3f9"
#endif
#include "duckdb/function/table/system_functions.hpp"
#include "duckdb/main/database.hpp"
Expand Down
4 changes: 4 additions & 0 deletions src/duckdb/src/include/duckdb/storage/table/row_group.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -204,6 +204,8 @@ class RowGroup : public SegmentBase<RowGroup> {
ColumnData &GetColumn(const StorageIndex &c);
idx_t GetColumnCount() const;
vector<shared_ptr<ColumnData>> &GetColumns();
ColumnData &GetRowIdColumnData();
void SetCount(idx_t count);

template <TableScanType TYPE>
void TemplatedScan(TransactionData transaction, CollectionScanState &state, DataChunk &result);
Expand All @@ -221,6 +223,8 @@ class RowGroup : public SegmentBase<RowGroup> {
vector<idx_t> extra_metadata_blocks;
atomic<bool> deletes_is_loaded;
atomic<idx_t> allocation_size;
unique_ptr<ColumnData> row_id_column_data;
atomic<bool> row_id_is_loaded;
};

} // namespace duckdb
68 changes: 68 additions & 0 deletions src/duckdb/src/include/duckdb/storage/table/row_id_column_data.hpp
Original file line number Diff line number Diff line change
@@ -0,0 +1,68 @@
//===----------------------------------------------------------------------===//
// DuckDB
//
// duckdb/storage/table/row_id_column_data.hpp
//
//
//===----------------------------------------------------------------------===//

#pragma once

#include "duckdb/storage/table/column_data.hpp"

namespace duckdb {

class RowIdColumnData : public ColumnData {
public:
RowIdColumnData(BlockManager &block_manager, DataTableInfo &info, idx_t start_row);

public:
void InitializePrefetch(PrefetchState &prefetch_state, ColumnScanState &scan_state, idx_t rows) override;
void InitializeScan(ColumnScanState &state) override;
void InitializeScanWithOffset(ColumnScanState &state, idx_t row_idx) override;

idx_t Scan(TransactionData transaction, idx_t vector_index, ColumnScanState &state, Vector &result,
idx_t scan_count) override;
idx_t ScanCommitted(idx_t vector_index, ColumnScanState &state, Vector &result, bool allow_updates,
idx_t scan_count) override;
void ScanCommittedRange(idx_t row_group_start, idx_t offset_in_row_group, idx_t count, Vector &result) override;
idx_t ScanCount(ColumnScanState &state, Vector &result, idx_t count, idx_t result_offset = 0) override;

void Filter(TransactionData transaction, idx_t vector_index, ColumnScanState &state, Vector &result,
SelectionVector &sel, idx_t &count, const TableFilter &filter, TableFilterState &filter_state) override;
void Select(TransactionData transaction, idx_t vector_index, ColumnScanState &state, Vector &result,
SelectionVector &sel, idx_t count) override;
void SelectCommitted(idx_t vector_index, ColumnScanState &state, Vector &result, SelectionVector &sel, idx_t count,
bool allow_updates) override;

idx_t Fetch(ColumnScanState &state, row_t row_id, Vector &result) override;
void FetchRow(TransactionData transaction, ColumnFetchState &state, row_t row_id, Vector &result,
idx_t result_idx) override;

void Skip(ColumnScanState &state, idx_t count = STANDARD_VECTOR_SIZE) override;

FilterPropagateResult CheckZonemap(ColumnScanState &state, TableFilter &filter) override;

void InitializeAppend(ColumnAppendState &state) override;
void Append(BaseStatistics &stats, ColumnAppendState &state, Vector &vector, idx_t count) override;
void AppendData(BaseStatistics &stats, ColumnAppendState &state, UnifiedVectorFormat &vdata, idx_t count) override;
void RevertAppend(row_t start_row) override;

void Update(TransactionData transaction, idx_t column_index, Vector &update_vector, row_t *row_ids,
idx_t update_count) override;
void UpdateColumn(TransactionData transaction, const vector<column_t> &column_path, Vector &update_vector,
row_t *row_ids, idx_t update_count, idx_t depth) override;

void CommitDropColumn() override;

unique_ptr<ColumnCheckpointState> CreateCheckpointState(RowGroup &row_group,
PartialBlockManager &partial_block_manager) override;
unique_ptr<ColumnCheckpointState> Checkpoint(RowGroup &row_group, ColumnCheckpointInfo &info) override;

void CheckpointScan(ColumnSegment &segment, ColumnScanState &state, idx_t row_group_start, idx_t count,
Vector &scan_vector) override;

bool IsPersistent() override;
};

} // namespace duckdb
Loading
Loading