⚠️ This is the documentation for an old userver version. Click here to switch to the latest version.
userver
C++ Async Framework v2.0
Documentation
API Groups
Namespaces
Reference
Namespace Members
All
_
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
r
s
t
u
v
w
y
Functions
_
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
r
s
t
u
w
y
Variables
k
n
r
u
w
Typedefs
c
d
h
m
n
o
p
s
t
u
v
Enumerations
a
b
c
d
f
h
i
l
o
p
r
s
t
u
v
Class List
Class Index
Class Hierarchy
Class Members
All
_
a
b
c
d
e
f
g
h
i
k
l
m
n
o
p
q
r
s
t
u
v
w
y
~
Functions
_
a
b
c
d
e
f
g
h
i
k
l
m
n
o
p
q
r
s
t
u
v
w
y
~
Variables
a
b
c
d
e
f
g
h
i
k
l
m
n
o
p
q
r
s
t
u
v
w
Typedefs
Enumerations
Enumerator
Related Symbols
File List
File Members
All
e
i
l
r
t
u
Functions
Macros
e
i
l
r
t
u
Examples
Toggle main menu visibility
•
All
Classes
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Friends
Macros
Modules
Pages
Concepts
Loading...
Searching...
No Matches
All results
postgres.hpp
Go to the documentation of this file.
1
#
pragma
once
2
3
/// @file userver/storages/postgres/postgres.hpp
4
/// This file is mainly for documentation purposes and inclusion of all headers
5
/// that are required for working with PostgreSQL userver component.
6
7
#
include
<
userver
/
storages
/
postgres
/
cluster
.
hpp
>
8
#
include
<
userver
/
storages
/
postgres
/
component
.
hpp
>
9
#
include
<
userver
/
storages
/
postgres
/
exceptions
.
hpp
>
10
#
include
<
userver
/
storages
/
postgres
/
result_set
.
hpp
>
11
#
include
<
userver
/
storages
/
postgres
/
transaction
.
hpp
>
12
13
/// @page pg_driver uPg Driver
14
///
15
/// 🐙 **userver** provides access to PostgreSQL database servers via
16
/// components::Postgres. The uPg driver is asynchronous, it suspends
17
/// current coroutine for carrying out network I/O.
18
///
19
/// @section features Features
20
/// - PostgreSQL cluster topology discovery;
21
/// - Manual cluster sharding (access to shard clusters by index);
22
/// - Connection pooling;
23
/// - Queries are transparently converted to prepared statements to use less
24
/// network on next execution, give the database more optimization freedom,
25
/// avoid the need for parameters escaping as the latter are now send
26
/// separately from the query;
27
/// - Automatic PgaaS topology discovery;
28
/// - Selecting query target (master/slave);
29
/// - Connection failover;
30
/// - Transaction support;
31
/// - Variadic template query parameter passing;
32
/// - Query result extraction to C++ types;
33
/// - More effective binary protocol usage for communication rather than the
34
/// libpq's text protocol;
35
/// - Caching the low-level database (D)escribe responses to save about a half
36
/// of network bandwidth on select statements that return multiple columns
37
/// (compared to the libpq implementation);
38
/// - Portals for effective background cache updates;
39
/// - Queries pipelining to execute multiple queries in one network roundtrip
40
/// (for example `begin + set transaction timeout + insert` result in one
41
/// roundtrip);
42
/// - Ability to manually control network roundtrips via
43
/// storages::postgres::QueryQueue to gain maximum efficiency
44
/// in case of multiple unrelated select statements;
45
/// - Mapping PostgreSQL user types to C++ types;
46
/// - Transaction error injection via pytest_userver.sql.RegisteredTrx;
47
/// - LISTEN/NOTIFY support via storages::postgres::Cluster::Listen();
48
/// - @ref scripts/docs/en/userver/deadline_propagation.md .
49
///
50
/// @section toc More information
51
/// - For configuration see components::Postgres
52
/// - For cluster topology see storages::postgres::Cluster
53
/// - @ref pg_transactions
54
/// - @ref pg_run_queries
55
/// - @ref pg_process_results
56
/// - @ref pg_types
57
/// - @ref pg_user_types
58
/// - @ref pg_errors
59
/// - @ref pg_topology
60
///
61
/// ----------
62
///
63
/// @htmlonly <div class="bottom-nav"> @endhtmlonly
64
/// ⇦ @ref scripts/docs/en/userver/lru_cache.md | @ref pg_transactions ⇨
65
/// @htmlonly </div> @endhtmlonly
66
67
USERVER_NAMESPACE_BEGIN
68
69
namespace
storages
{
70
/// @brief Top namespace for uPg driver
71
///
72
/// For more information see @ref pg_driver
73
namespace
postgres
{
74
/// @brief uPg input-output.
75
///
76
/// Namespace containing classes and functions for defining datatype
77
/// input-output and specifying mapping between C++ and PostgreSQL types.
78
namespace
io
{
79
/// @brief uPg input-output traits.
80
///
81
/// Namespace with metafunctions detecting different type traits needed for
82
/// PostgreSQL input-output operations
83
namespace
traits
{}
// namespace traits
84
}
// namespace io
85
}
// namespace postgres
86
}
// namespace storages
87
88
USERVER_NAMESPACE_END
Docs version:
v1.0
,
v2.0
,
trunk/develop
userver
storages
postgres
postgres.hpp
Generated on Wed May 15 2024 22:30:14 for userver by
Doxygen
1.10.0