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

Method write

src/storage/table/list_chunk_data.cpp:236–266  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

234}
235
236void ListChunkData::write(ColumnChunkData* chunk, ColumnChunkData* dstOffsets, RelMultiplicity) {
237 DASSERT(chunk->getDataType().getPhysicalType() == dataType.getPhysicalType() &&
238 dstOffsets->getDataType().getPhysicalType() == PhysicalTypeID::INTERNAL_ID &&
239 chunk->getNumValues() == dstOffsets->getNumValues());
240 checkOffsetSortedAsc = true;
241 offset_t currentIndex = dataColumnChunk->getNumValues();
242 auto& otherListChunk = chunk->cast<ListChunkData>();
243 dataColumnChunk->resize(
244 dataColumnChunk->getNumValues() + otherListChunk.dataColumnChunk->getNumValues());
245 dataColumnChunk->append(otherListChunk.dataColumnChunk.get(), 0,
246 otherListChunk.dataColumnChunk->getNumValues());
247 offset_t maxDstOffset = 0;
248 for (auto i = 0u; i < dstOffsets->getNumValues(); i++) {
249 auto posInChunk = dstOffsets->getValue<offset_t>(i);
250 if (posInChunk > maxDstOffset) {
251 maxDstOffset = posInChunk;
252 }
253 }
254 while (maxDstOffset >= numValues) {
255 appendNullList();
256 }
257 for (auto i = 0u; i < dstOffsets->getNumValues(); i++) {
258 auto posInChunk = dstOffsets->getValue<offset_t>(i);
259 auto appendSize = otherListChunk.getListSize(i);
260 currentIndex += appendSize;
261 nullData->setNull(posInChunk, otherListChunk.nullData->isNull(i));
262 setOffsetChunkValue(currentIndex, posInChunk);
263 sizeColumnChunk->setValue<list_size_t>(appendSize, posInChunk);
264 }
265 DASSERT(sanityCheck());
266}
267
268void ListChunkData::write(const ValueVector* vector, offset_t offsetInVector,
269 offset_t offsetInChunk) {

Callers

nothing calls this directly

Calls 11

getDataTypeMethod · 0.80
getDataVectorFunction · 0.50
getPhysicalTypeMethod · 0.45
getNumValuesMethod · 0.45
resizeMethod · 0.45
appendMethod · 0.45
getMethod · 0.45
getListSizeMethod · 0.45
setNullMethod · 0.45
isNullMethod · 0.45
getListStartOffsetMethod · 0.45

Tested by

no test coverage detected