adbc_driver_manager

底層 API

用於 Python 的底層 ADBC 綁定。

根模組提供了與 Python 中 C API 定義相當直接、一對一的映射。對於更高等級的介面,請使用adbc_driver_manager.dbapi。(這需要 PyArrow。)

常數 & 列舉

class adbc_driver_manager.AdbcStatusCode(value, names=<not given>, *values, module=None, qualname=None, type=None, start=1, boundary=None)

基底:IntEnum

指示錯誤類型的狀態碼。

ALREADY_EXISTS = 4
CANCELLED = 11
INTEGRITY = 8
INTERNAL = 9
INVALID_ARGUMENT = 5
INVALID_DATA = 7
INVALID_STATE = 6
IO = 10
NOT_FOUND = 3
NOT_IMPLEMENTED = 2
OK = 0
TIMEOUT = 12
UNAUTHENTICATED = 13
UNAUTHORIZED = 14
UNKNOWN = 1
class adbc_driver_manager.GetObjectsDepth(value, names=<not given>, *values, module=None, qualname=None, type=None, start=1, boundary=None)

基底:IntEnum

要為 adbc_get_objects 擷取多少資料。

ALL = 0
CATALOGS = 1
COLUMNS = 0
DB_SCHEMAS = 2
TABLES = 3
class adbc_driver_manager.ConnectionOptions(value, names=<not given>, *values, module=None, qualname=None, type=None, start=1, boundary=None)

基底:Enum

在驅動程式之間標準化的連線選項。

並非所有驅動程式都支援所有選項。

CURRENT_CATALOG = 'adbc.connection.catalog'

取得/設定目前的目錄。

CURRENT_DB_SCHEMA = 'adbc.connection.db_schema'

取得/設定目前的結構描述。

ISOLATION_LEVEL = 'adbc.connection.transaction.isolation_level'

設定交易隔離等級。

class adbc_driver_manager.DatabaseOptions(value, names=<not given>, *values, module=None, qualname=None, type=None, start=1, boundary=None)

基底:Enum

在驅動程式之間標準化的資料庫選項。

並非所有驅動程式都支援所有選項。

PASSWORD = 'password'

設定用於使用者名稱-密碼驗證的密碼。

URI = 'uri'

要連線的 URI。

USERNAME = 'username'

設定用於使用者名稱-密碼驗證的使用者名稱。

class adbc_driver_manager.StatementOptions(value, names=<not given>, *values, module=None, qualname=None, type=None, start=1, boundary=None)

基底:Enum

在驅動程式之間標準化的陳述式選項。

並非所有驅動程式都支援所有選項。

INCREMENTAL = 'adbc.statement.exec.incremental'

在 ExecutePartitions 上啟用增量執行。

INGEST_MODE = 'adbc.ingest.mode'

對於大量擷取,是否建立或附加到表格。

INGEST_TARGET_CATALOG = 'adbc.ingest.target_catalog'

對於大量擷取,要在其中建立/尋找表格的目錄。此 API 為實驗性質。

INGEST_TARGET_DB_SCHEMA = 'adbc.ingest.target_db_schema'

對於大量擷取,要在其中建立/尋找表格的結構描述。此 API 為實驗性質。

INGEST_TARGET_TABLE = 'adbc.ingest.target_table'

對於大量擷取,要擷取到其中的表格。

INGEST_TEMPORARY = 'adbc.ingest.temporary'

對於大量擷取,使用暫時表格。此 API 為實驗性質。

PROGRESS = 'adbc.statement.exec.progress'

取得查詢的進度。

adbc_driver_manager.INGEST_OPTION_MODE

是否附加到表格或為大量擷取建立新表格。

adbc_driver_manager.INGEST_OPTION_MODE_APPEND

為大量擷取附加到表格。

adbc_driver_manager.INGEST_OPTION_MODE_CREATE

為大量擷取建立新表格。

adbc_driver_manager.INGEST_OPTION_TARGET_TABLE

要為大量擷取建立/附加到的表格。

類別

class adbc_driver_manager.AdbcConnection

基底:_AdbcHandle

活動的資料庫連線。

連線不是執行緒安全的,用戶端應注意序列化對連線的存取。

參數:
databaseAdbcDatabase

要連線的資料庫。

kwargsdict

要傳遞到基礎資料庫的字串鍵值選項。

方法

cancel()

嘗試取消連線上任何正在進行的操作。

close()

釋放連線的控制代碼。

commit()

提交目前的交易。

get_info([info_codes])

取得關於資料庫/驅動程式的中繼資料。

get_objects(depth[, catalog, db_schema, ...])

取得資料庫物件的階層式檢視。

get_option(key, *[, encoding, errors])

取得字串選項的值。

get_option_bytes(key)

取得二進位選項的值。

get_option_float(key)

取得浮點選項的值。

get_option_int(key)

取得整數選項的值。

get_table_schema(catalog, db_schema, table_name)

取得表格的 Arrow 結構描述。

get_table_types()

取得支援的表格類型清單。

read_partition(partition)

從 execute_partitions 擷取單一分割區。

rollback()

回滾目前的交易。

set_autocommit(enabled)

切換是否啟用自動提交。

set_options(**kwargs)

設定任意鍵值選項。

cancel() None

嘗試取消連線上任何正在進行的操作。

close() None

釋放連線的控制代碼。

commit() None

提交目前的交易。

get_info(info_codes=None) ArrowArrayStreamHandle

取得關於資料庫/驅動程式的中繼資料。

get_objects(depth, catalog=None, db_schema=None, table_name=None, table_types=None, column_name=None) ArrowArrayStreamHandle

取得資料庫物件的階層式檢視。

get_option(key: str | bytes, *, encoding='utf-8', errors='strict') str

取得字串選項的值。

參數:
keystr 或 bytes

要取得的選項。

encodingstr

選項值的編碼。這幾乎應始終為 UTF-8。

errorsstr

解碼選項值時發生錯誤時要執行的操作(請參閱 bytes.decode)。

get_option_bytes(key: str) bytes

取得二進位選項的值。

get_option_float(key: str) float

取得浮點選項的值。

get_option_int(key: str) int

取得整數選項的值。

get_table_schema(catalog, db_schema, table_name) ArrowSchemaHandle

取得表格的 Arrow 結構描述。

傳回:
ArrowSchemaHandle

包含結構描述的 C 資料介面 ArrowSchema 結構。

get_table_types() ArrowArrayStreamHandle

取得支援的表格類型清單。

read_partition(partition) ArrowArrayStreamHandle

從 execute_partitions 擷取單一分割區。

rollback() None

回滾目前的交易。

set_autocommit(enabled) None

切換是否啟用自動提交。

set_options(**kwargs) None

設定任意鍵值選項。

以 kwargs 形式傳遞選項:set_options(**{"some.option": "value"})

請注意,並非所有驅動程式都支援在建立後設定選項。

另請參閱

adbc_driver_manager.ConnectionOptions

標準選項名稱。

class adbc_driver_manager.AdbcDatabase

基底:_AdbcHandle

資料庫的執行個體。

參數:
kwargsdict

要傳遞到基礎資料庫的字串鍵值選項。必須至少包含 “driver” 以識別要載入的基礎資料庫驅動程式。

方法

close()

釋放資料庫的控制代碼。

get_option(key, *[, encoding, errors])

取得字串選項的值。

get_option_bytes(key)

取得二進位選項的值。

get_option_float(key)

取得浮點選項的值。

get_option_int(key)

取得整數選項的值。

set_options(**kwargs)

設定任意鍵值選項。

close() None

釋放資料庫的控制代碼。

get_option(key: str | bytes, *, encoding='utf-8', errors='strict') str

取得字串選項的值。

參數:
keystr 或 bytes

要取得的選項。

encodingstr

選項值的編碼。這幾乎應始終為 UTF-8。

errorsstr

解碼選項值時發生錯誤時要執行的操作(請參閱 bytes.decode)。

get_option_bytes(key: str) bytes

取得二進位選項的值。

get_option_float(key: str) float

取得浮點選項的值。

get_option_int(key: str) int

取得整數選項的值。

set_options(**kwargs) None

設定任意鍵值選項。

以 kwargs 形式傳遞選項:set_options(**{"some.option": "value"})

請注意,並非所有驅動程式都支援在建立後設定選項。

另請參閱

adbc_driver_manager.DatabaseOptions

標準選項名稱。

class adbc_driver_manager.AdbcStatement

基底:_AdbcHandle

資料庫陳述式。

陳述式不是執行緒安全的,用戶端應注意序列化對連線的存取。

參數:
connectionAdbcConnection

要為其建立陳述式的連線。

方法

bind(data[, schema])

將 ArrowArray 繫結到此陳述式。

bind_stream(stream)

將 ArrowArrayStream 繫結到此陳述式。

cancel()

嘗試取消連線上任何正在進行的操作。

close()

釋放陳述式的控制代碼。

execute_partitions()

執行查詢並取得結果集的分割區。

execute_query()

執行查詢並取得結果集。

execute_schema()

取得結果集的結構描述,而無需執行查詢。

execute_update()

執行查詢,但不含結果集。

get_option(key, *[, encoding, errors])

取得字串選項的值。

get_option_bytes(key)

取得二進位選項的值。

get_option_float(key)

取得浮點選項的值。

get_option_int(key)

取得整數選項的值。

get_parameter_schema()

取得繫結參數的 Arrow 結構描述。

prepare()

將此陳述式轉換為預備陳述式。

set_options(**kwargs)

僅為此語句設定任意鍵值選項。

set_sql_query(query)

設定要執行的 SQL 查詢。

set_substrait_plan(plan)

設定要執行的 Substrait 計劃。

bind(data, schema=None) None

將 ArrowArray 繫結到此陳述式。

參數:
dataPyCapsule 或 int 或 ArrowArrayHandle
schemaPyCapsule 或 int 或 ArrowSchemaHandle
bind_stream(stream) None

將 ArrowArrayStream 繫結到此陳述式。

參數:
streamPyCapsule 或 int 或 ArrowArrayStreamHandle
cancel() None

嘗試取消連線上任何正在進行的操作。

close() None

釋放陳述式的控制代碼。

execute_partitions() Tuple[List[bytes], ArrowSchemaHandle | None, int]

執行查詢並取得結果集的分割區。

並非所有驅動程式都支援此功能。

傳回:
位元組列表

分散式結果集的分區。

ArrowSchemaHandle 或 None

結果集的結構描述。如果啟用增量執行且伺服器未傳回結構描述,則可能為 None。

整數

如果已知行數,則為該數字,否則為 -1。

execute_query() Tuple[ArrowArrayStreamHandle, int]

執行查詢並取得結果集。

傳回:
ArrowArrayStreamHandle

結果集。

整數

如果已知行數,則為該數字,否則為 -1。

execute_schema() ArrowSchemaHandle

取得結果集的結構描述,而無需執行查詢。

傳回:
ArrowSchemaHandle

結果集的結構描述。

execute_update() int

執行查詢,但不含結果集。

傳回:
整數

如果已知受影響的行數,則為該數字,否則為 -1。

get_option(key: str | bytes, *, encoding='utf-8', errors='strict') str

取得字串選項的值。

參數:
keystr 或 bytes

要取得的選項。

encodingstr

選項值的編碼。這幾乎應始終為 UTF-8。

errorsstr

解碼選項值時發生錯誤時要執行的操作(請參閱 bytes.decode)。

get_option_bytes(key: str) bytes

取得二進位選項的值。

get_option_float(key: str) float

取得浮點選項的值。

get_option_int(key: str) int

取得整數選項的值。

get_parameter_schema() ArrowSchemaHandle

取得繫結參數的 Arrow 結構描述。

這會檢索一個 Arrow 結構描述,描述參數化語句中參數的數量、名稱和類型。結構描述的欄位應按照參數的序數位置排列;具名參數應僅出現一次。

如果參數沒有名稱,或無法確定名稱,則結構描述中對應欄位的名稱將為空字串。如果無法確定類型,則對應欄位的類型將為 NA (NullType)。

這應該在 prepare() 之後呼叫。

引發:
NotSupportedError

如果無法確定結構描述。

prepare() None

將此陳述式轉換為預備陳述式。

set_options(**kwargs) None

僅為此語句設定任意鍵值選項。

以 kwargs 形式傳遞選項:set_options(**{"some.option": "value"})

請注意,並非所有驅動程式都支援在建立後設定選項。

另請參閱

adbc_driver_manager.StatementOptions

標準選項名稱。

set_sql_query(query) None

設定要執行的 SQL 查詢。

set_substrait_plan(plan) None

設定要執行的 Substrait 計劃。

class adbc_driver_manager.ArrowArrayHandle

繼承:object

已分配 ArrowArray 的包裝器。

此物件實作 Arrow PyCapsule 介面。

屬性:
address

ArrowArray 的位址。

address

ArrowArray 的位址。

class adbc_driver_manager.ArrowArrayStreamHandle

繼承:object

已分配 ArrowArrayStream 的包裝器。

此物件實作 Arrow PyCapsule 介面。

屬性:
address

ArrowArrayStream 的位址。

address

ArrowArrayStream 的位址。

class adbc_driver_manager.ArrowSchemaHandle

繼承:object

已分配 ArrowSchema 的包裝器。

此物件實作 Arrow PyCapsule 介面。

屬性:
address

ArrowSchema 的位址。

address

ArrowSchema 的位址。

DBAPI 2.0 API

ADBC 驅動程式管理器的 PEP 249 (DB-API 2.0) API 包裝器。

資源管理

您必須 close() Connection 和 Cursor 物件,否則可能會洩漏驅動程式資源。__del__ 已實作為後備方案,但 Python 不保證何時會呼叫它。為了開發目的,當在 pytest 下執行時,或當環境變數 _ADBC_DRIVER_MANAGER_WARN_UNCLOSED_RESOURCE 設定為 1 時,__del__ 將會引發 ResourceWarning。

常數 & 列舉

adbc_driver_manager.dbapi.apilevel = '2.0'

DB-API API 層級 (2.0)。

adbc_driver_manager.dbapi.paramstyle = 'qmark'

參數樣式 (qmark)。這是硬式編碼的,但實際上取決於驅動程式。

adbc_driver_manager.dbapi.threadsafety = 1

執行緒安全層級(連線可能無法共用)。

adbc_driver_manager.dbapi.Date = <class 'datetime.date'>

日期值的類型。

adbc_driver_manager.dbapi.Time = <class 'datetime.time'>

時間值的類型。

adbc_driver_manager.dbapi.Timestamp(year, month, day[, hour[, minute[, second[, microsecond[, tzinfo]]]]]) = <class 'datetime.datetime'>

時間戳記值的類型。

adbc_driver_manager.dbapi.BINARY = frozenset({14, 35})

二進制欄位的類型。

adbc_driver_manager.dbapi.DATETIME = frozenset({16, 17, 18, 19, 20})

日期時間欄位的類型。

adbc_driver_manager.dbapi.NUMBER = frozenset({2, 3, 4, 5, 6, 7, 8, 9, 11, 12})

數值欄位的類型。

adbc_driver_manager.dbapi.ROWID = frozenset({9})

「列 ID」欄位的類型。

adbc_driver_manager.dbapi.STRING = frozenset({13, 34})

字串欄位的類型。

函數

adbc_driver_manager.dbapi.connect(*, driver: str, entrypoint: str | None = None, db_kwargs: Dict[str, str] | None = None, conn_kwargs: Dict[str, str] | None = None, autocommit=False) Connection

透過 ADBC 連線到資料庫。

參數:
driver

驅動程式名稱。例如,「adbc_driver_sqlite」將嘗試在 Linux 系統上載入 libadbc_driver_sqlite.so,在 MacOS 上載入 libadbc_driver_sqlite.dylib,以及在 Windows 上載入 adbc_driver_sqlite.dll。這也可能是要載入的程式庫路徑。

entrypoint

驅動程式特定的進入點(如果與預設值不同)。

db_kwargs

用於傳遞給驅動程式以初始化資料庫的鍵值參數。

conn_kwargs

用於傳遞給驅動程式以初始化連線的鍵值參數。

autocommit

是否啟用自動提交。為了符合 DB-API,預設情況下會停用此功能。如果無法停用,將會發出警告。

adbc_driver_manager.dbapi.DateFromTicks(ticks: int) date

從秒數計數建構日期值。

adbc_driver_manager.dbapi.TimeFromTicks(ticks: int) time

從秒數計數建構時間值。

adbc_driver_manager.dbapi.TimestampFromTicks(ticks: int) datetime

從秒數計數建構時間戳記值。

類別

class adbc_driver_manager.dbapi.Connection(db: AdbcDatabase | _SharedDatabase, conn: AdbcConnection, conn_kwargs: Dict[str, str] | None = None, *, autocommit=False)

基底:_Closeable

DB-API 2.0 (PEP 249) 連線。

請勿直接建立此物件;請使用 connect()。

屬性:
adbc_connection

取得底層的 ADBC 連線。

adbc_current_catalog

目前目錄的名稱。

adbc_current_db_schema

目前結構描述的名稱。

adbc_database

取得底層的 ADBC 資料庫。

方法

adbc_cancel()

取消此連線上的任何正在進行的操作。

adbc_clone()

建立新的 Connection,共用相同的底層資料庫。

adbc_get_info()

取得關於資料庫和驅動程式的中繼資料。

adbc_get_objects(*[, depth, catalog_filter, ...])

列出目錄、結構描述、表格等。

adbc_get_table_schema(table_name, *[, ...])

依名稱取得表格的 Arrow 結構描述。

adbc_get_table_types()

列出伺服器知道的表格類型。

close()

關閉連線。

commit()

明確提交。

cursor()

建立新的游標以查詢資料庫。

rollback()

明確回滾。

adbc_cancel() None

取消此連線上的任何正在進行的操作。

筆記

這是一個擴充功能,並非 DBAPI 標準的一部分。

adbc_clone() Connection

建立新的 Connection,共用相同的底層資料庫。

筆記

這是一個擴充功能,並非 DBAPI 標準的一部分。

property adbc_connection: AdbcConnection

取得底層的 ADBC 連線。

筆記

這是一個擴充功能,並非 DBAPI 標準的一部分。

property adbc_current_catalog: str

目前目錄的名稱。

筆記

這是一個擴充功能,並非 DBAPI 標準的一部分。

property adbc_current_db_schema: str

目前結構描述的名稱。

筆記

這是一個擴充功能,並非 DBAPI 標準的一部分。

property adbc_database: AdbcDatabase

取得底層的 ADBC 資料庫。

筆記

這是一個擴充功能,並非 DBAPI 標準的一部分。

adbc_get_info() Dict[str | int, Any]

取得關於資料庫和驅動程式的中繼資料。

筆記

這是一個擴充功能,並非 DBAPI 標準的一部分。

adbc_get_objects(*, depth: Literal['all', 'catalogs', 'db_schemas', 'tables', 'columns'] = 'all', catalog_filter: str | None = None, db_schema_filter: str | None = None, table_name_filter: str | None = None, table_types_filter: List[str] | None = None, column_name_filter: str | None = None) RecordBatchReader

列出資料庫中的目錄、結構描述、表格等。

參數:
depth

要傳回哪些物件的資訊。

catalog_filter

目錄名稱的選用篩選器。

db_schema_filter

資料庫結構描述名稱的選用篩選器。

table_name_filter

表格名稱的選用篩選器。

table_types_filter

傳回的表格類型的選用清單。

column_name_filter

欄位名稱的選用篩選器。

筆記

這是一個擴充功能,並非 DBAPI 標準的一部分。

adbc_get_table_schema(table_name: str, *, catalog_filter: str | None = None, db_schema_filter: str | None = None) Schema

依名稱取得表格的 Arrow 結構描述。

參數:
table_name

要取得綱要的表格。

catalog_filter

表格的目錄名稱的可選篩選器。

db_schema_filter

表格的資料庫綱要名稱的可選篩選器。

筆記

這是一個擴充功能,並非 DBAPI 標準的一部分。

adbc_get_table_types() List[str]

列出伺服器知道的表格類型。

筆記

這是一個擴充功能,並非 DBAPI 標準的一部分。

close() None

關閉連線。

警告

未能關閉連線可能會洩漏記憶體或資料庫連線。

commit() None

明確提交。

cursor() Cursor

建立新的游標以查詢資料庫。

rollback() None

明確回滾。

class adbc_driver_manager.dbapi.Cursor(conn: Connection)

基底:_Closeable

DB-API 2.0 (PEP 249) 的游標。

請勿直接建立此物件;使用 Connection.cursor()。

屬性:
adbc_statement

取得底層的 ADBC 陳述式。

arraysize

使用 fetchmany() 一次提取的列數。

connection

取得與此游標關聯的連線。

description

結果集的結構描述。

rowcount

取得結果集的列數,如果未知則為 -1。

rownumber

取得目前的列號,如果不可應用則為 None。

方法

adbc_cancel()

取消此陳述式上任何進行中的操作。

adbc_execute_partitions(operation[, parameters])

執行查詢並取得分散式結果集的分區。

adbc_execute_schema(operation[, parameters])

取得查詢結果集的綱要,而不執行查詢。

adbc_ingest(table_name, data[, mode, ...])

將 Arrow 資料擷取到資料庫表格中。

adbc_prepare(operation)

準備查詢,但不執行它。

adbc_read_partition(partition)

讀取分散式結果集的分區。

callproc(procname, parameters)

呼叫預存程序(不支援)。

close()

關閉游標並釋放資源。

execute(operation[, parameters])

執行查詢。

executemany(operation, seq_of_parameters)

使用多組參數執行查詢。

executescript(operation)

執行多個陳述式。

fetch_arrow_table()

將結果的所有列提取為 PyArrow 表格。

fetch_df()

將結果的所有列提取為 Pandas DataFrame。

fetch_record_batch()

將結果提取為 PyArrow RecordBatchReader。

fetchall()

提取結果的所有列。

fetchallarrow()

將結果的所有列提取為 PyArrow 表格。

fetchmany([size])

提取結果的某些列。

fetchone()

提取結果的一列。

next()

提取下一列,或引發 StopIteration。

nextset()

移動到下一個可用的結果集(不支援)。

setinputsizes(sizes)

為參數預先分配記憶體(無操作)。

setoutputsize(size[, column])

為結果集預先分配記憶體(無操作)。

adbc_cancel() None

取消此陳述式上任何進行中的操作。

筆記

這是一個擴充功能,並非 DBAPI 標準的一部分。

adbc_execute_partitions(operation, parameters=None) Tuple[List[bytes], Schema]

執行查詢並取得分散式結果集的分區。

傳回:
partitions位元組列表

分區描述符的列表,可以使用 read_partition 讀取。

schemapyarrow.Schema 或 None

結果集的綱要。如果啟用增量查詢執行,且伺服器尚未傳回綱要,則可能為 None。

筆記

這是一個擴充功能,並非 DBAPI 標準的一部分。

adbc_execute_schema(operation, parameters=None) Schema

取得查詢結果集的綱要,而不執行查詢。

傳回:
pyarrow.Schema

結果集的結構描述。

筆記

這是一個擴充功能,並非 DBAPI 標準的一部分。

adbc_ingest(table_name: str, data: RecordBatch | Table | RecordBatchReader, mode: Literal['append', 'create', 'replace', 'create_append'] = 'create', *, catalog_name: str | None = None, db_schema_name: str | None = None, temporary: bool = False) int

將 Arrow 資料擷取到資料庫表格中。

根據驅動程式的不同,這可以避免典型的 prepare-bind-insert 迴圈造成的每列額外負荷。

參數:
table_name

要插入的表格。

data

要插入的 Arrow 資料。這可以是 pyarrow RecordBatch、Table 或 RecordBatchReader,或任何實作 Arrow PyCapsule Protocol 的 Arrow 相容資料(即具有 __arrow_c_array____arrow_c_stream__ 方法)。

mode

如何處理現有資料

  • ‘append’:附加到表格(如果表格不存在則出錯)

  • ‘create’:建立表格並插入(如果表格存在則出錯)

  • ‘create_append’:建立表格(如果不存在)並插入

  • ‘replace’:捨棄現有表格(如果有的話),然後與 ‘create’ 相同

catalog_name

如果給定,則為要在其中建立/定位表格的目錄。此 API 為實驗性。

db_schema_name

如果給定,則為要在其中建立/定位表格的綱要。此 API 為實驗性。

temporary

是否擷取到臨時表格。大多數驅動程式將不支援同時設定此選項以及 catalog_name 和/或 db_schema_name。此 API 為實驗性。

傳回:
整數

插入的列數,如果驅動程式無法提供此資訊,則為 -1。

筆記

這是一個擴充功能,並非 DBAPI 標準的一部分。

adbc_prepare(operation: bytes | str) Schema | None

準備查詢,但不執行它。

若要在之後執行查詢,請使用相同的查詢呼叫 execute()executemany()。這不會再次準備查詢。

傳回:
pyarrow.Schema 或 None

繫結參數的綱要,如果無法判斷綱要,則為 None。

筆記

這是一個擴充功能,並非 DBAPI 標準的一部分。

adbc_read_partition(partition: bytes) None

讀取分散式結果集的分區。

筆記

這是一個擴充功能,並非 DBAPI 標準的一部分。

property adbc_statement: AdbcStatement

取得底層的 ADBC 陳述式。

筆記

這是一個擴充功能,並非 DBAPI 標準的一部分。

property arraysize: int

使用 fetchmany() 一次提取的列數。

callproc(procname, parameters)

呼叫預存程序(不支援)。

close()

關閉游標並釋放資源。

property connection: Connection

取得與此游標關聯的連線。

這是一個可選的 DB-API 擴充功能。

property description: List[tuple] | None

結果集的結構描述。

execute(operation: bytes | str, parameters=None) None

執行查詢。

參數:
operation位元組或字串

要執行的查詢。將 SQL 查詢作為字串傳遞,將(序列化的)Substrait 計劃作為位元組傳遞。

parameters

要綁定的參數。可以是 Python 序列(以提供一組參數),或 Arrow 記錄批次、表格或記錄批次讀取器(以提供多個參數,每個參數將依次綁定)。

executemany(operation: bytes | str, seq_of_parameters) None

使用多組參數執行查詢。

此方法不會產生結果集。

參數:
operation位元組或字串

要執行的查詢。將 SQL 查詢作為字串傳遞,將(序列化的)Substrait 計劃作為位元組傳遞。

seq_of_parameters

要綁定的參數。可以是 Python 序列的列表,或 Arrow 記錄批次、表格或記錄批次讀取器。如果為 None,則查詢將執行一次,否則將每列執行一次。

executescript(operation: str) None

執行多個陳述式。

如果存在擱置交易,則先提交。

筆記

這是一個擴充功能,並非 DBAPI 標準的一部分。

fetch_arrow_table() Table

將結果的所有列提取為 PyArrow 表格。

這實作了與 DuckDB 類似的 API。

筆記

這是一個擴充功能,並非 DBAPI 標準的一部分。

fetch_df() pandas.DataFrame

將結果的所有列提取為 Pandas DataFrame。

這實作了與 DuckDB 類似的 API。

筆記

這是一個擴充功能,並非 DBAPI 標準的一部分。

fetch_record_batch() RecordBatchReader

將結果提取為 PyArrow RecordBatchReader。

這實作了與 DuckDB 類似的 API:https://duckdb.org/docs/guides/python/export_arrow.html#export-as-a-recordbatchreader

筆記

這是一個擴充功能,並非 DBAPI 標準的一部分。

fetchall() List[tuple]

提取結果的所有列。

fetchallarrow() Table

將結果的所有列提取為 PyArrow 表格。

這實作了與 turbodbc 類似的 API。

筆記

這是一個擴充功能,並非 DBAPI 標準的一部分。

fetchmany(size: int | None = None) List[tuple]

提取結果的某些列。

fetchone() tuple | None

提取結果的一列。

next()

提取下一列,或引發 StopIteration。

nextset()

移動到下一個可用的結果集(不支援)。

property rowcount: int

取得結果集的列數,如果未知則為 -1。

property rownumber: int | None

取得目前的列號,如果不可應用則為 None。

setinputsizes(sizes)

為參數預先分配記憶體(無操作)。

setoutputsize(size, column=None)

為結果集預先分配記憶體(無操作)。

內部結構

請勿直接使用這些。

class adbc_driver_manager._lib._AdbcHandle

繼承:object

ADBC 控制代碼的基底類別,它們是上下文管理器。

class adbc_driver_manager.dbapi._Closeable

基底:ABC

提供上下文管理器介面的基底類別。

class adbc_driver_manager.dbapi._SharedDatabase(db: AdbcDatabase)

基底:_Closeable

共享 AdbcDatabase 的持有者。

例外

exception adbc_driver_manager.DatabaseError(message, *, status_code, vendor_code=None, sqlstate=None, details=None)

基底:Error

與資料庫相關的錯誤。

exception adbc_driver_manager.DataError(message, *, status_code, vendor_code=None, sqlstate=None, details=None)

基底:DatabaseError

與已處理資料相關的錯誤。

exception adbc_driver_manager.Error(message, *, status_code, vendor_code=None, sqlstate=None, details=None)

基底:Exception

符合 PEP 249 的基底例外類別。

屬性:
status_codeAdbcStatusCode

原始 ADBC 狀態代碼。

vendor_codeint,可選

如果存在,則為供應商特定的狀態代碼。

sqlstate字串,可選

如果存在,則為 SQLSTATE 代碼。

detailslist[tuple[str, bytes]],可選

其他錯誤詳細資訊(如果存在)。

exception adbc_driver_manager.IntegrityError(message, *, status_code, vendor_code=None, sqlstate=None, details=None)

基底:DatabaseError

與關聯完整性相關的錯誤。

exception adbc_driver_manager.InterfaceError(message, *, status_code, vendor_code=None, sqlstate=None, details=None)

基底:Error

與資料庫介面相關的錯誤。

exception adbc_driver_manager.InternalError(message, *, status_code, vendor_code=None, sqlstate=None, details=None)

基底:DatabaseError

與資料庫內部錯誤相關的錯誤。

exception adbc_driver_manager.NotSupportedError(message, *, vendor_code=None, sqlstate=None, details=None)

基底:DatabaseError

不支援的操作或某些功能。

exception adbc_driver_manager.OperationalError(message, *, status_code, vendor_code=None, sqlstate=None, details=None)

基底:DatabaseError

與資料庫操作相關的錯誤,不在使用者控制範圍內。

exception adbc_driver_manager.ProgrammingError(message, *, status_code, vendor_code=None, sqlstate=None, details=None)

基底:DatabaseError

與使用者錯誤相關的錯誤。

exception adbc_driver_manager.Warning

基底:UserWarning

符合 PEP 249 標準的基底警告類別。