adbc_driver_manager

低级 API

用于 Python 的低级 ADBC 绑定。

根模块提供了对 Python 中 C API 定义的相当直接的 1:1 映射。对于更高级别的接口,请使用 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)

Bases: 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)

Bases: 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)

Bases: 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)

Bases: 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)

Bases: 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。

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 或 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

Bases: object

分配的 ArrowArray 的包装器。

此对象实现了 Arrow PyCapsule 接口。

属性:
address

ArrowArray 的地址。

address

ArrowArray 的地址。

class adbc_driver_manager.ArrowArrayStreamHandle

Bases: object

分配的 ArrowArrayStream 的包装器。

此对象实现了 Arrow PyCapsule 接口。

属性:
address

ArrowArrayStream 的地址。

address

ArrowArrayStream 的地址。

class adbc_driver_manager.ArrowSchemaHandle

Bases: object

分配的 ArrowSchema 的包装器。

此对象实现了 Arrow PyCapsule 接口。

属性:
address

ArrowSchema 的地址。

address

ArrowSchema 的地址。

DBAPI 2.0 API

ADBC 驱动程序管理器的 PEP 249(DB-API 2.0)API 包装器。

资源管理

您必须close() 连接和游标对象,否则驱动程序资源可能会泄漏。__del__ 作为后备实现,但 Python 不保证何时调用它。对于开发,__del__ 在 pytest 下运行或环境变量 _ADBC_DRIVER_MANAGER_WARN_UNCLOSED_RESOURCE 设置为 1 时将引发 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。这也可能是在 Linux 系统上加载的库的路径。

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)

Bases: _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)

Bases: _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 协议的 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 处于实验阶段。**

返回值:
int

插入的行数,如果驱动程序无法提供此信息,则为 -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 计划作为字节传递。

参数

要绑定的参数。可以是 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

Bases: object

ADBC 句柄的基类,ADBC 句柄是上下文管理器。

class adbc_driver_manager.dbapi._Closeable

Bases: ABC

提供上下文管理器接口的基类。

class adbc_driver_manager.dbapi._SharedDatabase(db: AdbcDatabase)

Bases: _Closeable

共享 AdbcDatabase 的持有者。

异常

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

Bases: Error

与数据库相关的错误。

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

Bases: DatabaseError

与处理数据相关的错误。

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

Bases: Exception

符合 PEP 249 的基本异常类。

属性:
status_codeAdbcStatusCode

原始 ADBC 状态代码。

vendor_codeint,可选

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

sqlstatestr,可选

如果存在,则为 SQLSTATE 代码。

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

如果存在,则为其他错误详细信息。

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

Bases: DatabaseError

与关系完整性相关的错误。

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

Bases: Error

与数据库接口相关的错误。

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

Bases: DatabaseError

与数据库内部错误相关的错误。

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

Bases: DatabaseError

某个操作或功能不受支持。

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

Bases: DatabaseError

与数据库操作相关的错误,不受用户控制。

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

Bases: DatabaseError

与用户错误相关的错误。

exception adbc_driver_manager.Warning

Bases: UserWarning

符合 PEP 249 的基本警告类。