userver: storages::postgres::ResultSet 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::postgres::ResultSet Class Reference

PostgreSQL result set. More...

#include <userver/storages/postgres/result_set.hpp>

Public Types

using size_type = std::size_t
 
using difference_type = std::ptrdiff_t
 

Public Member Functions

Forward iteration
const_iterator cbegin () const &
 
const_iterator begin () const &
 
const_iterator cend () const &
 
const_iterator end () const &
 
const_iterator cbegin () const &&=delete
 
const_iterator begin () const &&=delete
 
const_iterator cend () const &&=delete
 
const_iterator end () const &&=delete
 
Reverse iteration
const_reverse_iterator crbegin () const &
 
const_reverse_iterator rbegin () const &
 
const_reverse_iterator crend () const &
 
const_reverse_iterator rend () const &
 
const_reverse_iterator crbegin () const &&=delete
 
const_reverse_iterator rbegin () const &&=delete
 
const_reverse_iterator crend () const &&=delete
 
const_reverse_iterator rend () const &&=delete
 
reference Front () const &
 
reference Back () const &
 
reference Front () const &&=delete
 
reference Back () const &&=delete
 
reference operator[] (size_type index) const &
 Access a row by index.
 
reference operator[] (size_type index) const &&=delete
 
ResultSet metadata access
size_type FieldCount () const
 
RowDescription GetRowDescription () const &
 
RowDescription GetRowDescription () const &&=delete
 

Static Public Attributes

static constexpr size_type npos = std::numeric_limits<size_type>::max()
 

Row container concept

using const_iterator = ConstRowIterator
 
using const_reverse_iterator = ReverseConstRowIterator
 
using value_type = Row
 
using reference = value_type
 
using pointer = const_iterator
 
 ResultSet (std::shared_ptr< detail::ResultWrapper > pimpl)
 
size_type Size () const
 Number of rows in the result set.
 
bool IsEmpty () const
 
size_type RowsAffected () const
 
std::string CommandStatus () const
 

Typed results

template<typename T , typename Tag >
class TypedResultSet
 
class ConnectionImpl
 
template<typename T >
auto AsSetOf () const
 Get a wrapper for iterating over a set of typed results. For more information see psql_typed_results.
 
template<typename T >
auto AsSetOf (RowTag) const
 
template<typename T >
auto AsSetOf (FieldTag) const
 
template<typename Container >
Container AsContainer () const
 Extract data into a container. For more information see psql_typed_results.
 
template<typename Container >
Container AsContainer (RowTag) const
 
template<typename T >
auto AsSingleRow () const
 Extract first row into user type. A single row result set is expected, will throw an exception when result set size != 1.
 
template<typename T >
auto AsSingleRow (RowTag) const
 
template<typename T >
auto AsSingleRow (FieldTag) const
 

Detailed Description

PostgreSQL result set.

Provides random access to rows via indexing operations and bidirectional iteration via iterators.

Usage synopsis

auto trx = ...;
auto res = trx.Execute("select a, b from table");
for (auto row : res) {
// Process row data
}
Examples
samples/digest_auth_service/auth_digest.cpp, and samples/postgres_service/postgres_service.cpp.

Definition at line 562 of file result_set.hpp.

Member Typedef Documentation

◆ const_iterator

◆ const_reverse_iterator

◆ difference_type

using storages::postgres::ResultSet::difference_type = std::ptrdiff_t

Definition at line 565 of file result_set.hpp.

◆ pointer

◆ reference

◆ size_type

using storages::postgres::ResultSet::size_type = std::size_t

Definition at line 564 of file result_set.hpp.

◆ value_type

Definition at line 573 of file result_set.hpp.

Constructor & Destructor Documentation

◆ ResultSet()

storages::postgres::ResultSet::ResultSet ( std::shared_ptr< detail::ResultWrapper >  pimpl)
inlineexplicit

Definition at line 578 of file result_set.hpp.

Member Function Documentation

◆ AsContainer() [1/2]

template<typename Container >
Container storages::postgres::ResultSet::AsContainer ( ) const

Extract data into a container. For more information see psql_typed_results.

Definition at line 932 of file result_set.hpp.

◆ AsContainer() [2/2]

template<typename Container >
Container storages::postgres::ResultSet::AsContainer ( RowTag  ) const

Definition at line 945 of file result_set.hpp.

◆ AsSetOf() [1/3]

template<typename T >
auto storages::postgres::ResultSet::AsSetOf ( ) const

Get a wrapper for iterating over a set of typed results. For more information see psql_typed_results.

Definition at line 903 of file result_set.hpp.

◆ AsSetOf() [2/3]

template<typename T >
auto storages::postgres::ResultSet::AsSetOf ( FieldTag  ) const

Definition at line 917 of file result_set.hpp.

◆ AsSetOf() [3/3]

template<typename T >
auto storages::postgres::ResultSet::AsSetOf ( RowTag  ) const

Definition at line 908 of file result_set.hpp.

◆ AsSingleRow() [1/3]

template<typename T >
auto storages::postgres::ResultSet::AsSingleRow ( ) const

Extract first row into user type. A single row result set is expected, will throw an exception when result set size != 1.

Examples
samples/digest_auth_service/auth_digest.cpp, and samples/postgres_service/postgres_service.cpp.

Definition at line 958 of file result_set.hpp.

◆ AsSingleRow() [2/3]

template<typename T >
auto storages::postgres::ResultSet::AsSingleRow ( FieldTag  ) const

Definition at line 972 of file result_set.hpp.

◆ AsSingleRow() [3/3]

template<typename T >
auto storages::postgres::ResultSet::AsSingleRow ( RowTag  ) const

Definition at line 963 of file result_set.hpp.

◆ begin()

const_iterator storages::postgres::ResultSet::begin ( ) const &
inline

Definition at line 593 of file result_set.hpp.

◆ end()

const_iterator storages::postgres::ResultSet::end ( ) const &
inline

Definition at line 595 of file result_set.hpp.

◆ GetRowDescription()

RowDescription storages::postgres::ResultSet::GetRowDescription ( ) const &
inline

Definition at line 633 of file result_set.hpp.

◆ IsEmpty()

bool storages::postgres::ResultSet::IsEmpty ( ) const
inline

◆ operator[]()

reference storages::postgres::ResultSet::operator[] ( size_type  index) const &

Access a row by index.

Exceptions
RowIndexOutOfBoundsif index is out of bounds

◆ rbegin()

const_reverse_iterator storages::postgres::ResultSet::rbegin ( ) const &
inline

Definition at line 606 of file result_set.hpp.

◆ rend()

const_reverse_iterator storages::postgres::ResultSet::rend ( ) const &
inline

Definition at line 608 of file result_set.hpp.

Friends And Related Symbol Documentation

◆ ConnectionImpl

friend class ConnectionImpl
friend

Definition at line 673 of file result_set.hpp.

◆ TypedResultSet

template<typename T , typename Tag >
friend class TypedResultSet
friend

Definition at line 672 of file result_set.hpp.

Member Data Documentation

◆ npos

constexpr size_type storages::postgres::ResultSet::npos = std::numeric_limits<size_type>::max()
staticconstexpr

Definition at line 566 of file result_set.hpp.


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