| 33 | } |
| 34 | |
| 35 | uint64_t JoinHashTable::appendVectors(const std::vector<ValueVector*>& keyVectors, |
| 36 | const std::vector<ValueVector*>& payloadVectors, DataChunkState* keyState) { |
| 37 | discardNullFromKeys(keyVectors); |
| 38 | auto numTuplesToAppend = keyState->getSelVector().getSelSize(); |
| 39 | auto appendInfos = factorizedTable->allocateFlatTupleBlocks(numTuplesToAppend); |
| 40 | computeVectorHashes(keyVectors); |
| 41 | auto colIdx = 0u; |
| 42 | for (auto& vector : keyVectors) { |
| 43 | appendVector(vector, appendInfos, colIdx++); |
| 44 | } |
| 45 | for (auto& vector : payloadVectors) { |
| 46 | appendVector(vector, appendInfos, colIdx++); |
| 47 | } |
| 48 | appendVector(hashVector.get(), appendInfos, colIdx); |
| 49 | factorizedTable->numTuples += numTuplesToAppend; |
| 50 | return numTuplesToAppend; |
| 51 | } |
| 52 | |
| 53 | void JoinHashTable::appendVector(ValueVector* vector, |
| 54 | const std::vector<BlockAppendingInfo>& appendInfos, ft_col_idx_t colIdx) { |
nothing calls this directly
no test coverage detected