ADBC
Arrow 資料庫連線能力
|
函數 | |
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) |
取得連線的雙精度浮點數選項。 | |
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 綱要。 | |
AdbcStatusCode | AdbcConnectionGetTableTypes (struct AdbcConnection *connection, struct ArrowArrayStream *out, struct AdbcError *error) |
取得資料庫中表格類型的列表。 | |
用於檢索關於資料庫元數據的函數。
一般來說,這些函數會傳回一個 ArrowArrayStream,可以被消耗以取得 Arrow 資料格式的元數據。傳回的元數據具有函數文件字串中給定的預期綱要。除非另有標記,否則綱要欄位可為空值。雖然這些函數中未使用 AdbcStatement,但就並行管理而言,結果集可能會被驅動程式視為作用中的陳述式(例如,如果驅動程式對並行作用中的陳述式數量有限制,並且必須在內部執行 SQL 查詢才能實作元數據函數)。
此 AdbcConnection 的生命週期必須長於傳回的 ArrowArrayStream。
某些函數接受「搜尋模式」引數,這些引數是可以包含特殊字元「%」以符合零或多個字元,或「_」以符合恰好一個字元的字串。(請參閱 JDBC 中 DatabaseMetaData 的文件或 ODBC 文件中的「模式值引數」。)目前不支援跳脫字元。
AdbcStatusCode AdbcConnectionGetInfo | ( | struct AdbcConnection * | 連線, |
const uint32_t * | info_codes, | ||
size_t | info_codes_length, | ||
struct ArrowArrayStream * | out, | ||
struct AdbcError * | error ) |
取得關於資料庫/驅動程式的元數據。
結果是一個 Arrow 資料集,具有以下綱要
欄位名稱 | 欄位類型 |
---|---|
info_name | uint32 not null |
info_value | INFO_SCHEMA |
INFO_SCHEMA 是一個密集聯合,其成員為
欄位名稱(類型代碼) | 欄位類型 |
---|---|
string_value (0) | utf8 |
bool_value (1) | bool |
int64_value (2) | int64 |
int32_bitmask (3) | int32 |
string_list (4) | list<utf8> |
int32_to_int32_list_map (5) | map<int32, list<int32>> |
每個元數據都由一個整數代碼識別。已識別的代碼被定義為常數。代碼 [0, 10_000) 保留給 ADBC 使用。驅動程式/供應商將忽略對無法識別代碼的請求(該列將從結果中省略)。
自 ADBC 1.1.0 起:範圍 [500, 1_000) 保留給「XDBC」資訊,這與 Arrow Flight SQL GetSqlInfo RPC 中相同資訊代碼範圍提供的元數據相同。
[輸入] | 連線 | 要查詢的連線。 |
[輸入] | info_codes | 要提取的元數據代碼列表,或 NULL 以提取全部。 |
[輸入] | info_codes_length | info_codes 參數的長度。如果 info_codes 為 NULL,則忽略。 |
[輸出] | out | 結果集。 |
[輸出] | error | 如果發生錯誤,則為錯誤詳細資訊。 |
AdbcStatusCode AdbcConnectionGetObjects | ( | struct AdbcConnection * | 連線, |
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 ) |
取得所有目錄、資料庫綱要、表格和欄位的階層式檢視。
結果是一個 Arrow 資料集,具有以下綱要
欄位名稱 | 欄位類型 |
---|---|
catalog_name | utf8 |
catalog_db_schemas | list<DB_SCHEMA_SCHEMA> |
DB_SCHEMA_SCHEMA 是一個具有欄位的結構
欄位名稱 | 欄位類型 |
---|---|
db_schema_name | utf8 |
db_schema_tables | list<TABLE_SCHEMA> |
TABLE_SCHEMA 是一個具有欄位的結構
欄位名稱 | 欄位類型 |
---|---|
table_name | utf8 not null |
table_type | utf8 not null |
table_columns | list<COLUMN_SCHEMA> |
table_constraints | list<CONSTRAINT_SCHEMA> |
COLUMN_SCHEMA 是一個具有欄位的結構
欄位名稱 | 欄位類型 | 註解 |
---|---|---|
column_name | utf8 not null | |
ordinal_position | int32 | (1) |
remarks | utf8 | (2) |
xdbc_data_type | int16 | (3) |
xdbc_type_name | utf8 | (3) |
xdbc_column_size | int32 | (3) |
xdbc_decimal_digits | int16 | (3) |
xdbc_num_prec_radix | int16 | (3) |
xdbc_nullable | int16 | (3) |
xdbc_column_def | utf8 | (3) |
xdbc_sql_data_type | int16 | (3) |
xdbc_datetime_sub | int16 | (3) |
xdbc_char_octet_length | int32 | (3) |
xdbc_is_nullable | utf8 | (3) |
xdbc_scope_catalog | utf8 | (3) |
xdbc_scope_schema | utf8 | (3) |
xdbc_scope_table | utf8 | (3) |
xdbc_is_autoincrement | bool | (3) |
xdbc_is_generatedcolumn | bool | (3) |
CONSTRAINT_SCHEMA 是一個具有欄位的結構
欄位名稱 | 欄位類型 | 註解 |
---|---|---|
constraint_name | utf8 | |
constraint_type | utf8 not null | (1) |
constraint_column_names | list<utf8> not null | (2) |
constraint_column_usage | list<USAGE_SCHEMA> | (3) |
USAGE_SCHEMA 是一個具有欄位的結構
欄位名稱 | 欄位類型 |
---|---|
fk_catalog | utf8 |
fk_db_schema | utf8 |
fk_table | utf8 not null |
fk_column_name | utf8 not null |
此 AdbcConnection 的生命週期必須長於傳回的 ArrowArrayStream。
[輸入] | 連線 | 資料庫連線。 |
[輸入] | depth | 要顯示的巢狀層級。如果為 0,則顯示所有層級。如果為 1,則僅顯示目錄(即 catalog_schemas 將為 null)。如果為 2,則僅顯示目錄和綱要(即 db_schema_tables 將為 null),依此類推。 |
[輸入] | catalog | 僅顯示給定目錄中的表格。如果為 NULL,則不依目錄篩選。如果為空字串,則僅顯示沒有目錄的表格。可能是搜尋模式(請參閱章節文件)。 |
[輸入] | db_schema | 僅顯示給定資料庫綱要中的表格。如果為 NULL,則不依資料庫綱要篩選。如果為空字串,則僅顯示沒有資料庫綱要的表格。可能是搜尋模式(請參閱章節文件)。 |
[輸入] | table_name | 僅顯示具有給定名稱的表格。如果為 NULL,則不依名稱篩選。可能是搜尋模式(請參閱章節文件)。 |
[輸入] | table_type | 僅顯示符合給定表格類型之一的表格。如果為 NULL,則顯示任何類型的表格。有效的表格類型可以從 GetTableTypes 取得。使用 NULL 條目終止列表。 |
[輸入] | column_name | 僅顯示具有給定名稱的欄位。如果為 NULL,則不依名稱篩選。可能是搜尋模式(請參閱章節文件)。 |
[輸出] | out | 結果集。 |
[輸出] | error | 如果發生錯誤,則為錯誤詳細資訊。 |
AdbcStatusCode AdbcConnectionGetOption | ( | struct AdbcConnection * | 連線, |
const char * | key, | ||
char * | value, | ||
size_t * | length, | ||
struct AdbcError * | error ) |
取得連線的字串選項。
這必須始終是執行緒安全的(其他操作則不是),儘管考慮到此處的語意,不建議與自身同時呼叫 GetOption。
必須提供 length,且必須是 value 指向的緩衝區大小。如果有足夠的空間,驅動程式會將選項值(包括空字元終止符)複製到緩衝區,並將 length 設定為實際值的大小。如果緩衝區太小,則不會寫入任何資料,且 length 將設定為所需長度。
換句話說
[輸入] | 連線 | 資料庫連線。 |
[輸入] | key | 要取得的選項。 |
[輸出] | value | 選項值。 |
[輸入、輸出] | length | value 的長度。 |
[輸出] | error | 必要時,可選擇性地在此位置傳回錯誤訊息。 |
AdbcStatusCode AdbcConnectionGetOptionBytes | ( | struct AdbcConnection * | 連線, |
const char * | key, | ||
uint8_t * | value, | ||
size_t * | length, | ||
struct AdbcError * | error ) |
取得連線的位元組字串選項。
這必須始終是執行緒安全的(其他操作則不是),儘管考慮到此處的語意,不建議與自身同時呼叫 GetOptionBytes。
必須提供 length,且必須是 value 指向的緩衝區大小。如果有足夠的空間,驅動程式會將選項值複製到緩衝區,並將 length 設定為實際值的大小。如果緩衝區太小,則不會寫入任何資料,且 length 將設定為所需長度。
換句話說
對於標準選項,驅動程式必須始終支援透過選項中指定的類型來取得選項值(如果它們完全支援取得選項值)。(例如,透過 SetOptionDouble 設定的選項必須可透過 GetOptionDouble 檢索。)如果需要,驅動程式也可能支援透過其他 getter 取得轉換後的選項值。(例如,取得雙精度浮點數選項的字串表示形式。)
[輸入] | 連線 | 連線。 |
[輸入] | key | 要取得的選項。 |
[輸出] | value | 選項值。 |
[輸入、輸出] | length | 選項值長度。 |
[輸出] | error | 必要時,可選擇性地在此位置傳回錯誤訊息。 |
AdbcStatusCode AdbcConnectionGetOptionDouble | ( | struct AdbcConnection * | 連線, |
const char * | key, | ||
double * | value, | ||
struct AdbcError * | error ) |
取得連線的雙精度浮點數選項。
這必須始終是執行緒安全的(其他操作則不是)。
對於標準選項,驅動程式必須始終支援透過選項中指定的類型來取得選項值(如果它們完全支援取得選項值)。(例如,透過 SetOptionDouble 設定的選項必須可透過 GetOptionDouble 檢索。)如果需要,驅動程式也可能支援透過其他 getter 取得轉換後的選項值。(例如,取得雙精度浮點數選項的字串表示形式。)
[輸入] | 連線 | 資料庫連線。 |
[輸入] | key | 要取得的選項。 |
[輸出] | value | 選項值。 |
[輸出] | error | 必要時,可選擇性地在此位置傳回錯誤訊息。 |
AdbcStatusCode AdbcConnectionGetOptionInt | ( | struct AdbcConnection * | 連線, |
const char * | key, | ||
int64_t * | value, | ||
struct AdbcError * | error ) |
取得連線的整數選項。
這必須始終是執行緒安全的(其他操作則不是)。
對於標準選項,驅動程式必須始終支援透過選項中指定的類型來取得選項值(如果它們完全支援取得選項值)。(例如,透過 SetOptionDouble 設定的選項必須可透過 GetOptionDouble 檢索。)如果需要,驅動程式也可能支援透過其他 getter 取得轉換後的選項值。(例如,取得雙精度浮點數選項的字串表示形式。)
[輸入] | 連線 | 資料庫連線。 |
[輸入] | key | 要取得的選項。 |
[輸出] | value | 選項值。 |
[輸出] | error | 必要時,可選擇性地在此位置傳回錯誤訊息。 |
AdbcStatusCode AdbcConnectionGetStatisticNames | ( | struct AdbcConnection * | 連線, |
struct ArrowArrayStream * | out, | ||
struct AdbcError * | error ) |
取得此驅動程式特有的統計資訊名稱。
結果是一個 Arrow 資料集,具有以下綱要
欄位名稱 | 欄位類型 |
---|---|
statistic_name | utf8 not null |
statistic_key | int16 not null |
[輸入] | 連線 | 資料庫連線。 |
[輸出] | out | 結果集。 |
[輸出] | error | 如果發生錯誤,則為錯誤詳細資訊。 |
AdbcStatusCode AdbcConnectionGetStatistics | ( | struct AdbcConnection * | 連線, |
const char * | catalog, | ||
const char * | db_schema, | ||
const char * | table_name, | ||
char | approximate, | ||
struct ArrowArrayStream * | out, | ||
struct AdbcError * | error ) |
取得關於表格資料分佈的統計資訊。
結果是一個 Arrow 資料集,具有以下綱要
欄位名稱 | 欄位類型 |
---|---|
catalog_name | utf8 |
catalog_db_schemas | list<DB_SCHEMA_SCHEMA> not null |
DB_SCHEMA_SCHEMA 是一個具有欄位的結構
欄位名稱 | 欄位類型 |
---|---|
db_schema_name | utf8 |
db_schema_statistics | list<STATISTICS_SCHEMA> not null |
STATISTICS_SCHEMA 是一個具有欄位的結構
欄位名稱 | 欄位類型 | 註解 |
---|---|---|
table_name | utf8 not null | |
column_name | utf8 | (1) |
statistic_key | int16 not null | (2) |
statistic_value | VALUE_SCHEMA not null | |
statistic_is_approximate | bool not null | (3) |
VALUE_SCHEMA 是一個密集聯合,其成員為
欄位名稱 | 欄位類型 |
---|---|
int64 | int64 |
uint64 | uint64 |
float64 | float64 |
binary | binary |
此 AdbcConnection 的生命週期必須長於傳回的 ArrowArrayStream。
[輸入] | 連線 | 資料庫連線。 |
[輸入] | catalog | 目錄(或 nullptr)。可能是搜尋模式(請參閱章節文件)。 |
[輸入] | db_schema | 資料庫綱要(或 nullptr)。可能是搜尋模式(請參閱章節文件)。 |
[輸入] | table_name | 表格名稱(或 nullptr)。可能是搜尋模式(請參閱章節文件)。 |
[輸入] | approximate | 如果為零,則請求統計資訊的精確值,否則允許盡力而為、近似值或快取值。資料庫可能會傳回近似值,無論如何,如結果所示。請求精確值可能很昂貴或不受支援。 |
[輸出] | out | 結果集。 |
[輸出] | error | 如果發生錯誤,則為錯誤詳細資訊。 |
AdbcStatusCode AdbcConnectionGetTableSchema | ( | struct AdbcConnection * | 連線, |
const char * | catalog, | ||
const char * | db_schema, | ||
const char * | table_name, | ||
struct ArrowSchema * | schema, | ||
struct AdbcError * | error ) |
取得表格的 Arrow 綱要。
[輸入] | 連線 | 資料庫連線。 |
[輸入] | catalog | 目錄(如果不適用,則為 nullptr)。 |
[輸入] | db_schema | 資料庫綱要(如果不適用,則為 nullptr)。 |
[輸入] | table_name | 表格名稱。 |
[輸出] | schema | 表格綱要。 |
[輸出] | error | 如果發生錯誤,則為錯誤詳細資訊。 |
AdbcStatusCode AdbcConnectionGetTableTypes | ( | struct AdbcConnection * | 連線, |
struct ArrowArrayStream * | out, | ||
struct AdbcError * | error ) |
取得資料庫中表格類型的列表。
結果是一個 Arrow 資料集,具有以下綱要
欄位名稱 | 欄位類型 |
---|---|
table_type | utf8 not null |
此 AdbcConnection 的生命週期必須長於傳回的 ArrowArrayStream。
[輸入] | 連線 | 資料庫連線。 |
[輸出] | out | 結果集。 |
[輸出] | error | 如果發生錯誤,則為錯誤詳細資訊。 |