adbc_driver_manager

底层 API

用于 Python 的底层 ADBC 绑定。

根模块提供了 Python 中 C API 定义的相当直接的 1:1 映射。对于更高级别的接口,请使用 adbc_driver_manager.dbapi。(这需要 PyArrow。)

常量 & 枚举

class adbc_driver_manager.AdbcStatusCode(*values)

基类: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(*values)

基类:IntEnum

要为 adbc_get_objects 获取多少数据。

ALL = 0
CATALOGS = 1
COLUMNS = 0
DB_SCHEMAS = 2
TABLES = 3
class adbc_driver_manager.ConnectionOptions(*values)

基类: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(*values)

基类:Enum

驱动程序之间标准化的数据库选项。

并非所有驱动程序都支持所有选项。

PASSWORD = 'password'

设置用于用户名-密码验证的密码。

URI = 'uri'

要连接的 URI。

USERNAME = 'username'

设置用于用户名-密码验证的用户名。

class adbc_driver_manager.StatementOptions(*values)

基类: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 schema。

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 or 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 schema。

返回:
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 or 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。

int

如果已知行数,则为行数;否则为 -1。

execute_query() Tuple[ArrowArrayStreamHandle, int]

执行查询并获取结果集。

返回:
ArrowArrayStreamHandle

结果集。

int

如果已知行数,则为行数;否则为 -1。

execute_schema() ArrowSchemaHandle

获取结果集的模式,无需执行查询。

返回:
ArrowSchemaHandle

结果集的模式。

execute_update() int

执行查询,不带结果集。

返回:
int

如果已知受影响的行数,则为行数;否则为 -1。

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

获取字符串选项的值。

参数:
keystr or 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 Driver Manager 的 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

当前 schema 的名称。

adbc_database

获取底层 ADBC 数据库。

方法

adbc_cancel()

取消此连接上任何正在进行的操作。

adbc_clone()

创建一个新的 Connection,它与底层数据库共享同一个底层数据库。

adbc_get_info()

获取有关数据库和驱动程序的元数据。

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

列出目录、schema、表等。

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

按名称获取表的 Arrow schema。

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 标准的一部分。

属性 adbc_current_db_schema: str

当前 schema 的名称。

说明

这是一个扩展,不是 DBAPI 标准的一部分。

属性 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 schema。

参数:
table_name (表名)

要获取模式的表。

catalog_filter (目录过滤器)

catalog_filter (目录过滤器)

db_schema_filter (数据库模式过滤器)

An optional filter on the database schema name of the table.

说明

这是一个扩展,不是 DBAPI 标准的一部分。

adbc_get_table_types() List[str]

列出服务器知道的表类型。

说明

这是一个扩展,不是 DBAPI 标准的一部分。

close() None

关闭连接。

Warning

Failure to close a connection may leak memory or database connections.

commit() None

显式提交。

cursor() Cursor

创建一个新的游标来查询数据库。

rollback() None

显式回滚。

class adbc_driver_manager.dbapi.Cursor(conn: Connection)

基类: _Closeable

A DB-API 2.0 (PEP 249) cursor.

Do not create this object directly; use Connection.cursor().

属性:
adbc_statement

Get the underlying ADBC statement.

arraysize

The number of rows to fetch at a time with fetchmany().

connection

Get the connection associated with this cursor.

description

结果集的模式。

rowcount

Get the row count of the result set, or -1 if not known.

rownumber

Get the current row number, or None if not applicable.

方法

adbc_cancel()

Cancel any ongoing operations on this statement.

adbc_execute_partitions(operation[, parameters])

Execute a query and get the partitions of a distributed result set.

adbc_execute_schema(operation[, parameters])

Get the schema of the result set of a query without executing it.

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

Ingest Arrow data into a database table.

adbc_prepare(operation)

Prepare a query without executing it.

adbc_read_partition(partition)

Read a partition of a distributed result set.

callproc(procname, parameters)

Call a stored procedure (not supported).

close()

Close the cursor and free resources.

execute(operation[, parameters])

Execute a query.

executemany(operation, seq_of_parameters)

Execute a query with multiple parameter sets.

executescript(operation)

Execute multiple statements.

fetch_arrow_table()

Fetch all rows of the result as a PyArrow Table.

fetch_df()

Fetch all rows of the result as a Pandas DataFrame.

fetch_record_batch()

Fetch the result as a PyArrow RecordBatchReader.

fetchall()

Fetch all rows of the result.

fetchallarrow()

Fetch all rows of the result as a PyArrow Table.

fetchmany([size])

Fetch some rows of the result.

fetchone()

Fetch one row of the result.

next()

Fetch the next row, or raise StopIteration.

nextset()

Move to the next available result set (not supported).

setinputsizes(sizes)

Preallocate memory for the parameters (no-op).

setoutputsize(size[, column])

Preallocate memory for the result set (no-op).

adbc_cancel() None

Cancel any ongoing operations on this statement.

说明

这是一个扩展,不是 DBAPI 标准的一部分。

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

Execute a query and get the partitions of a distributed result set.

返回:
partitionsbyte列表

分区描述符列表,可以使用 read_partition 读取。

schemapyarrow.Schema 或 None

结果集的模式。如果启用了增量查询执行且服务器尚未返回模式,则可能为 None。

说明

这是一个扩展,不是 DBAPI 标准的一部分。

adbc_execute_schema(operation, parameters=None) Schema

Get the schema of the result set of a query without executing it.

返回:
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

Ingest Arrow data into a database table.

根据驱动程序的不同,这可以避免典型的 prepare-bind-insert 循环可能导致的逐行开销。

参数:
table_name (表名)

要插入的表。

data

要插入的 Arrow 数据。这可以是 pyarrow RecordBatch、Table 或 RecordBatchReader,或者任何实现 Arrow PyCapsule 协议的 Arrow 兼容数据(即,具有 __arrow_c_array____arrow_c_stream__ 方法)。

mode

如何处理现有数据

  • ‘append’:追加到表(如果表不存在则出错)

  • ‘create’:创建表并插入(如果表存在则出错)

  • ‘create_append’:创建表(如果不存在)并插入

  • ‘replace’:删除现有表(如果有),然后与 ‘create’ 相同

catalog_name

如果给定,则是在其中创建/定位表的目录。 此 API 处于实验阶段。

db_schema_name

如果给定,则是在其中创建/定位表的 schema。 此 API 处于实验阶段。

temporary

是否摄取到临时表。大多数驱动程序将不支持将此设置与 catalog_name 和/或 db_schema_name 一起使用。 此 API 处于实验阶段。

返回:
int

插入的行数;如果驱动程序无法提供此信息,则为 -1。

说明

这是一个扩展,不是 DBAPI 标准的一部分。

adbc_prepare(operation: bytes | str) Schema | None

Prepare a query without executing it.

要在之后执行查询,请使用相同的查询调用 execute()executemany()。这不会第二次准备查询。

返回:
pyarrow.Schema 或 None

绑定参数的模式;如果无法确定模式,则为 None。

说明

这是一个扩展,不是 DBAPI 标准的一部分。

adbc_read_partition(partition: bytes) None

Read a partition of a distributed result set.

说明

这是一个扩展,不是 DBAPI 标准的一部分。

property adbc_statement: AdbcStatement

Get the underlying ADBC statement.

说明

这是一个扩展,不是 DBAPI 标准的一部分。

property arraysize: int

The number of rows to fetch at a time with fetchmany().

callproc(procname, parameters)

Call a stored procedure (not supported).

close()

Close the cursor and free resources.

property connection: Connection

Get the connection associated with this cursor.

这是一个可选的 DB-API 扩展。

property description: List[tuple] | None

结果集的模式。

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

Execute a query.

参数:
operationbytes 或 str

要执行的查询。将 SQL 查询作为字符串传递,将(序列化的)Substrait 计划作为字节传递。

parameters

要绑定的参数。可以是 Python 序列(以提供一组参数),也可以是 Arrow 记录批次、表或记录批次读取器(以提供多个参数,每个参数将依次绑定)。

executemany(operation: bytes | str, seq_of_parameters) None

Execute a query with multiple parameter sets.

此方法不生成结果集。

参数:
operationbytes 或 str

要执行的查询。将 SQL 查询作为字符串传递,将(序列化的)Substrait 计划作为字节传递。

seq_of_parameters

要绑定的参数。可以是 Python 序列的列表,也可以是 Arrow 记录批处理、表格或记录批处理读取器。如果为 None,则查询将执行一次,否则将为每行执行一次。

executescript(operation: str) None

Execute multiple statements.

如果存在挂起的事务,则先提交。

说明

这是一个扩展,不是 DBAPI 标准的一部分。

fetch_arrow_table() Table

Fetch all rows of the result as a PyArrow Table.

此实现与 DuckDB 类似的 API。

说明

这是一个扩展,不是 DBAPI 标准的一部分。

fetch_df() pandas.DataFrame

Fetch all rows of the result as a Pandas DataFrame.

此实现与 DuckDB 类似的 API。

说明

这是一个扩展,不是 DBAPI 标准的一部分。

fetch_record_batch() RecordBatchReader

Fetch the result as a PyArrow RecordBatchReader.

此实现与 DuckDB 类似的 API: https://duckdb.org/docs/guides/python/export_arrow.html#export-as-a-recordbatchreader

说明

这是一个扩展,不是 DBAPI 标准的一部分。

fetchall() List[tuple]

Fetch all rows of the result.

fetchallarrow() Table

Fetch all rows of the result as a PyArrow Table.

此实现与 turbodbc 类似的 API。

说明

这是一个扩展,不是 DBAPI 标准的一部分。

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

Fetch some rows of the result.

fetchone() tuple | None

Fetch one row of the result.

next()

Fetch the next row, or raise StopIteration.

nextset()

Move to the next available result set (not supported).

property rowcount: int

Get the row count of the result set, or -1 if not known.

property rownumber: int | None

Get the current row number, or None if not applicable.

setinputsizes(sizes)

Preallocate memory for the parameters (no-op).

setoutputsize(size, column=None)

Preallocate memory for the result set (no-op).

内部

请勿直接使用这些。

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, optional

如果存在,则为供应商特定的状态代码。

sqlstatestr, optional

SQLSTATE 代码(如果存在)。

detailslist[tuple[str, bytes]], optional

其他错误详细信息(如果存在)。

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的基本警告类。