userver: userver/storages/clickhouse/io/io_fwd.hpp Source File
Loading...
Searching...
No Matches
io_fwd.hpp
Go to the documentation of this file.
1#pragma once
2
3/// @file userver/storages/clickhouse/io/io_fwd.hpp
4/// @brief Customization point for Ch driver C++ <-> ClickHouse mappings.
5
6USERVER_NAMESPACE_BEGIN
7
8namespace storages::clickhouse::io {
9
10// clang-format off
11/// @page clickhouse_io
12///
13/// uClickHouse driver doesn't expose underlying ClickHouse types and only provides a
14/// way to convert results to strongly-typed structs/containers
15/// (see storages::clickhouse::ExecutionResult).
16///
17/// As naive mapping is ambiguous for some types, namely for chrono and string,
18/// explicit mapping is required by the driver - explicit specialization of
19/// `CppToClickhouse` template.
20///
21/// @section types Supported Clickhouse types:
22/// - DateTime @ref storages::clickhouse::io::columns::DateTimeColumn
23/// - DateTime64([3, 6, 9]) @ref storages::clickhouse::io::columns::DateTime64Column
24/// - Int8 @ref storages::clickhouse::io::columns::Int8Column
25/// - Int32 @ref storages::clickhouse::io::columns::Int32Column
26/// - Int64 @ref storages::clickhouse::io::columns::Int64Column
27/// - UInt8 @ref storages::clickhouse::io::columns::UInt8Column
28/// - UInt16 @ref storages::clickhouse::io::columns::UInt16Column
29/// - UInt32 @ref storages::clickhouse::io::columns::UInt32Column
30/// - UInt64 @ref storages::clickhouse::io::columns::UInt64Column
31/// - String @ref storages::clickhouse::io::columns::StringColumn
32/// - UUID @ref storages::clickhouse::io::columns::UuidColumn
33/// - Nullable @ref storages::clickhouse::io::columns::NullableColumn
34/// - Float32 @ref storages::clickhouse::io::columns::Float32Column
35/// - Float64 @ref storages::clickhouse::io::columns::Float64Column
36///
37/// ## Example usage:
38///
39/// @snippet storages/tests/execute_chtest.cpp Sample CppToClickhouse specialization
40// clang-format on
41template <typename T>
42struct CppToClickhouse;
43
44} // namespace storages::clickhouse::io
45
46USERVER_NAMESPACE_END