|
10 | 10 | #include <userver/storages/postgres/result_set.hpp> |
11 | 11 | #include <userver/storages/postgres/transaction.hpp> |
12 | 12 |
|
13 | | -/// @page pg_driver uPg Driver |
14 | | -/// |
15 | | -/// **Quality:** @ref QUALITY_TIERS "Platinum Tier". |
16 | | -/// |
17 | | -/// 🐙 **userver** provides access to PostgreSQL database servers via |
18 | | -/// components::Postgres. The uPg driver is asynchronous, it suspends |
19 | | -/// current coroutine for carrying out network I/O. |
20 | | -/// |
21 | | -/// @section features Features |
22 | | -/// - PostgreSQL cluster topology discovery; |
23 | | -/// - Manual cluster sharding (access to shard clusters by index); |
24 | | -/// - Connection pooling; |
25 | | -/// - Queries are transparently converted to prepared statements to use less |
26 | | -/// network on next execution, give the database more optimization freedom, |
27 | | -/// avoid the need for parameters escaping as the latter are now send |
28 | | -/// separately from the query; |
29 | | -/// - Automatic PgaaS topology discovery; |
30 | | -/// - Selecting query target (master/slave); |
31 | | -/// - Connection failover; |
32 | | -/// - Transaction support; |
33 | | -/// - Variadic template query parameter passing; |
34 | | -/// - Query result extraction to C++ types; |
35 | | -/// - More effective binary protocol usage for communication rather than the |
36 | | -/// libpq's text protocol; |
37 | | -/// - Caching the low-level database (D)escribe responses to save about a half |
38 | | -/// of network bandwidth on select statements that return multiple columns |
39 | | -/// (compared to the libpq implementation); |
40 | | -/// - Portals for effective background cache updates; |
41 | | -/// - Queries pipelining to execute multiple queries in one network roundtrip |
42 | | -/// (for example `begin + set transaction timeout + insert` result in one |
43 | | -/// roundtrip); |
44 | | -/// - Ability to manually control network roundtrips via |
45 | | -/// storages::postgres::QueryQueue to gain maximum efficiency |
46 | | -/// in case of multiple unrelated select statements; |
47 | | -/// - Mapping PostgreSQL user types to C++ types; |
48 | | -/// - Transaction error injection via pytest_userver.sql.RegisteredTrx; |
49 | | -/// - LISTEN/NOTIFY support via storages::postgres::Cluster::Listen(); |
50 | | -/// - @ref scripts/docs/en/userver/deadline_propagation.md . |
51 | | -/// |
52 | | -/// @section toc More information |
53 | | -/// - For configuration see components::Postgres |
54 | | -/// - For cluster topology see storages::postgres::Cluster |
55 | | -/// - @ref pg_transactions |
56 | | -/// - @ref pg_run_queries |
57 | | -/// - @ref pg_process_results |
58 | | -/// - @ref scripts/docs/en/userver/pg_types.md |
59 | | -/// - @ref scripts/docs/en/userver/pg_user_types.md |
60 | | -/// - @ref pg_errors |
61 | | -/// - @ref pg_topology |
62 | | -/// |
63 | | -/// ---------- |
64 | | -/// |
65 | | -/// @htmlonly <div class="bottom-nav"> @endhtmlonly |
66 | | -/// ⇦ @ref scripts/docs/en/userver/lru_cache.md | @ref pg_transactions ⇨ |
67 | | -/// @htmlonly </div> @endhtmlonly |
68 | | - |
69 | 13 | USERVER_NAMESPACE_BEGIN |
70 | 14 |
|
71 | 15 | namespace storages { |
|
0 commit comments