ADBC
Arrow 資料庫連線能力
|
主題 | |
ADBC 統計類型 | |
大量資料擷取 | |
巨集 | |
#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_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_CONNECTION_OPTION_AUTOCOMMIT "adbc.connection.autocommit" |
#define ADBC_CONNECTION_OPTION_CURRENT_CATALOG "adbc.connection.catalog" |
用於指示目前目錄的標準選項名稱。
類型為 char*。
#define ADBC_CONNECTION_OPTION_CURRENT_DB_SCHEMA "adbc.connection.db_schema" |
用於指示目前綱要的標準選項名稱。
類型為 char*。
#define ADBC_CONNECTION_OPTION_ISOLATION_LEVEL "adbc.connection.transaction.isolation_level" |
用於設定交易隔離層級的標準選項名稱。
應僅在停用自動提交且使用 AdbcConnectionCommit / AdbcConnectionRollback 時使用。如果驅動程式不支援所需的隔離層級,則應傳回適當的錯誤。
類型為 char*。
#define ADBC_CONNECTION_OPTION_READ_ONLY "adbc.connection.readonly" |
#define ADBC_INFO_DRIVER_ADBC_VERSION 103 |
驅動程式 ADBC API 版本(類型:int64)。
該值應為 ADBC_VERSION 常數之一。
#define ADBC_INFO_DRIVER_ARROW_VERSION 102 |
驅動程式 Arrow 程式庫版本(類型:utf8)。
#define ADBC_INFO_DRIVER_NAME 100 |
驅動程式名稱(類型:utf8)。
#define ADBC_INFO_DRIVER_VERSION 101 |
驅動程式版本(類型:utf8)。
#define ADBC_INFO_VENDOR_ARROW_VERSION 2 |
資料庫供應商/產品 Arrow 程式庫版本(類型:utf8)。
#define ADBC_INFO_VENDOR_NAME 0 |
資料庫供應商/產品名稱(例如伺服器名稱)。(類型:utf8)。
#define ADBC_INFO_VENDOR_SQL 3 |
指示是否支援 SQL 查詢(類型:bool)。
#define ADBC_INFO_VENDOR_SUBSTRAIT 4 |
指示是否支援 Substrait 查詢(類型:bool)。
#define ADBC_INFO_VENDOR_SUBSTRAIT_MAX_VERSION 6 |
支援的最高 Substrait 版本,如果未支援 Substrait,則為 null(類型:utf8)。
#define ADBC_INFO_VENDOR_SUBSTRAIT_MIN_VERSION 5 |
支援的最低 Substrait 版本,如果未支援 Substrait,則為 null(類型:utf8)。
#define ADBC_INFO_VENDOR_VERSION 1 |
資料庫供應商/產品版本(類型:utf8)。
#define ADBC_OBJECT_DEPTH_ALL 0 |
傳回關於目錄、綱要、表格和資料行的中繼資料。
#define ADBC_OBJECT_DEPTH_CATALOGS 1 |
僅傳回關於目錄的中繼資料。
#define ADBC_OBJECT_DEPTH_COLUMNS ADBC_OBJECT_DEPTH_ALL |
傳回關於目錄、綱要、表格和資料行的中繼資料。
#define ADBC_OBJECT_DEPTH_DB_SCHEMAS 2 |
傳回關於目錄和綱要的中繼資料。
#define ADBC_OBJECT_DEPTH_TABLES 3 |
傳回關於目錄、綱要和表格的中繼資料。
#define ADBC_OPTION_ISOLATION_LEVEL_DEFAULT "adbc.connection.transaction.isolation.default" |
使用資料庫或驅動程式預設隔離層級。
#define ADBC_OPTION_ISOLATION_LEVEL_LINEARIZABLE "adbc.connection.transaction.isolation.linearizable" |
可序列化性與線性化之間的主要區別在於,可序列化性是一個全域屬性;是操作和交易的整個歷史記錄的屬性。線性化是一個局部屬性;是單個操作/交易的屬性。
線性化可以被視為嚴格可序列化性的一種特殊情況,其中交易被限制為僅包含應用於單個物件的單個操作。
#define ADBC_OPTION_ISOLATION_LEVEL_READ_COMMITTED "adbc.connection.transaction.isolation.read_committed" |
基於鎖定的並行控制會將寫入鎖定保留到交易結束,但是讀取鎖定會在執行 SELECT 後立即釋放。在這個隔離層級中可能會發生不可重複讀取。
更簡單地說,讀取已提交是一種隔離層級,它保證任何讀取的資料在讀取時都已提交。它僅限制讀取器看到任何中間的、未提交的「髒」讀取。它不保證如果交易重新發出讀取,它將找到相同的資料;資料在讀取後可以自由變更。
#define ADBC_OPTION_ISOLATION_LEVEL_READ_UNCOMMITTED "adbc.connection.transaction.isolation.read_uncommitted" |
最低隔離層級。允許髒讀,因此一個交易可能會看到其他交易尚未提交的變更。
#define ADBC_OPTION_ISOLATION_LEVEL_REPEATABLE_READ "adbc.connection.transaction.isolation.repeatable_read" |
基於鎖定的並行控制會將讀取和寫入鎖定(在選取資料時取得)保留到交易結束。
但是,範圍鎖定未被管理,因此可能會發生幻讀。在某些系統中,在這個隔離層級可能發生寫入傾斜。
#define ADBC_OPTION_ISOLATION_LEVEL_SERIALIZABLE "adbc.connection.transaction.isolation.serializable" |
可序列化性要求讀取和寫入鎖定僅在交易結束時釋放。這包括在 select 查詢使用範圍 WHERE 子句以避免幻讀時,取得範圍鎖定。
#define ADBC_OPTION_ISOLATION_LEVEL_SNAPSHOT "adbc.connection.transaction.isolation.snapshot" |
此隔離保證交易中的所有讀取都將看到資料庫的一致快照,並且僅當自該快照以來沒有任何更新與任何並行更新衝突時,交易才應成功提交。
#define ADBC_OPTION_PASSWORD "password" |
密碼的標準選項名稱。
應用作指定驅動程式驗證密碼的預期選項名稱。
類型為 char*。
#define ADBC_OPTION_URI "uri" |
URI 的標準選項名稱。
應用作指定任何 ADBC 驅動程式 URI 的預期選項名稱。
類型為 char*。
#define ADBC_OPTION_USERNAME "username" |
使用者名稱的標準選項名稱。
應用作指定驅動程式驗證使用者名稱的預期選項名稱。
類型為 char*。
#define ADBC_OPTION_VALUE_DISABLED "false" |
停用選項的標準選項值。
用於 SetOption 呼叫中的值。
#define ADBC_OPTION_VALUE_ENABLED "true" |
啟用選項的標準選項值。
用於 SetOption 呼叫中的值。
#define ADBC_STATEMENT_OPTION_INCREMENTAL "adbc.statement.exec.incremental" |
用於使查詢執行成為非封鎖的標準選項名稱。
啟用後,AdbcStatementExecutePartitions 將在分割區可用時立即傳回它們,而不是在最後傳回所有分割區。當沒有更多要傳回時,它將傳回一組空的分割區。 AdbcStatementExecuteQuery 和 AdbcStatementExecuteSchema 不受影響。
預設值為 ADBC_OPTION_VALUE_DISABLED。
類型為 char*。
#define ADBC_STATEMENT_OPTION_MAX_PROGRESS "adbc.statement.exec.max_progress" |
用於取得查詢最大進度的選項名稱。
這是已完成查詢的 ADBC_STATEMENT_OPTION_PROGRESS 值。如果不支持,或者如果該值為非正數,則最大值未知。(例如,查詢可能是完全流式的,並且驅動程式不知道結果集何時結束。)
類型為 double。
#define ADBC_STATEMENT_OPTION_PROGRESS "adbc.statement.exec.progress" |
用於取得查詢進度的選項名稱。
該值不一定在任何特定範圍內或具有任何特定單位。(例如,它可能是一個百分比、資料位元組、資料列、工作人員數量等。)最大值可以透過 ADBC_STATEMENT_OPTION_MAX_PROGRESS 檢索。這表示執行的進度,而不是消耗的進度(即,它獨立於客戶端透過 ArrowArrayStream.get_next() 讀取了多少結果集。)
類型為 double。
#define ADBC_VERSION_1_0_0 1000000 |
ADBC 修訂版本 1.0.0。
當傳遞給 AdbcDriverInitFunc() 時,驅動程式參數必須指向 AdbcDriver。
#define ADBC_VERSION_1_1_0 1001000 |