ADBC
Arrow 数据库连接
正在加载...
正在搜索...
未找到匹配项
驱动程序初始化

结构体  AdbcDriver
 已初始化的数据库驱动程序的实例。 更多...
 

#define ADBC_DRIVER_1_0_0_SIZE   (offsetof(struct AdbcDriver, ErrorGetDetailCount))
 ADBC 1.0.0 中 AdbcDriver 结构体的大小。为 ADBC 1.1.0 及更高版本编写的驱动程序在给定 ADBC_VERSION_1_0_0 时,绝不应触及 AdbcDriver 结构体的此部分之外的内容。
 
#define ADBC_DRIVER_1_1_0_SIZE   (sizeof(struct AdbcDriver))
 ADBC 1.1.0 中 AdbcDriver 结构体的大小。为 ADBC 1.1.0 及更高版本编写的驱动程序在给定 ADBC_VERSION_1_1_0 时,绝不应触及 AdbcDriver 结构体的此部分之外的内容。
 

类型定义

typedef AdbcStatusCode(* AdbcDriverInitFunc) (int version, void *driver, struct AdbcError *error)
 驱动程序通过驱动程序管理器(使用 dlopen(3)/LoadLibrary)的通用入口点。驱动程序管理器被告知加载一个库并调用此类型的函数来加载驱动程序。
 

详细描述

这些函数旨在帮助支持驱动程序和驱动程序管理器之间的集成。


类文档

◆ AdbcDriver

结构体 AdbcDriver

已初始化的数据库驱动程序的实例。

这为特定于供应商的驱动程序初始化例程提供了一个通用接口。驱动程序应填充此结构体,并且应用程序可以通过此结构体调用 ADBC 函数,而无需担心同一符号的多个定义。

公共属性

void * private_data
 不透明的驱动程序定义状态。如果驱动程序未初始化/已释放,则此字段为 NULL(但即使驱动程序已初始化,它也可能没有值)。
 
void * private_manager
 不透明的驱动程序管理器定义状态。如果驱动程序未初始化/已释放,则此字段为 NULL(但即使驱动程序已初始化,它也可能没有值)。
 
AdbcStatusCode(* release )(struct AdbcDriver *driver, struct AdbcError *error)
 释放驱动程序并执行任何清理。
 
AdbcStatusCode(* DatabaseInit )(struct AdbcDatabase *, struct AdbcError *)
 
AdbcStatusCode(* DatabaseNew )(struct AdbcDatabase *, struct AdbcError *)
 
AdbcStatusCode(* DatabaseSetOption )(struct AdbcDatabase *, const char *, const char *, struct AdbcError *)
 
AdbcStatusCode(* DatabaseRelease )(struct AdbcDatabase *, struct AdbcError *)
 
AdbcStatusCode(* ConnectionCommit )(struct AdbcConnection *, struct AdbcError *)
 
AdbcStatusCode(* ConnectionGetInfo )(struct AdbcConnection *, const uint32_t *, size_t, struct ArrowArrayStream *, struct AdbcError *)
 
AdbcStatusCode(* ConnectionGetObjects )(struct AdbcConnection *, int, const char *, const char *, const char *, const char **, const char *, struct ArrowArrayStream *, struct AdbcError *)
 
AdbcStatusCode(* ConnectionGetTableSchema )(struct AdbcConnection *, const char *, const char *, const char *, struct ArrowSchema *, struct AdbcError *)
 
AdbcStatusCode(* ConnectionGetTableTypes )(struct AdbcConnection *, struct ArrowArrayStream *, struct AdbcError *)
 
AdbcStatusCode(* ConnectionInit )(struct AdbcConnection *, struct AdbcDatabase *, struct AdbcError *)
 
AdbcStatusCode(* ConnectionNew )(struct AdbcConnection *, struct AdbcError *)
 
AdbcStatusCode(* ConnectionSetOption )(struct AdbcConnection *, const char *, const char *, struct AdbcError *)
 
AdbcStatusCode(* ConnectionReadPartition )(struct AdbcConnection *, const uint8_t *, size_t, struct ArrowArrayStream *, struct AdbcError *)
 
AdbcStatusCode(* ConnectionRelease )(struct AdbcConnection *, struct AdbcError *)
 
AdbcStatusCode(* ConnectionRollback )(struct AdbcConnection *, struct AdbcError *)
 
AdbcStatusCode(* StatementBind )(struct AdbcStatement *, struct ArrowArray *, struct ArrowSchema *, struct AdbcError *)
 
AdbcStatusCode(* StatementBindStream )(struct AdbcStatement *, struct ArrowArrayStream *, struct AdbcError *)
 
AdbcStatusCode(* StatementExecuteQuery )(struct AdbcStatement *, struct ArrowArrayStream *, int64_t *, struct AdbcError *)
 
AdbcStatusCode(* StatementExecutePartitions )(struct AdbcStatement *, struct ArrowSchema *, struct AdbcPartitions *, int64_t *, struct AdbcError *)
 
AdbcStatusCode(* StatementGetParameterSchema )(struct AdbcStatement *, struct ArrowSchema *, struct AdbcError *)
 
AdbcStatusCode(* StatementNew )(struct AdbcConnection *, struct AdbcStatement *, struct AdbcError *)
 
AdbcStatusCode(* StatementPrepare )(struct AdbcStatement *, struct AdbcError *)
 
AdbcStatusCode(* StatementRelease )(struct AdbcStatement *, struct AdbcError *)
 
AdbcStatusCode(* StatementSetOption )(struct AdbcStatement *, const char *, const char *, struct AdbcError *)
 
AdbcStatusCode(* StatementSetSqlQuery )(struct AdbcStatement *, const char *, struct AdbcError *)
 
AdbcStatusCode(* StatementSetSubstraitPlan )(struct AdbcStatement *, const uint8_t *, size_t, struct AdbcError *)
 
int(* ErrorGetDetailCount )(const struct AdbcError *error)
 
struct AdbcErrorDetail(* ErrorGetDetail )(const struct AdbcError *error, int index)
 
const struct AdbcError *(* ErrorFromArrayStream )(struct ArrowArrayStream *stream, AdbcStatusCode *status)
 
AdbcStatusCode(* DatabaseGetOption )(struct AdbcDatabase *, const char *, char *, size_t *, struct AdbcError *)
 
AdbcStatusCode(* DatabaseGetOptionBytes )(struct AdbcDatabase *, const char *, uint8_t *, size_t *, struct AdbcError *)
 
AdbcStatusCode(* DatabaseGetOptionDouble )(struct AdbcDatabase *, const char *, double *, struct AdbcError *)
 
AdbcStatusCode(* DatabaseGetOptionInt )(struct AdbcDatabase *, const char *, int64_t *, struct AdbcError *)
 
AdbcStatusCode(* DatabaseSetOptionBytes )(struct AdbcDatabase *, const char *, const uint8_t *, size_t, struct AdbcError *)
 
AdbcStatusCode(* DatabaseSetOptionDouble )(struct AdbcDatabase *, const char *, double, struct AdbcError *)
 
AdbcStatusCode(* DatabaseSetOptionInt )(struct AdbcDatabase *, const char *, int64_t, struct AdbcError *)
 
AdbcStatusCode(* ConnectionCancel )(struct AdbcConnection *, struct AdbcError *)
 
AdbcStatusCode(* ConnectionGetOption )(struct AdbcConnection *, const char *, char *, size_t *, struct AdbcError *)
 
AdbcStatusCode(* ConnectionGetOptionBytes )(struct AdbcConnection *, const char *, uint8_t *, size_t *, struct AdbcError *)
 
AdbcStatusCode(* ConnectionGetOptionDouble )(struct AdbcConnection *, const char *, double *, struct AdbcError *)
 
AdbcStatusCode(* ConnectionGetOptionInt )(struct AdbcConnection *, const char *, int64_t *, struct AdbcError *)
 
AdbcStatusCode(* ConnectionGetStatistics )(struct AdbcConnection *, const char *, const char *, const char *, char, struct ArrowArrayStream *, struct AdbcError *)
 
AdbcStatusCode(* ConnectionGetStatisticNames )(struct AdbcConnection *, struct ArrowArrayStream *, struct AdbcError *)
 
AdbcStatusCode(* ConnectionSetOptionBytes )(struct AdbcConnection *, const char *, const uint8_t *, size_t, struct AdbcError *)
 
AdbcStatusCode(* ConnectionSetOptionDouble )(struct AdbcConnection *, const char *, double, struct AdbcError *)
 
AdbcStatusCode(* ConnectionSetOptionInt )(struct AdbcConnection *, const char *, int64_t, struct AdbcError *)
 
AdbcStatusCode(* StatementCancel )(struct AdbcStatement *, struct AdbcError *)
 
AdbcStatusCode(* StatementExecuteSchema )(struct AdbcStatement *, struct ArrowSchema *, struct AdbcError *)
 
AdbcStatusCode(* StatementGetOption )(struct AdbcStatement *, const char *, char *, size_t *, struct AdbcError *)
 
AdbcStatusCode(* StatementGetOptionBytes )(struct AdbcStatement *, const char *, uint8_t *, size_t *, struct AdbcError *)
 
AdbcStatusCode(* StatementGetOptionDouble )(struct AdbcStatement *, const char *, double *, struct AdbcError *)
 
AdbcStatusCode(* StatementGetOptionInt )(struct AdbcStatement *, const char *, int64_t *, struct AdbcError *)
 
AdbcStatusCode(* StatementSetOptionBytes )(struct AdbcStatement *, const char *, const uint8_t *, size_t, struct AdbcError *)
 
AdbcStatusCode(* StatementSetOptionDouble )(struct AdbcStatement *, const char *, double, struct AdbcError *)
 
AdbcStatusCode(* StatementSetOptionInt )(struct AdbcStatement *, const char *, int64_t, struct AdbcError *)
 

成员数据文档

◆ private_data

void* AdbcDriver::private_data

不透明的驱动程序定义状态。如果驱动程序未初始化/已释放,则此字段为 NULL(但即使驱动程序已初始化,它也可能没有值)。

◆ private_manager

void* AdbcDriver::private_manager

不透明的驱动程序管理器定义状态。如果驱动程序未初始化/已释放,则此字段为 NULL(但即使驱动程序已初始化,它也可能没有值)。

◆ release

AdbcStatusCode(* AdbcDriver::release) (struct AdbcDriver *driver, struct AdbcError *error)

释放驱动程序并执行任何清理。

这是一个嵌入式回调,使驱动管理器和驱动程序更容易协作。

宏定义文档

◆ ADBC_DRIVER_1_0_0_SIZE

#define ADBC_DRIVER_1_0_0_SIZE   (offsetof(struct AdbcDriver, ErrorGetDetailCount))

ADBC 1.0.0 中 AdbcDriver 结构体的大小。为 ADBC 1.1.0 及更高版本编写的驱动程序在给定 ADBC_VERSION_1_0_0 时,绝不应触及 AdbcDriver 结构体的此部分之外的内容。

起始于
ADBC API 修订版 1.1.0

◆ ADBC_DRIVER_1_1_0_SIZE

#define ADBC_DRIVER_1_1_0_SIZE   (sizeof(struct AdbcDriver))

ADBC 1.1.0 中 AdbcDriver 结构体的大小。为 ADBC 1.1.0 及更高版本编写的驱动程序在给定 ADBC_VERSION_1_1_0 时,绝不应触及 AdbcDriver 结构体的此部分之外的内容。

起始于
ADBC API 修订版 1.1.0

类型定义文档

◆ AdbcDriverInitFunc

typedef AdbcStatusCode(* AdbcDriverInitFunc) (int version, void *driver, struct AdbcError *error)

驱动程序通过驱动程序管理器(使用 dlopen(3)/LoadLibrary)的通用入口点。驱动程序管理器被告知加载一个库并调用此类型的函数来加载驱动程序。

尽管驱动程序可以选择任何名称作为此函数,但推荐的名称是“AdbcDriverInit”,或者从驱动程序的共享库名称派生的名称,如下所示:删除“lib”前缀(在 Unix 系统上)和所有文件扩展名,然后将驱动程序名称转换为 PascalCase 格式,附加 Init,并预先添加 Adbc(如果尚未存在)。例如

  • libadbc_driver_sqlite.so.2.0.0 -> AdbcDriverSqliteInit
  • adbc_driver_sqlite.dll -> AdbcDriverSqliteInit
  • proprietary_driver.dll -> AdbcProprietaryDriverInit
参数
[in]version尝试初始化的 ADBC 修订版本(请参阅 ADBC_VERSION_1_0_0)。
[out]driver要初始化的函数指针表。应该是指向给定版本的相应结构的指针(请参阅该版本的文档)。
[out]error如果需要,返回错误消息的可选位置。
返回值
如果驱动程序已初始化,则返回 ADBC_STATUS_OK;如果不支持该版本,则返回 ADBC_STATUS_NOT_IMPLEMENTED。在这种情况下,客户端可以使用不同的版本重试。