ADBC
Arrow 数据库连接
加载中...
搜索中...
无匹配项
adbc::driver::Connection< Derived > 类模板参考

AdbcConnection 的 CRTP 基类实现。更多...

#include <connection.h>

adbc::driver::Connection< Derived > 的继承关系图
adbc::driver::ObjectBase

公共类型

枚举类  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< OptionGetOption (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(实现) ()
 

详细描述

template<typename Derived>
class adbc::driver::Connection< Derived >

AdbcConnection 的 CRTP 基类实现。

Derived 应该重写并实现 Impl 方法,而不是其他方法。重写的方法应该在最后defer到超类版本。(Base typedef 提供是为了简化此操作。)Derived 还应该定义一个名为 kErrorPrefix 的 constexpr 静态符号,用于构造错误消息。

成员枚举文档

◆ AutocommitState(自动提交状态)

template<typename Derived >
enum class adbc::driver::Connection::AutocommitState
strong

是否启用自动提交(默认:启用)。

成员函数文档

◆ CommitImpl()(提交实现)

template<typename Derived >
Status adbc::driver::Connection< Derived >::CommitImpl ( )
inline

提交当前事务并开始一个新事务。

仅在禁用自动提交时调用。

◆ GetObjectsImpl()(获取对象实现)

template<typename Derived >
Result< std::unique_ptr< GetObjectsHelper > > adbc::driver::Connection< Derived >::GetObjectsImpl ( )
inline

查询数据库目录。

默认实现假定底层数据库允许以某种方式查询目录,体现在此处返回的辅助类中。如果数据库可以直接实现 GetObjects,则直接重写 GetObjects 而不是使用此辅助程序。

◆ GetOption()(获取选项)

template<typename Derived >
Result< Option > adbc::driver::Connection< Derived >::GetOption ( std::string_view key(键))
inlineoverridevirtual

获取选项值。

adbc::driver::ObjectBase 重新实现。

◆ Init()(初始化)

template<typename Derived >
AdbcStatusCode adbc::driver::Connection< Derived >::Init ( void * parent(父级),
AdbcError(错误) * error )
inlineoverridevirtual

初始化对象。

在调用 0 次或多次 SetOption 后调用。通常,您不需要直接覆盖此方法。相反,请使用 Database/Connection/Statement 提供的类型化 InitImpl。

参数
[in]parent(父级)指向 AdbcDatabaseAdbcConnection 实现的指针(如果适用),或者为 nullptr。

adbc::driver::ObjectBase 重新实现。

◆ Release()(释放)

template<typename Derived >
AdbcStatusCode adbc::driver::Connection< Derived >::Release ( AdbcError(错误) * error(错误))
inlineoverridevirtual

终结对象。

如果对象处于无效状态(例如,防止关闭具有打开语句的连接),或者在资源清理可能失败时清理资源,则可以使用此方法返回错误。稳定资源清理(例如,释放内存)通常应在析构函数中处理。

通常,您不需要直接覆盖此方法。相反,请使用 Database/Connection/Statement 提供的类型化 ReleaseImpl。

adbc::driver::ObjectBase 重新实现。

◆ SetOption()(设置选项)

template<typename Derived >
AdbcStatusCode adbc::driver::Connection< Derived >::SetOption ( std::string_view key(键),
Option(选项) value(值),
AdbcError(错误) * error )
inlineoverridevirtual

设置选项值。

adbc::driver::ObjectBase 重新实现。


此类的文档是从以下文件生成的