| 40 | } |
| 41 | |
| 42 | static ArrowQueryResult::CSRArrowArray makeCSRArrowArray( |
| 43 | std::shared_ptr<const std::vector<int64_t>> values) { |
| 44 | ArrowQueryResult::CSRArrowArray result; |
| 45 | |
| 46 | auto holder = std::make_unique<CSRArrowArrayHolder>(); |
| 47 | holder->values = std::move(values); |
| 48 | holder->buffers[0] = nullptr; |
| 49 | holder->buffers[1] = holder->values->data(); |
| 50 | |
| 51 | result.array.length = static_cast<int64_t>(holder->values->size()); |
| 52 | result.array.null_count = 0; |
| 53 | result.array.offset = 0; |
| 54 | result.array.n_buffers = 2; |
| 55 | result.array.n_children = 0; |
| 56 | result.array.buffers = holder->buffers.data(); |
| 57 | result.array.children = nullptr; |
| 58 | result.array.dictionary = nullptr; |
| 59 | result.array.private_data = holder.release(); |
| 60 | result.array.release = releaseCSRArrowArray; |
| 61 | |
| 62 | result.schema.format = "l"; |
| 63 | result.schema.name = nullptr; |
| 64 | result.schema.metadata = nullptr; |
| 65 | result.schema.flags = 0; |
| 66 | result.schema.n_children = 0; |
| 67 | result.schema.children = nullptr; |
| 68 | result.schema.dictionary = nullptr; |
| 69 | result.schema.private_data = nullptr; |
| 70 | result.schema.release = releaseCSRArrowSchema; |
| 71 | |
| 72 | return result; |
| 73 | } |
| 74 | |
| 75 | // Build a dense global indptr of size numSourceRows+1 from sparse |
| 76 | // (srcRows, counts) runs. indptr[src+1] is set to counts[i] for the |
no test coverage detected