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

Function getArrowMainBufferSize

src/common/arrow/arrow_row_batch.cpp:29–83  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

27}
28
29static uint64_t getArrowMainBufferSize(const LogicalType& type, uint64_t capacity,
30 bool fallbackExtensionTypes) {
31 switch (type.getLogicalTypeID()) {
32 case LogicalTypeID::BOOL:
33 return getNumBytesForBits(capacity);
34 case LogicalTypeID::SERIAL:
35 case LogicalTypeID::TIMESTAMP:
36 case LogicalTypeID::TIMESTAMP_SEC:
37 case LogicalTypeID::TIMESTAMP_MS:
38 case LogicalTypeID::TIMESTAMP_NS:
39 case LogicalTypeID::TIMESTAMP_TZ:
40 case LogicalTypeID::INTERVAL:
41 case LogicalTypeID::UINT64:
42 case LogicalTypeID::INT64:
43 return sizeof(int64_t) * capacity;
44 case LogicalTypeID::DATE:
45 case LogicalTypeID::UINT32:
46 case LogicalTypeID::INT32:
47 return sizeof(int32_t) * capacity;
48 case LogicalTypeID::UINT16:
49 case LogicalTypeID::INT16:
50 return sizeof(int16_t) * capacity;
51 case LogicalTypeID::UNION:
52 case LogicalTypeID::UINT8:
53 case LogicalTypeID::INT8:
54 return sizeof(int8_t) * capacity;
55 case LogicalTypeID::DECIMAL:
56 case LogicalTypeID::INT128:
57 return sizeof(int128_t) * capacity;
58 case LogicalTypeID::DOUBLE:
59 return sizeof(double) * capacity;
60 case LogicalTypeID::FLOAT:
61 return sizeof(float) * capacity;
62 case LogicalTypeID::UUID: {
63 if (!fallbackExtensionTypes) {
64 return sizeof(char) * 16 * capacity;
65 }
66 [[fallthrough]];
67 }
68 case LogicalTypeID::STRING:
69 case LogicalTypeID::BLOB:
70 case LogicalTypeID::LIST:
71 case LogicalTypeID::MAP:
72 return sizeof(int32_t) * (capacity + 1);
73 case LogicalTypeID::ARRAY:
74 case LogicalTypeID::STRUCT:
75 case LogicalTypeID::INTERNAL_ID:
76 case LogicalTypeID::RECURSIVE_REL:
77 case LogicalTypeID::NODE:
78 case LogicalTypeID::REL:
79 return 0; // no main buffer
80 default:
81 UNREACHABLE_CODE; // should enumerate all types.
82 }
83}
84
85static void resizeValidityBuffer(ArrowVector* vector, int64_t capacity) {
86 vector->validity.resize(getNumBytesForBits(capacity), 0xFF);

Callers 1

resizeMainBufferFunction · 0.85

Calls 2

getNumBytesForBitsFunction · 0.85
getLogicalTypeIDMethod · 0.80

Tested by

no test coverage detected