1//===----------------------------------------------------------------------===//
2// DuckDB
3//
4// duckdb/storage/data_pointer.hpp
5//
6//
7//===----------------------------------------------------------------------===//
8
9#pragma once
10
11#include "duckdb/common/common.hpp"
12#include "duckdb/storage/statistics/base_statistics.hpp"
13#include "duckdb/storage/storage_info.hpp"
14#include "duckdb/storage/block.hpp"
15#include "duckdb/storage/table/row_group.hpp"
16#include "duckdb/common/enums/compression_type.hpp"
17
18namespace duckdb {
19
20struct DataPointer {
21 DataPointer(BaseStatistics stats) : statistics(std::move(stats)) {
22 }
23
24 uint64_t row_start;
25 uint64_t tuple_count;
26 BlockPointer block_pointer;
27 CompressionType compression_type;
28 //! Type-specific statistics of the segment
29 BaseStatistics statistics;
30};
31
32struct RowGroupPointer {
33 uint64_t row_start;
34 uint64_t tuple_count;
35 //! The data pointers of the column segments stored in the row group
36 vector<BlockPointer> data_pointers;
37 //! The versions information of the row group (if any)
38 shared_ptr<VersionNode> versions;
39};
40
41} // namespace duckdb
42