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

Function scanArrowArrayBLOB

src/common/arrow/arrow_array_scan.cpp:156–171  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

154
155template<typename offsetsT>
156static void scanArrowArrayBLOB(const ArrowArray* array, ValueVector& outputVector,
157 ArrowNullMaskTree* mask, uint64_t srcOffset, uint64_t dstOffset, uint64_t count) {
158 auto offsets = ((const offsetsT*)array->buffers[1]) + srcOffset;
159 auto arrayBuffer = (const uint8_t*)array->buffers[2];
160
161 mask->copyToValueVector(&outputVector, dstOffset, count);
162
163 rowIter(outputVector, count, [&](auto i) {
164 if (!mask->isNull(i)) {
165 auto curOffset = offsets[i], nextOffset = offsets[i + 1];
166 const uint8_t* data = arrayBuffer + curOffset;
167 auto length = nextOffset - curOffset;
168 BlobVector::addBlob(&outputVector, i + dstOffset, data, length);
169 }
170 });
171}
172
173static void scanArrowArrayBLOBView(const ArrowArray* array, ValueVector& outputVector,
174 ArrowNullMaskTree* mask, uint64_t srcOffset, uint64_t dstOffset, uint64_t count) {

Callers

nothing calls this directly

Calls 4

rowIterFunction · 0.85
addBlobFunction · 0.85
copyToValueVectorMethod · 0.80
isNullMethod · 0.45

Tested by

no test coverage detected