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

struct 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
參數
[輸入]version嘗試初始化的 ADBC 修訂版本(請參閱 ADBC_VERSION_1_0_0)。
[輸出]driver要初始化的函式指標表。 應為給定版本的適當結構的指標(請參閱版本的說明文件)。
[輸出]error可選的位置,用於在必要時傳回錯誤訊息。
傳回
如果驅動程式已初始化,則傳回 ADBC_STATUS_OK,如果版本不受支援,則傳回 ADBC_STATUS_NOT_IMPLEMENTED。 在這種情況下,客戶端可以使用不同的版本重試。