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

Function scanArrowArrayDayTimeInterval

src/common/arrow/arrow_array_scan.cpp:120–135  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

118}
119
120static void scanArrowArrayDayTimeInterval(const ArrowArray* array, ValueVector& outputVector,
121 ArrowNullMaskTree* mask, uint64_t srcOffset, uint64_t dstOffset, uint64_t count) {
122 auto arrayBuffer = ((const int64_t*)array->buffers[1]) + srcOffset;
123
124 mask->copyToValueVector(&outputVector, dstOffset, count);
125
126 rowIter(outputVector, count, [&](auto i) {
127 if (!mask->isNull(i)) {
128 int64_t curValue = arrayBuffer[i];
129 int32_t day = curValue;
130 int64_t micros = (curValue >> (4 * sizeof(int64_t))) * 1000;
131 // arrow stores ms, while we store us
132 outputVector.setValue<interval_t>(i + dstOffset, interval_t(0, day, micros));
133 }
134 });
135}
136
137static void scanArrowArrayMonthDayNanoInterval(const ArrowArray* array, ValueVector& outputVector,
138 ArrowNullMaskTree* mask, uint64_t srcOffset, uint64_t dstOffset, uint64_t count) {

Callers 1

fromArrowArrayMethod · 0.85

Calls 3

rowIterFunction · 0.85
copyToValueVectorMethod · 0.80
isNullMethod · 0.45

Tested by

no test coverage detected