| 117 | |
| 118 | template<ResidencyState SCAN_RESIDENCY_STATE> |
| 119 | void 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 | |
| 140 | template void ColumnChunk::scanCommitted<ResidencyState::ON_DISK>(const Transaction* transaction, |
| 141 | ChunkState& chunkState, ColumnChunkScanner& output, row_idx_t startRow, |
nothing calls this directly
no test coverage detected