| 534 | } |
| 535 | |
| 536 | void ColumnChunkData::copyVectorToBuffer(ValueVector* vector, offset_t startPosInChunk, |
| 537 | const SelectionView& selView) { |
| 538 | auto bufferToWrite = buffer->getBuffer().data() + startPosInChunk * numBytesPerValue; |
| 539 | DASSERT(startPosInChunk + selView.getSelSize() <= capacity); |
| 540 | const auto vectorDataToWriteFrom = vector->getData(); |
| 541 | if (nullData) { |
| 542 | nullData->appendNulls(vector, selView, startPosInChunk); |
| 543 | } |
| 544 | if (selView.isUnfiltered()) { |
| 545 | memcpy(bufferToWrite, vectorDataToWriteFrom, selView.getSelSize() * numBytesPerValue); |
| 546 | } else { |
| 547 | selView.forEach([&](auto pos) { |
| 548 | memcpy(bufferToWrite, vectorDataToWriteFrom + pos * numBytesPerValue, numBytesPerValue); |
| 549 | bufferToWrite += numBytesPerValue; |
| 550 | }); |
| 551 | } |
| 552 | } |
| 553 | |
| 554 | void ColumnChunkData::setNumValues(uint64_t numValues_) { |
| 555 | DASSERT(numValues_ <= capacity); |
nothing calls this directly
no test coverage detected