1//===----------------------------------------------------------------------===//
2// DuckDB
3//
4// duckdb/storage/segment/uncompressed.hpp
5//
6//
7//===----------------------------------------------------------------------===//
8
9#pragma once
10
11#include "duckdb/storage/table/column_segment.hpp"
12
13namespace duckdb {
14class DatabaseInstance;
15
16struct UncompressedFunctions {
17 static unique_ptr<CompressionState> InitCompression(ColumnDataCheckpointer &checkpointer,
18 unique_ptr<AnalyzeState> state);
19 static void Compress(CompressionState &state_p, Vector &data, idx_t count);
20 static void FinalizeCompress(CompressionState &state_p);
21 static void EmptySkip(ColumnSegment &segment, ColumnScanState &state, idx_t skip_count) {
22 }
23};
24
25struct FixedSizeUncompressed {
26 static CompressionFunction GetFunction(PhysicalType data_type);
27};
28
29struct ValidityUncompressed {
30public:
31 static CompressionFunction GetFunction(PhysicalType data_type);
32
33public:
34 static const validity_t LOWER_MASKS[65];
35 static const validity_t UPPER_MASKS[65];
36};
37
38struct StringUncompressed {
39public:
40 static CompressionFunction GetFunction(PhysicalType data_type);
41
42public:
43 //! The max string size that is allowed within a block. Strings bigger than this will be labeled as a BIG STRING and
44 //! offloaded to the overflow blocks.
45 static constexpr uint16_t STRING_BLOCK_LIMIT = 4096;
46};
47
48} // namespace duckdb
49