| 156 | } |
| 157 | |
| 158 | static void initializeScanStateForChunkedGroup(const TableScanState& state, |
| 159 | const ChunkedNodeGroup* chunkedGroup) { |
| 160 | DASSERT(chunkedGroup); |
| 161 | if (chunkedGroup->getResidencyState() != ResidencyState::ON_DISK) { |
| 162 | return; |
| 163 | } |
| 164 | auto& nodeGroupScanState = *state.nodeGroupScanState; |
| 165 | for (auto i = 0u; i < state.columnIDs.size(); i++) { |
| 166 | DASSERT(i < state.columnIDs.size()); |
| 167 | DASSERT(i < nodeGroupScanState.chunkStates.size()); |
| 168 | const auto columnID = state.columnIDs[i]; |
| 169 | if (columnID == INVALID_COLUMN_ID || columnID == ROW_IDX_COLUMN_ID) { |
| 170 | continue; |
| 171 | } |
| 172 | auto& chunk = chunkedGroup->getColumnChunk(columnID); |
| 173 | auto& chunkState = nodeGroupScanState.chunkStates[i]; |
| 174 | chunk.initializeScanState(chunkState, state.columns[i]); |
| 175 | } |
| 176 | } |
| 177 | |
| 178 | void NodeGroup::initializeScanState(const Transaction*, const UniqLock& lock, |
| 179 | TableScanState& state) const { |
no test coverage detected