MCPcopy Create free account
hub / github.com/LadybugDB/ladybug / testCompressChunk

Method testCompressChunk

test/storage/compress_chunk_test.cpp:127–154  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

125
126template<std::floating_point T>
127void CompressChunkTest::testCompressChunk(const std::vector<T>& bufferToCompress,
128 check_func_t checkFunc) {
129 auto* mm = getMemoryManager(*database);
130 auto* storageManager = getStorageManager(*database);
131 auto* dataFH = storageManager->getDataFH();
132
133 const auto dataType = std::is_same_v<float, T> ? LogicalType::FLOAT() : LogicalType::DOUBLE();
134 const auto alg = std::make_shared<FloatCompression<T>>();
135
136 const auto preScanMetadata = getFloatMetadata(bufferToCompress, alg);
137 auto chunkMetadata =
138 compressBuffer(bufferToCompress, alg, preScanMetadata.get(), dataFH, dataType);
139
140 auto columnReader = ColumnReadWriterFactory::createColumnReadWriter(dataType.getPhysicalType(),
141 dataFH, &storageManager->getShadowFile());
142
143 conn->query("BEGIN TRANSACTION;");
144
145 SegmentState state;
146 state.metadata = chunkMetadata;
147 state.numValuesPerPage = state.metadata.compMeta.numValues(LBUG_PAGE_SIZE, dataType);
148 if (chunkMetadata.compMeta.compression == CompressionType::ALP) {
149 state.alpExceptionChunk = std::make_unique<InMemoryExceptionChunk<T>>(state, dataFH, mm,
150 &storageManager->getShadowFile());
151 }
152
153 checkFunc(columnReader.get(), state, dataType);
154}
155
156template<std::floating_point T>
157void CompressChunkTest::testUpdateChunk(std::vector<T>& bufferToCompress, check_func_t updateFunc) {

Callers

nothing calls this directly

Calls 9

getStorageManagerFunction · 0.85
getFloatMetadataFunction · 0.85
compressBufferFunction · 0.85
getMemoryManagerFunction · 0.50
getDataFHMethod · 0.45
getMethod · 0.45
getPhysicalTypeMethod · 0.45
queryMethod · 0.45
numValuesMethod · 0.45

Tested by

no test coverage detected