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 文件中的「模式值引數」。)目前不支援跳脫字元。

函數文件

◆ AdbcConnectionGetInfo()

AdbcStatusCode AdbcConnectionGetInfo ( struct AdbcConnection * 連線,
const uint32_t * info_codes,
size_t info_codes_length,
struct ArrowArrayStream * out,
struct AdbcError * error )

取得關於資料庫/驅動程式的元數據。

結果是一個 Arrow 資料集,具有以下綱要

欄位名稱欄位類型
info_nameuint32 not null
info_valueINFO_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_lengthinfo_codes 參數的長度。如果 info_codes 為 NULL,則忽略。
[輸出]out結果集。
[輸出]error如果發生錯誤,則為錯誤詳細資訊。

◆ AdbcConnectionGetObjects()

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_nameutf8
catalog_db_schemaslist<DB_SCHEMA_SCHEMA>

DB_SCHEMA_SCHEMA 是一個具有欄位的結構

欄位名稱欄位類型
db_schema_nameutf8
db_schema_tableslist<TABLE_SCHEMA>

TABLE_SCHEMA 是一個具有欄位的結構

欄位名稱欄位類型
table_nameutf8 not null
table_typeutf8 not null
table_columnslist<COLUMN_SCHEMA>
table_constraintslist<CONSTRAINT_SCHEMA>

COLUMN_SCHEMA 是一個具有欄位的結構

欄位名稱欄位類型註解
column_nameutf8 not null
ordinal_positionint32(1)
remarksutf8(2)
xdbc_data_typeint16(3)
xdbc_type_nameutf8(3)
xdbc_column_sizeint32(3)
xdbc_decimal_digitsint16(3)
xdbc_num_prec_radixint16(3)
xdbc_nullableint16(3)
xdbc_column_defutf8(3)
xdbc_sql_data_typeint16(3)
xdbc_datetime_subint16(3)
xdbc_char_octet_lengthint32(3)
xdbc_is_nullableutf8(3)
xdbc_scope_catalogutf8(3)
xdbc_scope_schemautf8(3)
xdbc_scope_tableutf8(3)
xdbc_is_autoincrementbool(3)
xdbc_is_generatedcolumnbool(3)
  1. 欄位在表格中的序數位置(從 1 開始)。
  2. 資料庫特定的欄位描述。
  3. 可選值。如果驅動程式不支援,則應為 null。xdbc_ 值旨在以不可知的方式提供與 JDBC/ODBC 相容的元數據。

CONSTRAINT_SCHEMA 是一個具有欄位的結構

欄位名稱欄位類型註解
constraint_nameutf8
constraint_typeutf8 not null(1)
constraint_column_nameslist<utf8> not null(2)
constraint_column_usagelist<USAGE_SCHEMA>(3)
  1. 「CHECK」、「FOREIGN KEY」、「PRIMARY KEY」或「UNIQUE」之一。
  2. 目前表格上受約束的欄位,依序排列。
  3. 僅適用於 FOREIGN KEY,參考的表格和欄位。

USAGE_SCHEMA 是一個具有欄位的結構

欄位名稱欄位類型
fk_catalogutf8
fk_db_schemautf8
fk_tableutf8 not null
fk_column_nameutf8 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如果發生錯誤,則為錯誤詳細資訊。

◆ AdbcConnectionGetOption()

AdbcStatusCode AdbcConnectionGetOption ( struct AdbcConnection * 連線,
const char * key,
char * value,
size_t * length,
struct AdbcError * error )

取得連線的字串選項。

這必須始終是執行緒安全的(其他操作則不是),儘管考慮到此處的語意,不建議與自身同時呼叫 GetOption。

必須提供 length,且必須是 value 指向的緩衝區大小。如果有足夠的空間,驅動程式會將選項值(包括空字元終止符)複製到緩衝區,並將 length 設定為實際值的大小。如果緩衝區太小,則不會寫入任何資料,且 length 將設定為所需長度。

換句話說

  • 如果輸出長度 <= 輸入長度,則 value 將包含具有 length 位元組的值。
  • 如果輸出長度 > 輸入長度,則 value 中未寫入任何內容。
ADBC API 修訂版 1.1.0
參數
[輸入]連線資料庫連線。
[輸入]key要取得的選項。
[輸出]value選項值。
[輸入、輸出]lengthvalue 的長度。
[輸出]error必要時,可選擇性地在此位置傳回錯誤訊息。
返回值
如果無法識別選項,則為 ADBC_STATUS_NOT_FOUND。

◆ AdbcConnectionGetOptionBytes()

AdbcStatusCode AdbcConnectionGetOptionBytes ( struct AdbcConnection * 連線,
const char * key,
uint8_t * value,
size_t * length,
struct AdbcError * error )

取得連線的位元組字串選項。

這必須始終是執行緒安全的(其他操作則不是),儘管考慮到此處的語意,不建議與自身同時呼叫 GetOptionBytes。

必須提供 length,且必須是 value 指向的緩衝區大小。如果有足夠的空間,驅動程式會將選項值複製到緩衝區,並將 length 設定為實際值的大小。如果緩衝區太小,則不會寫入任何資料,且 length 將設定為所需長度。

換句話說

  • 如果輸出長度 <= 輸入長度,則 value 將包含具有 length 位元組的值。
  • 如果輸出長度 > 輸入長度,則 value 中未寫入任何內容。

對於標準選項,驅動程式必須始終支援透過選項中指定的類型來取得選項值(如果它們完全支援取得選項值)。(例如,透過 SetOptionDouble 設定的選項必須可透過 GetOptionDouble 檢索。)如果需要,驅動程式也可能支援透過其他 getter 取得轉換後的選項值。(例如,取得雙精度浮點數選項的字串表示形式。)

ADBC API 修訂版 1.1.0
參數
[輸入]連線連線。
[輸入]key要取得的選項。
[輸出]value選項值。
[輸入、輸出]length選項值長度。
[輸出]error必要時,可選擇性地在此位置傳回錯誤訊息。
返回值
如果無法識別選項,則為 ADBC_STATUS_NOT_FOUND。

◆ AdbcConnectionGetOptionDouble()

AdbcStatusCode AdbcConnectionGetOptionDouble ( struct AdbcConnection * 連線,
const char * key,
double * value,
struct AdbcError * error )

取得連線的雙精度浮點數選項。

這必須始終是執行緒安全的(其他操作則不是)。

對於標準選項,驅動程式必須始終支援透過選項中指定的類型來取得選項值(如果它們完全支援取得選項值)。(例如,透過 SetOptionDouble 設定的選項必須可透過 GetOptionDouble 檢索。)如果需要,驅動程式也可能支援透過其他 getter 取得轉換後的選項值。(例如,取得雙精度浮點數選項的字串表示形式。)

ADBC API 修訂版 1.1.0
參數
[輸入]連線資料庫連線。
[輸入]key要取得的選項。
[輸出]value選項值。
[輸出]error必要時,可選擇性地在此位置傳回錯誤訊息。
返回值
如果無法識別選項,則為 ADBC_STATUS_NOT_FOUND。

◆ AdbcConnectionGetOptionInt()

AdbcStatusCode AdbcConnectionGetOptionInt ( struct AdbcConnection * 連線,
const char * key,
int64_t * value,
struct AdbcError * error )

取得連線的整數選項。

這必須始終是執行緒安全的(其他操作則不是)。

對於標準選項,驅動程式必須始終支援透過選項中指定的類型來取得選項值(如果它們完全支援取得選項值)。(例如,透過 SetOptionDouble 設定的選項必須可透過 GetOptionDouble 檢索。)如果需要,驅動程式也可能支援透過其他 getter 取得轉換後的選項值。(例如,取得雙精度浮點數選項的字串表示形式。)

ADBC API 修訂版 1.1.0
參數
[輸入]連線資料庫連線。
[輸入]key要取得的選項。
[輸出]value選項值。
[輸出]error必要時,可選擇性地在此位置傳回錯誤訊息。
返回值
如果無法識別選項,則為 ADBC_STATUS_NOT_FOUND。

◆ AdbcConnectionGetStatisticNames()

AdbcStatusCode AdbcConnectionGetStatisticNames ( struct AdbcConnection * 連線,
struct ArrowArrayStream * out,
struct AdbcError * error )

取得此驅動程式特有的統計資訊名稱。

結果是一個 Arrow 資料集,具有以下綱要

欄位名稱欄位類型
statistic_nameutf8 not null
statistic_keyint16 not null
ADBC API 修訂版 1.1.0
參數
[輸入]連線資料庫連線。
[輸出]out結果集。
[輸出]error如果發生錯誤,則為錯誤詳細資訊。

◆ AdbcConnectionGetStatistics()

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_nameutf8
catalog_db_schemaslist<DB_SCHEMA_SCHEMA> not null

DB_SCHEMA_SCHEMA 是一個具有欄位的結構

欄位名稱欄位類型
db_schema_nameutf8
db_schema_statisticslist<STATISTICS_SCHEMA> not null

STATISTICS_SCHEMA 是一個具有欄位的結構

欄位名稱欄位類型註解
table_nameutf8 not null
column_nameutf8(1)
statistic_keyint16 not null(2)
statistic_valueVALUE_SCHEMA not null
statistic_is_approximatebool not null(3)
  1. 如果為 null,則統計資訊適用於整個表格。
  2. 字典編碼的統計資訊名稱(雖然我們不使用 Arrow 字典類型)。[0, 1024) 範圍內的值保留給 ADBC。其他值用於實作特定的統計資訊。有關預定義統計資訊類型的定義,請參閱 ADBC 統計資訊類型。要取得驅動程式特定的統計資訊名稱,請使用 AdbcConnectionGetStatisticNames。
  3. 如果為 true,則值為近似值或盡力而為。

VALUE_SCHEMA 是一個密集聯合,其成員為

欄位名稱欄位類型
int64int64
uint64uint64
float64float64
binarybinary

AdbcConnection 的生命週期必須長於傳回的 ArrowArrayStream。

ADBC API 修訂版 1.1.0
參數
[輸入]連線資料庫連線。
[輸入]catalog目錄(或 nullptr)。可能是搜尋模式(請參閱章節文件)。
[輸入]db_schema資料庫綱要(或 nullptr)。可能是搜尋模式(請參閱章節文件)。
[輸入]table_name表格名稱(或 nullptr)。可能是搜尋模式(請參閱章節文件)。
[輸入]approximate如果為零,則請求統計資訊的精確值,否則允許盡力而為、近似值或快取值。資料庫可能會傳回近似值,無論如何,如結果所示。請求精確值可能很昂貴或不受支援。
[輸出]out結果集。
[輸出]error如果發生錯誤,則為錯誤詳細資訊。

◆ AdbcConnectionGetTableSchema()

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如果發生錯誤,則為錯誤詳細資訊。

◆ AdbcConnectionGetTableTypes()

AdbcStatusCode AdbcConnectionGetTableTypes ( struct AdbcConnection * 連線,
struct ArrowArrayStream * out,
struct AdbcError * error )

取得資料庫中表格類型的列表。

結果是一個 Arrow 資料集,具有以下綱要

欄位名稱欄位類型
table_typeutf8 not null

AdbcConnection 的生命週期必須長於傳回的 ArrowArrayStream。

參數
[輸入]連線資料庫連線。
[輸出]out結果集。
[輸出]error如果發生錯誤,則為錯誤詳細資訊。