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

Method scanCommitted

src/storage/table/column_chunk.cpp:119–138  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

117
118template<ResidencyState SCAN_RESIDENCY_STATE>
119void ColumnChunk::scanCommitted(const Transaction* transaction, ChunkState& chunkState,
120 ColumnChunkScanner& output, row_idx_t startRow, row_idx_t numRows) const {
121 auto numValuesInChunk = getNumValues();
122 if (numRows == INVALID_ROW_IDX || startRow + numRows > numValuesInChunk) {
123 numRows = numValuesInChunk - startRow;
124 }
125 if (numRows == 0 || startRow >= numValuesInChunk) {
126 return;
127 }
128 const auto residencyState = getResidencyState();
129 if (SCAN_RESIDENCY_STATE == residencyState) {
130 if constexpr (SCAN_RESIDENCY_STATE == ResidencyState::ON_DISK) {
131 scanPersistentSegments(chunkState, output, startRow, numRows);
132 } else {
133 static_assert(SCAN_RESIDENCY_STATE == ResidencyState::IN_MEMORY);
134 scanInMemSegments(output, startRow, numRows);
135 }
136 output.applyCommittedUpdates(updateInfo, transaction, startRow, numRows);
137 }
138}
139
140template void ColumnChunk::scanCommitted<ResidencyState::ON_DISK>(const Transaction* transaction,
141 ChunkState& chunkState, ColumnChunkScanner& output, row_idx_t startRow,

Callers

nothing calls this directly

Calls 4

getNumValuesFunction · 0.85
getResidencyStateFunction · 0.85
scanPersistentSegmentsFunction · 0.85
applyCommittedUpdatesMethod · 0.45

Tested by

no test coverage detected