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

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

#include <connection.h>

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

公共类型

enum class  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 方法,但不能实现其他方法。 重写的方法应该最后调用超类版本。(提供了 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

查询数据库目录。

默认实现假定底层数据库允许以某种方式查询目录,该方式体现在此处返回的 helper 类中。 如果数据库可以直接实现 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 重新实现。


此类文档由以下文件生成