| 991 | } |
| 992 | |
| 993 | ArrowArray ArrowRowBatch::toArray(const std::vector<LogicalType>& types) { |
| 994 | auto rootHolder = std::make_unique<ArrowVector>(); |
| 995 | ArrowArray result{}; |
| 996 | rootHolder->childPointers.resize(vectors.size()); |
| 997 | result.children = rootHolder->childPointers.data(); |
| 998 | result.n_children = (std::int64_t)vectors.size(); |
| 999 | result.length = numTuples; |
| 1000 | result.n_buffers = 1; |
| 1001 | result.buffers = rootHolder->buffers.data(); // no actual buffer |
| 1002 | result.offset = 0; |
| 1003 | result.null_count = 0; |
| 1004 | result.dictionary = nullptr; |
| 1005 | rootHolder->childData = std::move(vectors); |
| 1006 | for (auto i = 0u; i < rootHolder->childData.size(); i++) { |
| 1007 | rootHolder->childPointers[i] = |
| 1008 | convertVectorToArray(*rootHolder->childData[i], types[i], fallbackExtensionTypes); |
| 1009 | } |
| 1010 | result.private_data = rootHolder.release(); |
| 1011 | result.release = releaseArrowVector; |
| 1012 | return result; |
| 1013 | } |
| 1014 | |
| 1015 | void ArrowRowBatch::append(const processor::FlatTuple& tuple) { |
| 1016 | for (auto i = 0u; i < vectors.size(); i++) { |
no test coverage detected