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

Method fromArrowArray

src/common/arrow/arrow_array_scan.cpp:408–652  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

406}
407
408void ArrowConverter::fromArrowArray(const ArrowSchema* schema, const ArrowArray* array,
409 ValueVector& outputVector, ArrowNullMaskTree* mask, uint64_t srcOffset, uint64_t dstOffset,
410 uint64_t count) {
411 const auto arrowType = schema->format;
412 if (array->dictionary != nullptr) {
413 switch (arrowType[0]) {
414 case 'c':
415 return scanArrowArrayDictionaryEncoded<int8_t>(schema, array, outputVector, mask,
416 srcOffset, dstOffset, count);
417 case 'C':
418 return scanArrowArrayDictionaryEncoded<uint8_t>(schema, array, outputVector, mask,
419 srcOffset, dstOffset, count);
420 case 's':
421 return scanArrowArrayDictionaryEncoded<int16_t>(schema, array, outputVector, mask,
422 srcOffset, dstOffset, count);
423 case 'S':
424 return scanArrowArrayDictionaryEncoded<uint16_t>(schema, array, outputVector, mask,
425 srcOffset, dstOffset, count);
426 case 'i':
427 return scanArrowArrayDictionaryEncoded<int32_t>(schema, array, outputVector, mask,
428 srcOffset, dstOffset, count);
429 case 'I':
430 return scanArrowArrayDictionaryEncoded<uint32_t>(schema, array, outputVector, mask,
431 srcOffset, dstOffset, count);
432 case 'l':
433 return scanArrowArrayDictionaryEncoded<int64_t>(schema, array, outputVector, mask,
434 srcOffset, dstOffset, count);
435 case 'L':
436 return scanArrowArrayDictionaryEncoded<uint64_t>(schema, array, outputVector, mask,
437 srcOffset, dstOffset, count);
438 default:
439 throw RuntimeException("Invalid Index Type: " + std::string(arrowType));
440 }
441 }
442 switch (arrowType[0]) {
443 case 'n':
444 // NULL
445 outputVector.setAllNull();
446 return;
447 case 'b':
448 // BOOL
449 return scanArrowArrayFixedSizePrimitive<bool>(array, outputVector, mask, srcOffset,
450 dstOffset, count);
451 case 'c':
452 // INT8
453 return scanArrowArrayFixedSizePrimitive<int8_t>(array, outputVector, mask, srcOffset,
454 dstOffset, count);
455 case 'C':
456 // UINT8
457 return scanArrowArrayFixedSizePrimitive<uint8_t>(array, outputVector, mask, srcOffset,
458 dstOffset, count);
459 case 's':
460 // INT16
461 return scanArrowArrayFixedSizePrimitive<int16_t>(array, outputVector, mask, srcOffset,
462 dstOffset, count);
463 case 'S':
464 // UINT16
465 return scanArrowArrayFixedSizePrimitive<uint16_t>(array, outputVector, mask, srcOffset,

Callers

nothing calls this directly

Calls 15

scanArrowArrayBLOBViewFunction · 0.85
scanArrowArrayFixedBLOBFunction · 0.85
RUNTIME_CHECKFunction · 0.85
getNumElementsFunction · 0.85
scanArrowArrayFixedListFunction · 0.85
scanArrowArrayStructFunction · 0.85

Tested by

no test coverage detected