go/adbc/pkg/bigquery/utils.c (359 lines of code) (raw):

// Code generated by _tmpl/utils.c.tmpl. DO NOT EDIT. // Licensed to the Apache Software Foundation (ASF) under one // or more contributor license agreements. See the NOTICE file // distributed with this work for additional information // regarding copyright ownership. The ASF licenses this file // to you under the Apache License, Version 2.0 (the // "License"); you may not use this file except in compliance // with the License. You may obtain a copy of the License at // // http://www.apache.org/licenses/LICENSE-2.0 // // Unless required by applicable law or agreed to in writing, // software distributed under the License is distributed on an // "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY // KIND, either express or implied. See the License for the // specific language governing permissions and limitations // under the License. // clang-format off //go:build driverlib // clang-format on #include "utils.h" #include <string.h> #ifdef __cplusplus extern "C" { #endif void BigQuery_release_error(struct AdbcError* error) { free(error->message); error->message = NULL; error->release = NULL; } void BigQueryReleaseErrWithDetails(struct AdbcError* error) { if (!error || error->release != BigQueryReleaseErrWithDetails || !error->private_data) { return; } struct BigQueryError* details = (struct BigQueryError*) error->private_data; for (int i = 0; i < details->count; i++) { free(details->keys[i]); free(details->values[i]); } free(details->keys); free(details->values); free(details->lengths); free(details); free(error->message); error->message = NULL; error->release = NULL; error->private_data = NULL; } int BigQueryErrorGetDetailCount(const struct AdbcError* error) { if (!error || error->release != BigQueryReleaseErrWithDetails || !error->private_data) { return 0; } return ((struct BigQueryError*) error->private_data)->count; } struct AdbcErrorDetail BigQueryErrorGetDetail(const struct AdbcError* error, int index) { if (!error || error->release != BigQueryReleaseErrWithDetails || !error->private_data) { return (struct AdbcErrorDetail){NULL, NULL, 0}; } struct BigQueryError* details = (struct BigQueryError*) error->private_data; if (index < 0 || index >= details->count) { return (struct AdbcErrorDetail){NULL, NULL, 0}; } return (struct AdbcErrorDetail){ .key = details->keys[index], .value = details->values[index], .value_length = details->lengths[index] }; } int AdbcErrorGetDetailCount(const struct AdbcError* error) { return BigQueryErrorGetDetailCount(error); } struct AdbcErrorDetail AdbcErrorGetDetail(const struct AdbcError* error, int index) { return BigQueryErrorGetDetail(error, index); } const struct AdbcError* AdbcErrorFromArrayStream(struct ArrowArrayStream* stream, AdbcStatusCode* status) { return BigQueryErrorFromArrayStream(stream, status); } AdbcStatusCode AdbcDatabaseGetOption(struct AdbcDatabase* database, const char* key, char* value, size_t* length, struct AdbcError* error) { return BigQueryDatabaseGetOption(database, key, value, length, error); } AdbcStatusCode AdbcDatabaseGetOptionBytes(struct AdbcDatabase* database, const char* key, uint8_t* value, size_t* length, struct AdbcError* error) { return BigQueryDatabaseGetOptionBytes(database, key, value, length, error); } AdbcStatusCode AdbcDatabaseGetOptionDouble(struct AdbcDatabase* database, const char* key, double* value, struct AdbcError* error) { return BigQueryDatabaseGetOptionDouble(database, key, value, error); } AdbcStatusCode AdbcDatabaseGetOptionInt(struct AdbcDatabase* database, const char* key, int64_t* value, struct AdbcError* error) { return BigQueryDatabaseGetOptionInt(database, key, value, error); } AdbcStatusCode AdbcDatabaseInit(struct AdbcDatabase* database, struct AdbcError* error) { return BigQueryDatabaseInit(database, error); } AdbcStatusCode AdbcDatabaseNew(struct AdbcDatabase* database, struct AdbcError* error) { return BigQueryDatabaseNew(database, error); } AdbcStatusCode AdbcDatabaseRelease(struct AdbcDatabase* database, struct AdbcError* error) { return BigQueryDatabaseRelease(database, error); } AdbcStatusCode AdbcDatabaseSetOption(struct AdbcDatabase* database, const char* key, const char* value, struct AdbcError* error) { return BigQueryDatabaseSetOption(database, key, value, error); } AdbcStatusCode AdbcDatabaseSetOptionBytes(struct AdbcDatabase* database, const char* key, const uint8_t* value, size_t length, struct AdbcError* error) { return BigQueryDatabaseSetOptionBytes(database, key, value, length, error); } AdbcStatusCode AdbcDatabaseSetOptionDouble(struct AdbcDatabase* database, const char* key, double value, struct AdbcError* error) { return BigQueryDatabaseSetOptionDouble(database, key, value, error); } AdbcStatusCode AdbcDatabaseSetOptionInt(struct AdbcDatabase* database, const char* key, int64_t value, struct AdbcError* error) { return BigQueryDatabaseSetOptionInt(database, key, value, error); } AdbcStatusCode AdbcConnectionCancel(struct AdbcConnection* connection, struct AdbcError* error) { return BigQueryConnectionCancel(connection, error); } AdbcStatusCode AdbcConnectionCommit(struct AdbcConnection* connection, struct AdbcError* error) { return BigQueryConnectionCommit(connection, error); } AdbcStatusCode AdbcConnectionGetInfo(struct AdbcConnection* connection, const uint32_t* info_codes, size_t info_codes_length, struct ArrowArrayStream* out, struct AdbcError* error) { if (out) memset(out, 0, sizeof(*out)); return BigQueryConnectionGetInfo(connection, info_codes, info_codes_length, out, error); } AdbcStatusCode AdbcConnectionGetObjects(struct AdbcConnection* connection, int depth, const char* catalog, const char* db_schema, const char* table_name, const char** table_type, const char* column_name, struct ArrowArrayStream* out, struct AdbcError* error) { if (out) memset(out, 0, sizeof(*out)); return BigQueryConnectionGetObjects(connection, depth, catalog, db_schema, table_name, table_type, column_name, out, error); } AdbcStatusCode AdbcConnectionGetOption(struct AdbcConnection* connection, const char* key, char* value, size_t* length, struct AdbcError* error) { return BigQueryConnectionGetOption(connection, key, value, length, error); } AdbcStatusCode AdbcConnectionGetOptionBytes(struct AdbcConnection* connection, const char* key, uint8_t* value, size_t* length, struct AdbcError* error) { return BigQueryConnectionGetOptionBytes(connection, key, value, length, error); } AdbcStatusCode AdbcConnectionGetOptionDouble(struct AdbcConnection* connection, const char* key, double* value, struct AdbcError* error) { return BigQueryConnectionGetOptionDouble(connection, key, value, error); } AdbcStatusCode AdbcConnectionGetOptionInt(struct AdbcConnection* connection, const char* key, int64_t* value, struct AdbcError* error) { return BigQueryConnectionGetOptionInt(connection, key, value, error); } AdbcStatusCode AdbcConnectionGetStatistics(struct AdbcConnection* connection, const char* catalog, const char* db_schema, const char* table_name, char approximate, struct ArrowArrayStream* out, struct AdbcError* error) { return BigQueryConnectionGetStatistics(connection, catalog, db_schema, table_name, approximate, out, error); } AdbcStatusCode AdbcConnectionGetStatisticNames(struct AdbcConnection* connection, struct ArrowArrayStream* out, struct AdbcError* error) { return BigQueryConnectionGetStatisticNames(connection, out, error); } AdbcStatusCode AdbcConnectionGetTableSchema(struct AdbcConnection* connection, const char* catalog, const char* db_schema, const char* table_name, struct ArrowSchema* schema, struct AdbcError* error) { if (schema) memset(schema, 0, sizeof(*schema)); return BigQueryConnectionGetTableSchema(connection, catalog, db_schema, table_name, schema, error); } AdbcStatusCode AdbcConnectionGetTableTypes(struct AdbcConnection* connection, struct ArrowArrayStream* out, struct AdbcError* error) { if (out) memset(out, 0, sizeof(*out)); return BigQueryConnectionGetTableTypes(connection, out, error); } AdbcStatusCode AdbcConnectionInit(struct AdbcConnection* connection, struct AdbcDatabase* database, struct AdbcError* error) { return BigQueryConnectionInit(connection, database, error); } AdbcStatusCode AdbcConnectionNew(struct AdbcConnection* connection, struct AdbcError* error) { return BigQueryConnectionNew(connection, error); } AdbcStatusCode AdbcConnectionReadPartition(struct AdbcConnection* connection, const uint8_t* serialized_partition, size_t serialized_length, struct ArrowArrayStream* out, struct AdbcError* error) { if (out) memset(out, 0, sizeof(*out)); return BigQueryConnectionReadPartition(connection, serialized_partition, serialized_length, out, error); } AdbcStatusCode AdbcConnectionRelease(struct AdbcConnection* connection, struct AdbcError* error) { return BigQueryConnectionRelease(connection, error); } AdbcStatusCode AdbcConnectionRollback(struct AdbcConnection* connection, struct AdbcError* error) { return BigQueryConnectionRollback(connection, error); } AdbcStatusCode AdbcConnectionSetOption(struct AdbcConnection* connection, const char* key, const char* value, struct AdbcError* error) { return BigQueryConnectionSetOption(connection, key, value, error); } AdbcStatusCode AdbcConnectionSetOptionBytes(struct AdbcConnection* connection, const char* key, const uint8_t* value, size_t length, struct AdbcError* error) { return BigQueryConnectionSetOptionBytes(connection, key, value, length, error); } AdbcStatusCode AdbcConnectionSetOptionDouble(struct AdbcConnection* connection, const char* key, double value, struct AdbcError* error) { return BigQueryConnectionSetOptionDouble(connection, key, value, error); } AdbcStatusCode AdbcConnectionSetOptionInt(struct AdbcConnection* connection, const char* key, int64_t value, struct AdbcError* error) { return BigQueryConnectionSetOptionInt(connection, key, value, error); } AdbcStatusCode AdbcStatementCancel(struct AdbcStatement* statement, struct AdbcError* error) { return BigQueryStatementCancel(statement, error); } AdbcStatusCode AdbcStatementBind(struct AdbcStatement* statement, struct ArrowArray* values, struct ArrowSchema* schema, struct AdbcError* error) { return BigQueryStatementBind(statement, values, schema, error); } AdbcStatusCode AdbcStatementBindStream(struct AdbcStatement* statement, struct ArrowArrayStream* stream, struct AdbcError* error) { return BigQueryStatementBindStream(statement, stream, error); } AdbcStatusCode AdbcStatementExecutePartitions(struct AdbcStatement* statement, struct ArrowSchema* schema, struct AdbcPartitions* partitions, int64_t* rows_affected, struct AdbcError* error) { return BigQueryStatementExecutePartitionsTrampoline( statement, schema, partitions, rows_affected, error); } AdbcStatusCode BigQueryStatementExecutePartitionsTrampoline( struct AdbcStatement* statement, struct ArrowSchema* schema, struct AdbcPartitions* partitions, int64_t* rows_affected, struct AdbcError* error) { if (schema) memset(schema, 0, sizeof(*schema)); if (partitions) memset(partitions, 0, sizeof(*partitions)); return BigQueryStatementExecutePartitions(statement, schema, partitions, rows_affected, error); } AdbcStatusCode AdbcStatementExecuteQuery(struct AdbcStatement* statement, struct ArrowArrayStream* out, int64_t* rows_affected, struct AdbcError* error) { if (out) memset(out, 0, sizeof(*out)); return BigQueryStatementExecuteQuery(statement, out, rows_affected, error); } AdbcStatusCode AdbcStatementExecuteSchema(struct AdbcStatement* statement, struct ArrowSchema* schema, struct AdbcError* error) { if (schema) memset(schema, 0, sizeof(*schema)); return BigQueryStatementExecuteSchema(statement, schema, error); } AdbcStatusCode AdbcStatementGetOption(struct AdbcStatement* statement, const char* key, char* value, size_t* length, struct AdbcError* error) { return BigQueryStatementGetOption(statement, key, value, length, error); } AdbcStatusCode AdbcStatementGetOptionBytes(struct AdbcStatement* statement, const char* key, uint8_t* value, size_t* length, struct AdbcError* error) { return BigQueryStatementGetOptionBytes(statement, key, value, length, error); } AdbcStatusCode AdbcStatementGetOptionDouble(struct AdbcStatement* statement, const char* key, double* value, struct AdbcError* error) { return BigQueryStatementGetOptionDouble(statement, key, value, error); } AdbcStatusCode AdbcStatementGetOptionInt(struct AdbcStatement* statement, const char* key, int64_t* value, struct AdbcError* error) { return BigQueryStatementGetOptionInt(statement, key, value, error); } AdbcStatusCode AdbcStatementGetParameterSchema(struct AdbcStatement* statement, struct ArrowSchema* schema, struct AdbcError* error) { if (schema) memset(schema, 0, sizeof(*schema)); return BigQueryStatementGetParameterSchema(statement, schema, error); } AdbcStatusCode AdbcStatementNew(struct AdbcConnection* connection, struct AdbcStatement* statement, struct AdbcError* error) { return BigQueryStatementNew(connection, statement, error); } AdbcStatusCode AdbcStatementPrepare(struct AdbcStatement* statement, struct AdbcError* error) { return BigQueryStatementPrepare(statement, error); } AdbcStatusCode AdbcStatementRelease(struct AdbcStatement* statement, struct AdbcError* error) { return BigQueryStatementRelease(statement, error); } AdbcStatusCode AdbcStatementSetSqlQuery(struct AdbcStatement* statement, const char* query, struct AdbcError* error) { return BigQueryStatementSetSqlQuery(statement, query, error); } AdbcStatusCode AdbcStatementSetSubstraitPlan(struct AdbcStatement* statement, const uint8_t* plan, size_t length, struct AdbcError* error) { return BigQueryStatementSetSubstraitPlan(statement, plan, length, error); } AdbcStatusCode AdbcStatementSetOption(struct AdbcStatement* statement, const char* key, const char* value, struct AdbcError* error) { return BigQueryStatementSetOption(statement, key, value, error); } AdbcStatusCode AdbcStatementSetOptionBytes(struct AdbcStatement* statement, const char* key, const uint8_t* value, size_t length, struct AdbcError* error) { return BigQueryStatementSetOptionBytes(statement, key, value, length, error); } AdbcStatusCode AdbcStatementSetOptionDouble(struct AdbcStatement* statement, const char* key, double value, struct AdbcError* error) { return BigQueryStatementSetOptionDouble(statement, key, value, error); } AdbcStatusCode AdbcStatementSetOptionInt(struct AdbcStatement* statement, const char* key, int64_t value, struct AdbcError* error) { return BigQueryStatementSetOptionInt(statement, key, value, error); } ADBC_EXPORT AdbcStatusCode AdbcDriverInit(int version, void* driver, struct AdbcError* error) { return BigQueryDriverInit(version, driver, error); } int BigQueryArrayStreamGetSchema(struct ArrowArrayStream*, struct ArrowSchema*); int BigQueryArrayStreamGetNext(struct ArrowArrayStream*, struct ArrowArray*); int BigQueryArrayStreamGetSchemaTrampoline(struct ArrowArrayStream* stream, struct ArrowSchema* out) { // XXX(https://github.com/apache/arrow-adbc/issues/729) memset(out, 0, sizeof(*out)); return BigQueryArrayStreamGetSchema(stream, out); } int BigQueryArrayStreamGetNextTrampoline(struct ArrowArrayStream* stream, struct ArrowArray* out) { // XXX(https://github.com/apache/arrow-adbc/issues/729) memset(out, 0, sizeof(*out)); return BigQueryArrayStreamGetNext(stream, out); } #ifdef __cplusplus } #endif