ADBC
Arrow Database Connectivity
Loading...
Searching...
No Matches
utility.h
1// Licensed to the Apache Software Foundation (ASF) under one
2// or more contributor license agreements. See the NOTICE file
3// distributed with this work for additional information
4// regarding copyright ownership. The ASF licenses this file
5// to you under the Apache License, Version 2.0 (the
6// "License"); you may not use this file except in compliance
7// with the License. You may obtain a copy of the License at
8//
9// http://www.apache.org/licenses/LICENSE-2.0
10//
11// Unless required by applicable law or agreed to in writing,
12// software distributed under the License is distributed on an
13// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
14// KIND, either express or implied. See the License for the
15// specific language governing permissions and limitations
16// under the License.
17
18#pragma once
19
20#include <string>
21#include <utility>
22#include <vector>
23
24#include <arrow-adbc/adbc.h>
25
27
28namespace adbc::driver {
29
35void MakeEmptyStream(ArrowSchema* schema, ArrowArrayStream* out);
36
44void MakeArrayStream(ArrowSchema* schema, ArrowArray* array, ArrowArrayStream* out);
45
52Status MakeTableTypesStream(const std::vector<std::string>& table_types,
53 ArrowArrayStream* out);
54
58struct InfoValue {
59 uint32_t code;
60 std::variant<std::string, int64_t> value;
61
62 InfoValue(uint32_t code, std::variant<std::string, int64_t> value)
63 : code(code), value(std::move(value)) {}
64 InfoValue(uint32_t code, const char* value) : InfoValue(code, std::string(value)) {}
65};
66
71Status MakeGetInfoStream(const std::vector<InfoValue>& infos, ArrowArrayStream* out);
72
73} // namespace adbc::driver
A wrapper around AdbcStatusCode + AdbcError.
Definition status.h:43
Status MakeTableTypesStream(const std::vector< std::string > &table_types, ArrowArrayStream *out)
Create an ArrowArrayStream representation of a vector of table types.
void MakeArrayStream(ArrowSchema *schema, ArrowArray *array, ArrowArrayStream *out)
Create an ArrowArrayStream from a given ArrowSchema and ArrowArray.
Status MakeGetInfoStream(const std::vector< InfoValue > &infos, ArrowArrayStream *out)
Create an ArrowArrayStream to be returned from AdbcConnectionGetInfo().
void MakeEmptyStream(ArrowSchema *schema, ArrowArrayStream *out)
Create an ArrowArrayStream with zero batches from a given ArrowSchema.
Representation of a single item in an array to be returned from AdbcConnectionGetInfo().
Definition utility.h:58