userver: storages::clickhouse::ExecutionResult Class Reference
⚠️ This is the documentation for an old userver version. Click here to switch to the latest version.
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Modules Pages Concepts
storages::clickhouse::ExecutionResult Class Referencefinal

#include <userver/storages/clickhouse/execution_result.hpp>

Public Member Functions

 ExecutionResult (impl::BlockWrapperPtr)
 
 ExecutionResult (ExecutionResult &&) noexcept
 
size_t GetColumnsCount () const
 Returns number of columns in underlying block.
 
size_t GetRowsCount () const
 Returns number of rows in underlying block columns.
 
template<typename T >
As () &&
 
template<typename T >
auto AsRows () &&
 
template<typename Container >
Container AsContainer () &&
 

Detailed Description

Thin wrapper over underlying block of data, returned by storages::clickhouse::Cluster Execute methods

Usage example:

namespace {
struct Data final {
std::vector<uint64_t> numbers;
std::vector<std::string> strings;
std::vector<uint64_t> other_numbers;
std::vector<std::chrono::system_clock::time_point> tps;
};
struct RowData final {
uint64_t number;
std::string string;
uint64_t other_number;
std::chrono::system_clock::time_point tp;
};
} // namespace
template <>
struct CppToClickhouse<Data> final {
using mapped_type =
std::tuple<columns::UInt64Column, columns::StringColumn,
columns::UInt64Column, columns::DateTime64ColumnNano>;
};
template <>
struct CppToClickhouse<RowData> final {
using mapped_type =
std::tuple<columns::UInt64Column, columns::StringColumn,
columns::UInt64Column, columns::DateTime64ColumnNano>;
};
} // namespace storages::clickhouse::io
const Data as_columns{cluster->Execute(common_query).As<Data>()};
const std::vector<RowData> as_rows{
cluster->Execute(common_query).AsContainer<std::vector<RowData>>()};
const auto as_rows_iterable{cluster->Execute(common_query).AsRows<RowData>()};

Definition at line 32 of file execution_result.hpp.

Member Function Documentation

◆ As()

template<typename T >
T storages::clickhouse::ExecutionResult::As ( ) &&

Converts underlying block to strongly-typed struct of vectors. See clickhouse_io for better understanding of T's requirements.

Definition at line 65 of file execution_result.hpp.

◆ AsContainer()

template<typename Container >
Container storages::clickhouse::ExecutionResult::AsContainer ( ) &&

Converts underlying block to strongly-typed container. See clickhouse_io for better understanding of Container::value_type's requirements.

Definition at line 89 of file execution_result.hpp.

◆ AsRows()

template<typename T >
auto storages::clickhouse::ExecutionResult::AsRows ( ) &&

Converts underlying block to iterable of strongly-typed struct. See clickhouse_io for better understanding of T's requirements.

Definition at line 80 of file execution_result.hpp.


The documentation for this class was generated from the following file: