ADBC
Arrow 数据库连接性
正在加载...
正在搜索...
未找到匹配项
adbc.h 文件参考
#include <stddef.h>
#include <stdint.h>

转到此文件的源代码。

struct  AdbcError
 操作的详细错误消息。 更多...
 
struct  AdbcErrorDetail
 错误的额外键值元数据。 更多...
 
struct  AdbcDatabase
 数据库的实例。 更多...
 
struct  AdbcConnection
 活动的数据库连接。 更多...
 
struct  AdbcStatement
 执行数据库查询所需的所有状态的容器,例如查询本身、预备语句的参数、驱动程序参数等。 更多...
 
struct  AdbcPartitions
 分布式/分区结果集的分区。 更多...
 
struct  AdbcDriver
 已初始化的数据库驱动程序的实例。 更多...
 

#define ADBC_STATUS_OK   0
 没有错误。
 
#define ADBC_STATUS_UNKNOWN   1
 发生未知错误。
 
#define ADBC_STATUS_NOT_IMPLEMENTED   2
 该操作未实现或不受支持。
 
#define ADBC_STATUS_NOT_FOUND   3
 未找到请求的资源。
 
#define ADBC_STATUS_ALREADY_EXISTS   4
 请求的资源已存在。
 
#define ADBC_STATUS_INVALID_ARGUMENT   5
 参数无效,可能是编程错误。
 
#define ADBC_STATUS_INVALID_STATE   6
 不满足操作的先决条件,可能是编程错误。
 
#define ADBC_STATUS_INVALID_DATA   7
 处理了无效数据(不是编程错误)。
 
#define ADBC_STATUS_INTEGRITY   8
 数据库的完整性受到影响。
 
#define ADBC_STATUS_INTERNAL   9
 驱动程序或数据库内部发生错误。
 
#define ADBC_STATUS_IO   10
 发生 I/O 错误。
 
#define ADBC_STATUS_CANCELLED   11
 该操作已取消,不是由于超时。
 
#define ADBC_STATUS_TIMEOUT   12
 该操作由于超时而被取消。
 
#define ADBC_STATUS_UNAUTHENTICATED   13
 身份验证失败。
 
#define ADBC_STATUS_UNAUTHORIZED   14
 客户端无权执行给定的操作。
 
#define ADBC_ERROR_VENDOR_CODE_PRIVATE_DATA   INT32_MIN
 通知驱动程序/驱动程序管理器,我们正在使用来自 ADBC 1.1.0 的扩展 AdbcError 结构。
 
#define ADBC_ERROR_INIT
 一个用于初始化完整的 AdbcError 结构的助手。
 
#define ADBC_ERROR_1_0_0_SIZE   (offsetof(struct AdbcError, private_data))
 ADBC 1.0.0 中 AdbcError 结构的大小。
 
#define ADBC_ERROR_1_1_0_SIZE   (sizeof(struct AdbcError))
 ADBC 1.1.0 中 AdbcError 结构的大小。
 
#define ADBC_VERSION_1_0_0   1000000
 ADBC 修订版 1.0.0。
 
#define ADBC_VERSION_1_1_0   1001000
 ADBC 修订版 1.1.0。
 
#define ADBC_OPTION_VALUE_ENABLED   "true"
 用于启用选项的规范选项值。
 
#define ADBC_OPTION_VALUE_DISABLED   "false"
 用于禁用选项的规范选项值。
 
#define ADBC_OPTION_URI   "uri"
 URI 的规范选项名称。
 
#define ADBC_OPTION_USERNAME   "username"
 用户名的规范选项名称。
 
#define ADBC_OPTION_PASSWORD   "password"
 密码的规范选项名称。
 
#define ADBC_INFO_VENDOR_NAME   0
 数据库供应商/产品名称(例如服务器名称)。 (类型:utf8)。
 
#define ADBC_INFO_VENDOR_VERSION   1
 数据库供应商/产品版本(类型:utf8)。
 
#define ADBC_INFO_VENDOR_ARROW_VERSION   2
 数据库供应商/产品 Arrow 库版本(类型:utf8)。
 
#define ADBC_INFO_VENDOR_SQL   3
 指示是否支持 SQL 查询(类型:bool)。
 
#define ADBC_INFO_VENDOR_SUBSTRAIT   4
 指示是否支持 Substrait 查询(类型:bool)。
 
#define ADBC_INFO_VENDOR_SUBSTRAIT_MIN_VERSION   5
 支持的最低 Substrait 版本,如果不支持 Substrait,则为 null(类型:utf8)。
 
#define ADBC_INFO_VENDOR_SUBSTRAIT_MAX_VERSION   6
 支持的最高 Substrait 版本,如果不支持 Substrait,则为 null(类型:utf8)。
 
#define ADBC_INFO_DRIVER_NAME   100
 驱动程序名称(类型:utf8)。
 
#define ADBC_INFO_DRIVER_VERSION   101
 驱动程序版本(类型:utf8)。
 
#define ADBC_INFO_DRIVER_ARROW_VERSION   102
 驱动程序 Arrow 库版本(类型:utf8)。
 
#define ADBC_INFO_DRIVER_ADBC_VERSION   103
 驱动程序 ADBC API 版本(类型:int64)。
 
#define ADBC_OBJECT_DEPTH_ALL   0
 返回有关目录、模式、表和列的元数据。
 
#define ADBC_OBJECT_DEPTH_CATALOGS   1
 仅返回有关目录的元数据。
 
#define ADBC_OBJECT_DEPTH_DB_SCHEMAS   2
 返回有关目录和模式的元数据。
 
#define ADBC_OBJECT_DEPTH_TABLES   3
 返回有关目录、模式和表的元数据。
 
#define ADBC_OBJECT_DEPTH_COLUMNS   ADBC_OBJECT_DEPTH_ALL
 返回有关目录、模式、表和列的元数据。
 
#define ADBC_STATISTIC_AVERAGE_BYTE_WIDTH_KEY   0
 平均字节宽度统计信息的字典编码名称。
 
#define ADBC_STATISTIC_AVERAGE_BYTE_WIDTH_NAME   "adbc.statistic.byte_width"
 平均字节宽度统计信息。 列中一行的平均大小(以字节为单位)。 值类型为 float64。
 
#define ADBC_STATISTIC_DISTINCT_COUNT_KEY   1
 唯一值计数统计信息的字典编码名称。
 
#define ADBC_STATISTIC_DISTINCT_COUNT_NAME   "adbc.statistic.distinct_count"
 唯一值计数 (NDV) 统计信息。 列中唯一值的数量。 值类型为 int64(非近似时)或 float64(近似时)。
 
#define ADBC_STATISTIC_MAX_BYTE_WIDTH_KEY   2
 最大字节宽度统计信息的字典编码名称。
 
#define ADBC_STATISTIC_MAX_BYTE_WIDTH_NAME   "adbc.statistic.max_byte_width"
 最大字节宽度统计信息。 列中一行的最大大小(以字节为单位)。 值类型为 int64(非近似时)或 float64(近似时)。
 
#define ADBC_STATISTIC_MAX_VALUE_KEY   3
 最大值统计信息的字典编码名称。
 
#define ADBC_STATISTIC_MAX_VALUE_NAME   "adbc.statistic.max_value"
 最大值统计信息。 值类型取决于列。
 
#define ADBC_STATISTIC_MIN_VALUE_KEY   4
 最小值统计信息的字典编码名称。
 
#define ADBC_STATISTIC_MIN_VALUE_NAME   "adbc.statistic.min_value"
 最小值统计信息。 值类型取决于列。
 
#define ADBC_STATISTIC_NULL_COUNT_KEY   5
 Null 值计数统计信息的字典编码名称。
 
#define ADBC_STATISTIC_NULL_COUNT_NAME   "adbc.statistic.null_count"
 Null 值计数统计信息。 列中为 null 的值的数量。 值类型为 int64(非近似时)或 float64(近似时)。
 
#define ADBC_STATISTIC_ROW_COUNT_KEY   6
 行计数统计信息的字典编码名称。
 
#define ADBC_STATISTIC_ROW_COUNT_NAME   "adbc.statistic.row_count"
 行计数统计信息。 列或表中的行数。 值类型为 int64(非近似时)或 float64(近似时)。
 
#define ADBC_CONNECTION_OPTION_AUTOCOMMIT   "adbc.connection.autocommit"
 用于指示是否启用自动提交的规范选项的名称。
 
#define ADBC_CONNECTION_OPTION_READ_ONLY   "adbc.connection.readonly"
 用于指示当前连接是否应限制为只读的规范选项的名称。
 
#define ADBC_CONNECTION_OPTION_CURRENT_CATALOG   "adbc.connection.catalog"
 当前目录的规范选项的名称。
 
#define ADBC_CONNECTION_OPTION_CURRENT_DB_SCHEMA   "adbc.connection.db_schema"
 当前模式的规范选项的名称。
 
#define ADBC_STATEMENT_OPTION_INCREMENTAL   "adbc.statement.exec.incremental"
 用于使查询执行成为非阻塞的规范选项的名称。
 
#define ADBC_STATEMENT_OPTION_PROGRESS   "adbc.statement.exec.progress"
 用于获取查询进度的选项的名称。
 
#define ADBC_STATEMENT_OPTION_MAX_PROGRESS   "adbc.statement.exec.max_progress"
 用于获取查询最大进度的选项的名称。
 
#define ADBC_CONNECTION_OPTION_ISOLATION_LEVEL    "adbc.connection.transaction.isolation_level"
 用于设置事务隔离级别的规范选项的名称。
 
#define ADBC_OPTION_ISOLATION_LEVEL_DEFAULT    "adbc.connection.transaction.isolation.default"
 使用数据库或驱动程序默认隔离级别。
 
#define ADBC_OPTION_ISOLATION_LEVEL_READ_UNCOMMITTED    "adbc.connection.transaction.isolation.read_uncommitted"
 最低隔离级别。允许脏读,因此一个事务可能会看到其他人所做的尚未提交的更改。
 
#define ADBC_OPTION_ISOLATION_LEVEL_READ_COMMITTED    "adbc.connection.transaction.isolation.read_committed"
 基于锁的并发控制将写锁保持到事务结束,但读锁在执行 SELECT 后立即释放。在此隔离级别中,可能会发生不可重复读。
 
#define ADBC_OPTION_ISOLATION_LEVEL_REPEATABLE_READ    "adbc.connection.transaction.isolation.repeatable_read"
 基于锁的并发控制将读和写锁(在选择数据时获取)保持到事务结束。
 
#define ADBC_OPTION_ISOLATION_LEVEL_SNAPSHOT    "adbc.connection.transaction.isolation.snapshot"
 此隔离级别保证事务中的所有读取都将看到数据库的一致快照,并且只有在自该快照以来所做的任何并发更新没有冲突时,事务才能成功提交。
 
#define ADBC_OPTION_ISOLATION_LEVEL_SERIALIZABLE    "adbc.connection.transaction.isolation.serializable"
 可串行化要求读写锁仅在事务结束时释放。 这包括当 select 查询使用范围 WHERE 子句以避免幻读时,获取范围锁。
 
#define ADBC_OPTION_ISOLATION_LEVEL_LINEARIZABLE    "adbc.connection.transaction.isolation.linearizable"
 可串行化和线性化之间的主要区别在于,可串行化是一种全局属性; 整个操作和事务历史记录的属性。 线性化是一种局部属性; 单个操作/事务的属性。
 
#define ADBC_INGEST_OPTION_TARGET_TABLE   "adbc.ingest.target_table"
 批量插入的目标表的名称。
 
#define ADBC_INGEST_OPTION_MODE   "adbc.ingest.mode"
 是创建(默认)还是追加。
 
#define ADBC_INGEST_OPTION_MODE_CREATE   "adbc.ingest.mode.create"
 创建表并插入数据; 如果表存在,则出错。
 
#define ADBC_INGEST_OPTION_MODE_APPEND   "adbc.ingest.mode.append"
 不创建表,而插入数据; 如果表不存在 (ADBC_STATUS_NOT_FOUND) 或与要追加的数据的架构不匹配 (ADBC_STATUS_ALREADY_EXISTS),则出错。
 
#define ADBC_INGEST_OPTION_MODE_REPLACE   "adbc.ingest.mode.replace"
 创建表并插入数据; 如果原始表已存在,则删除它。
 
#define ADBC_INGEST_OPTION_MODE_CREATE_APPEND   "adbc.ingest.mode.create_append"
 插入数据; 如果表不存在,则创建表;如果表存在,但架构与要追加的数据的架构不匹配 (ADBC_STATUS_ALREADY_EXISTS),则出错。
 
#define ADBC_INGEST_OPTION_TARGET_CATALOG   "adbc.ingest.target_catalog"
 用于批量插入的表的目录。
 
#define ADBC_INGEST_OPTION_TARGET_DB_SCHEMA   "adbc.ingest.target_db_schema"
 用于批量插入的表的模式。
 
#define ADBC_INGEST_OPTION_TEMPORARY   "adbc.ingest.temporary"
 使用临时表进行数据摄取。
 
#define ADBC_DRIVER_1_0_0_SIZE   (offsetof(struct AdbcDriver, ErrorGetDetailCount))
 AdbcDriver 结构在 ADBC 1.0.0 中的大小。 为 ADBC 1.1.0 及更高版本编写的驱动程序在给定 ADBC_VERSION_1_0_0 时,不应触及 AdbcDriver 结构的此部分以外的任何部分。
 
#define ADBC_DRIVER_1_1_0_SIZE   (sizeof(struct AdbcDriver))
 AdbcDriver 结构在 ADBC 1.1.0 中的大小。 为 ADBC 1.1.0 及更高版本编写的驱动程序在给定 ADBC_VERSION_1_1_0 时,不应触及 AdbcDriver 结构的此部分以外的任何部分。
 

类型定义

typedef uint8_t AdbcStatusCode
 可能失败的操作的错误代码。
 
typedef AdbcStatusCode(* AdbcDriverInitFunc) (int version, void *driver, struct AdbcError *error)
 驱动程序通过驱动程序管理器(使用 dlopen(3)/LoadLibrary)的公共入口点。 驱动程序管理器被告知加载库并调用此类型的函数来加载驱动程序。
 

函数

int AdbcErrorGetDetailCount (const struct AdbcError *error)
 获取错误中可用的元数据值的数量。
 
struct AdbcErrorDetail AdbcErrorGetDetail (const struct AdbcError *error, int index)
 按索引获取错误中的元数据值。
 
const struct AdbcErrorAdbcErrorFromArrayStream (struct ArrowArrayStream *stream, AdbcStatusCode *status)
 从驱动程序创建的 ArrowArrayStream 中获取 ADBC 错误。
 
AdbcStatusCode AdbcDatabaseNew (struct AdbcDatabase *database, struct AdbcError *error)
 分配新的(但未初始化的)数据库。
 
AdbcStatusCode AdbcDatabaseGetOption (struct AdbcDatabase *database, const char *key, char *value, size_t *length, struct AdbcError *error)
 获取数据库的字符串选项。
 
AdbcStatusCode AdbcDatabaseGetOptionBytes (struct AdbcDatabase *database, const char *key, uint8_t *value, size_t *length, struct AdbcError *error)
 获取数据库的字节串选项。
 
AdbcStatusCode AdbcDatabaseGetOptionDouble (struct AdbcDatabase *database, const char *key, double *value, struct AdbcError *error)
 获取数据库的双精度浮点数选项。
 
AdbcStatusCode AdbcDatabaseGetOptionInt (struct AdbcDatabase *database, const char *key, int64_t *value, struct AdbcError *error)
 获取数据库的整数选项。
 
AdbcStatusCode AdbcDatabaseSetOption (struct AdbcDatabase *database, const char *key, const char *value, struct AdbcError *error)
 设置 char* 选项。
 
AdbcStatusCode AdbcDatabaseSetOptionBytes (struct AdbcDatabase *database, const char *key, const uint8_t *value, size_t length, struct AdbcError *error)
 在数据库上设置字节串选项。
 
AdbcStatusCode AdbcDatabaseSetOptionDouble (struct AdbcDatabase *database, const char *key, double value, struct AdbcError *error)
 在数据库上设置双精度浮点数选项。
 
AdbcStatusCode AdbcDatabaseSetOptionInt (struct AdbcDatabase *database, const char *key, int64_t value, struct AdbcError *error)
 在数据库上设置整数选项。
 
AdbcStatusCode AdbcDatabaseInit (struct AdbcDatabase *database, struct AdbcError *error)
 完成设置选项并初始化数据库。
 
AdbcStatusCode AdbcDatabaseRelease (struct AdbcDatabase *database, struct AdbcError *error)
 销毁此数据库。 不得存在任何连接。
 
AdbcStatusCode AdbcConnectionNew (struct AdbcConnection *connection, struct AdbcError *error)
 分配新的(但未初始化的)连接。
 
AdbcStatusCode AdbcConnectionSetOption (struct AdbcConnection *connection, const char *key, const char *value, struct AdbcError *error)
 设置 char* 选项。
 
AdbcStatusCode AdbcConnectionSetOptionBytes (struct AdbcConnection *connection, const char *key, const uint8_t *value, size_t length, struct AdbcError *error)
 在连接上设置字节串选项。
 
AdbcStatusCode AdbcConnectionSetOptionInt (struct AdbcConnection *connection, const char *key, int64_t value, struct AdbcError *error)
 设置整数选项。
 
AdbcStatusCode AdbcConnectionSetOptionDouble (struct AdbcConnection *connection, const char *key, double value, struct AdbcError *error)
 设置双精度浮点数选项。
 
AdbcStatusCode AdbcConnectionInit (struct AdbcConnection *connection, struct AdbcDatabase *database, struct AdbcError *error)
 完成设置选项并初始化连接。
 
AdbcStatusCode AdbcConnectionRelease (struct AdbcConnection *connection, struct AdbcError *error)
 销毁此连接。
 
AdbcStatusCode AdbcConnectionCancel (struct AdbcConnection *connection, struct AdbcError *error)
 取消连接上正在进行的操作。
 
AdbcStatusCode AdbcConnectionGetInfo (struct AdbcConnection *connection, const uint32_t *info_codes, size_t info_codes_length, struct ArrowArrayStream *out, struct AdbcError *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)
 获取所有目录、数据库模式、表和分层视图。
 
AdbcStatusCode AdbcConnectionGetOption (struct AdbcConnection *connection, const char *key, char *value, size_t *length, struct AdbcError *error)
 获取连接的字符串选项。
 
AdbcStatusCode AdbcConnectionGetOptionBytes (struct AdbcConnection *connection, const char *key, uint8_t *value, size_t *length, struct AdbcError *error)
 获取连接的字节串选项。
 
AdbcStatusCode AdbcConnectionGetOptionInt (struct AdbcConnection *connection, const char *key, int64_t *value, struct AdbcError *error)
 获取连接的整数选项。
 
AdbcStatusCode AdbcConnectionGetOptionDouble (struct AdbcConnection *connection, const char *key, double *value, struct AdbcError *error)
 获取连接的double类型选项。
 
AdbcStatusCode AdbcConnectionGetStatistics (struct AdbcConnection *connection, const char *catalog, const char *db_schema, const char *table_name, char approximate, struct ArrowArrayStream *out, struct AdbcError *error)
 获取关于表的数据分布的统计信息。
 
AdbcStatusCode AdbcConnectionGetStatisticNames (struct AdbcConnection *connection, struct ArrowArrayStream *out, struct AdbcError *error)
 获取特定于此驱动程序的统计信息的名称。
 
AdbcStatusCode AdbcConnectionGetTableSchema (struct AdbcConnection *connection, const char *catalog, const char *db_schema, const char *table_name, struct ArrowSchema *schema, struct AdbcError *error)
 获取表的Arrow schema。
 
AdbcStatusCode AdbcConnectionGetTableTypes (struct AdbcConnection *connection, struct ArrowArrayStream *out, struct AdbcError *error)
 获取数据库中表类型的列表。
 
AdbcStatusCode AdbcConnectionReadPartition (struct AdbcConnection *connection, const uint8_t *serialized_partition, size_t serialized_length, struct ArrowArrayStream *out, struct AdbcError *error)
 构造查询分区的语句。 然后可以独立读取结果。
 
AdbcStatusCode AdbcConnectionCommit (struct AdbcConnection *connection, struct AdbcError *error)
 提交任何挂起的事务。 仅在禁用自动提交时使用。
 
AdbcStatusCode AdbcConnectionRollback (struct AdbcConnection *connection, struct AdbcError *error)
 回滚任何挂起的事务。 仅在禁用自动提交时使用。
 
AdbcStatusCode AdbcStatementNew (struct AdbcConnection *connection, struct AdbcStatement *statement, struct AdbcError *error)
 为给定的连接创建一个新的语句。
 
AdbcStatusCode AdbcStatementRelease (struct AdbcStatement *statement, struct AdbcError *error)
 销毁语句。
 
AdbcStatusCode AdbcStatementExecuteQuery (struct AdbcStatement *statement, struct ArrowArrayStream *out, int64_t *rows_affected, struct AdbcError *error)
 执行语句并获取结果。
 
AdbcStatusCode AdbcStatementExecuteSchema (struct AdbcStatement *statement, struct ArrowSchema *schema, struct AdbcError *error)
 获取查询结果集的 schema,而不执行查询。
 
AdbcStatusCode AdbcStatementPrepare (struct AdbcStatement *statement, struct AdbcError *error)
 将此语句转换为准备好的语句,以便多次执行。
 
AdbcStatusCode AdbcStatementSetSqlQuery (struct AdbcStatement *statement, const char *query, struct AdbcError *error)
 设置要执行的 SQL 查询。
 
AdbcStatusCode AdbcStatementSetSubstraitPlan (struct AdbcStatement *statement, const uint8_t *plan, size_t length, struct AdbcError *error)
 设置要执行的 Substrait 计划。
 
AdbcStatusCode AdbcStatementBind (struct AdbcStatement *statement, struct ArrowArray *values, struct ArrowSchema *schema, struct AdbcError *error)
 绑定 Arrow 数据。 这可用于批量插入或准备好的语句。
 
AdbcStatusCode AdbcStatementBindStream (struct AdbcStatement *statement, struct ArrowArrayStream *stream, struct AdbcError *error)
 绑定 Arrow 数据。 这可用于批量插入或准备好的语句。
 
AdbcStatusCode AdbcStatementCancel (struct AdbcStatement *statement, struct AdbcError *error)
 取消正在进行的查询的执行。
 
AdbcStatusCode AdbcStatementGetOption (struct AdbcStatement *statement, const char *key, char *value, size_t *length, struct AdbcError *error)
 获取语句的字符串选项。
 
AdbcStatusCode AdbcStatementGetOptionBytes (struct AdbcStatement *statement, const char *key, uint8_t *value, size_t *length, struct AdbcError *error)
 获取语句的字节串选项。
 
AdbcStatusCode AdbcStatementGetOptionInt (struct AdbcStatement *statement, const char *key, int64_t *value, struct AdbcError *error)
 获取语句的整数选项。
 
AdbcStatusCode AdbcStatementGetOptionDouble (struct AdbcStatement *statement, const char *key, double *value, struct AdbcError *error)
 获取语句的double类型选项。
 
AdbcStatusCode AdbcStatementGetParameterSchema (struct AdbcStatement *statement, struct ArrowSchema *schema, struct AdbcError *error)
 获取绑定参数的 schema。
 
AdbcStatusCode AdbcStatementSetOption (struct AdbcStatement *statement, const char *key, const char *value, struct AdbcError *error)
 在语句上设置字符串选项。
 
AdbcStatusCode AdbcStatementSetOptionBytes (struct AdbcStatement *statement, const char *key, const uint8_t *value, size_t length, struct AdbcError *error)
 在语句上设置字节串选项。
 
AdbcStatusCode AdbcStatementSetOptionInt (struct AdbcStatement *statement, const char *key, int64_t value, struct AdbcError *error)
 在语句上设置整数选项。
 
AdbcStatusCode AdbcStatementSetOptionDouble (struct AdbcStatement *statement, const char *key, double value, struct AdbcError *error)
 在语句上设置double类型选项。
 
AdbcStatusCode AdbcStatementExecutePartitions (struct AdbcStatement *statement, struct ArrowSchema *schema, struct AdbcPartitions *partitions, int64_t *rows_affected, struct AdbcError *error)
 执行语句并将结果作为分区结果集获取。
 

详细描述

ADBC:Arrow 数据库连接性

应用程序和数据库驱动程序之间基于 Arrow 的接口。 ADBC 旨在为基于 SQL 和 Substrait 的数据库访问提供独立于供应商的 API,该 API 针对分析/OLAP 用例。

此 API 旨在由驱动程序直接实现,并由客户端应用程序直接使用。 为了帮助不同供应商之间的可移植性,还提供了一个“驱动程序管理器”库,该库实现相同的 API,但在内部动态加载驱动程序并适当地转发调用。

ADBC 使用带有自由函数的结构,这些自由函数对这些结构进行操作以对对象进行建模。

通常,对象允许从多个线程进行序列化访问,但不允许并发访问。 特定实现可能允许多个线程。

版本
1.1.0