ADBC
Arrow 数据库连接
|
AdbcConnection 的 CRTP 基类实现。更多...
#include <connection.h>
公共类型 | |
枚举类 | AutocommitState { kAutocommit , kTransaction } |
是否启用自动提交(默认:启用)。更多... | |
using | Base = Connection<Derived> |
公共成员函数 | |
AdbcStatusCode | Init (void *parent, AdbcError *error) override |
初始化对象。 | |
AdbcStatusCode | Cancel (AdbcError *error)(取消) |
AdbcStatusCode | Commit (AdbcError *error)(提交) |
AdbcStatusCode | GetInfo (const uint32_t *info_codes, size_t info_codes_length, ArrowArrayStream *out, AdbcError *error)(获取信息) |
AdbcStatusCode | GetObjects (int c_depth, const char *catalog, const char *db_schema, const char *table_name, const char **table_type, const char *column_name, ArrowArrayStream *out, AdbcError *error)(获取对象) |
Result< Option > | GetOption (std::string_view key) override(获取选项) |
获取选项值。 | |
AdbcStatusCode | GetStatistics (const char *catalog, const char *db_schema, const char *table_name, char approximate, ArrowArrayStream *out, AdbcError *error)(获取统计信息) |
AdbcStatusCode | GetStatisticNames (ArrowArrayStream *out, AdbcError *error)(获取统计信息名称) |
AdbcStatusCode | GetTableSchema (const char *catalog, const char *db_schema, const char *table_name, ArrowSchema *schema, AdbcError *error)(获取表模式) |
AdbcStatusCode | GetTableTypes (ArrowArrayStream *out, AdbcError *error)(获取表类型) |
AdbcStatusCode | ReadPartition (const uint8_t *serialized_partition, size_t serialized_length, ArrowArrayStream *out, AdbcError *error)(读取分区) |
AdbcStatusCode | Release (AdbcError *error) override(释放) |
终结对象。 | |
AdbcStatusCode | Rollback (AdbcError *error)(回滚) |
AdbcStatusCode | SetOption (std::string_view key, Option value, AdbcError *error) override(设置选项) |
设置选项值。 | |
Status(状态) | CommitImpl(提交实现) () |
提交当前事务并开始一个新事务。 | |
Result< std::optional< std::string > > | GetCurrentCatalogImpl(获取当前目录实现) () |
Result< std::optional< std::string > > | GetCurrentSchemaImpl(获取当前模式实现) () |
Result< std::unique_ptr< GetObjectsHelper > > | GetObjectsImpl(获取对象实现) () |
查询数据库目录。 | |
Status | **GetTableSchemaImpl** (std::optional< std::string_view > catalog, std::optional< std::string_view > db_schema, std::string_view table_name, ArrowSchema *schema)(获取表模式实现) |
Result< std::vector< std::string > > | GetTableTypesImpl(获取表类型实现) () |
Result< std::vector< InfoValue > > | **InfoImpl** (const std::vector< uint32_t > &codes)(信息实现) |
Status | **InitImpl** (void *parent)(初始化实现) |
Status | ReleaseImpl(释放实现) () |
Status | RollbackImpl(回滚实现) () |
Status | **SetOptionImpl** (std::string_view key, Option value)(设置选项实现) |
Status | **ToggleAutocommitImpl** (bool enable_autocommit)(切换自动提交实现) |
保护属性 | |
AutocommitState | **autocommit_** = AutocommitState::kAutocommit |
从 adbc::driver::ObjectBase 继承的保护属性 | |
LifecycleState(生命周期状态) | lifecycle_state_(生命周期状态) |
私有成员函数 | |
Derived & | impl(实现) () |
AdbcConnection 的 CRTP 基类实现。
Derived 应该重写并实现 Impl 方法,而不是其他方法。重写的方法应该在最后defer到超类版本。(Base typedef 提供是为了简化此操作。)Derived 还应该定义一个名为 kErrorPrefix 的 constexpr 静态符号,用于构造错误消息。
|
strong |
是否启用自动提交(默认:启用)。
|
inline |
提交当前事务并开始一个新事务。
仅在禁用自动提交时调用。
|
inline |
查询数据库目录。
默认实现假定底层数据库允许以某种方式查询目录,体现在此处返回的辅助类中。如果数据库可以直接实现 GetObjects,则直接重写 GetObjects 而不是使用此辅助程序。
|
inlineoverridevirtual |
获取选项值。
从 adbc::driver::ObjectBase 重新实现。
|
inlineoverridevirtual |
初始化对象。
在调用 0 次或多次 SetOption 后调用。通常,您不需要直接覆盖此方法。相反,请使用 Database/Connection/Statement 提供的类型化 InitImpl。
[in] | parent(父级) | 指向 AdbcDatabase 或 AdbcConnection 实现的指针(如果适用),或者为 nullptr。 |
从 adbc::driver::ObjectBase 重新实现。
|
inlineoverridevirtual |
终结对象。
如果对象处于无效状态(例如,防止关闭具有打开语句的连接),或者在资源清理可能失败时清理资源,则可以使用此方法返回错误。稳定资源清理(例如,释放内存)通常应在析构函数中处理。
通常,您不需要直接覆盖此方法。相反,请使用 Database/Connection/Statement 提供的类型化 ReleaseImpl。
从 adbc::driver::ObjectBase 重新实现。
|
inlineoverridevirtual |
设置选项值。
从 adbc::driver::ObjectBase 重新实现。