libpqxx
The C++ client library for PostgreSQL
|
Reference to one row in a result. More...
Public Types | |
using | size_type = row_size_type |
using | difference_type = row_difference_type |
using | const_iterator = const_row_iterator |
using | iterator = const_iterator |
using | reference = field |
using | pointer = const_row_iterator |
using | const_reverse_iterator = const_reverse_row_iterator |
using | reverse_iterator = const_reverse_iterator |
Public Member Functions | |
row (row &&) noexcept=default | |
row (row const &) noexcept=default | |
row & | operator= (row const &) noexcept=default |
row & | operator= (row &&) noexcept=default |
Comparison | |
PQXX_PURE bool | operator== (row const &) const noexcept |
bool | operator!= (row const &rhs) const noexcept |
const_iterator | begin () const noexcept |
const_iterator | cbegin () const noexcept |
const_iterator | end () const noexcept |
const_iterator | cend () const noexcept |
Field access | |
reference | front () const noexcept |
reference | back () const noexcept |
const_reverse_row_iterator | rbegin () const noexcept |
const_reverse_row_iterator | crbegin () const noexcept |
const_reverse_row_iterator | rend () const noexcept |
const_reverse_row_iterator | crend () const noexcept |
reference | operator[] (size_type) const noexcept |
reference | operator[] (zview col_name) const |
reference | at (size_type) const |
reference | at (zview col_name) const |
constexpr size_type | size () const noexcept |
constexpr result::size_type | rownumber () const noexcept |
Row number, assuming this is a real row and not end()/rend(). | |
Column information | |
class | const_row_iterator |
class | result |
template<typename... T> | |
class | pqxx::internal::result_iter |
class | field |
result | m_result |
Result set of which this is one row. | |
result::size_type | m_index = 0 |
Row number. | |
size_type | m_begin = 0 |
First column in slice. This row ignores lower-numbered columns. | |
size_type | m_end = 0 |
End column in slice. This row only sees lower-numbered columns. | |
size_type | column_number (zview col_name) const |
Number of given column (throws exception if it doesn't exist). | |
oid | column_type (size_type) const |
Return a column's type. | |
oid | column_type (zview col_name) const |
Return a column's type. | |
oid | column_table (size_type col_num) const |
What table did this column come from? | |
oid | column_table (zview col_name) const |
What table did this column come from? | |
size_type | table_column (size_type) const |
What column number in its table did this result column come from? | |
size_type | table_column (zview col_name) const |
What column number in its table did this result column come from? | |
constexpr result::size_type | num () const noexcept |
template<typename Tuple > | |
void | to (Tuple &t) const |
Extract entire row's values into a tuple. | |
template<typename... TYPE> | |
std::tuple< TYPE... > | as () const |
Extract entire row's values into a tuple. | |
void | swap (row &) noexcept |
row | slice (size_type sbegin, size_type send) const |
PQXX_PURE bool | empty () const noexcept |
Is this a row without fields? Can only happen to a slice. | |
row (result r, result_size_type index, size_type cols) noexcept | |
void | check_size (size_type expected) const |
Throw usage_error if row size is not expected . | |
template<typename TUPLE > | |
TUPLE | as_tuple () const |
Convert to a given tuple of values, don't check sizes. | |
template<typename Tuple > | |
void | convert (Tuple &t) const |
Convert entire row to tuple fields, without checking row size. | |
Reference to one row in a result.
A row represents one row (also called a row) in a query result set. It also acts as a container mapping column numbers or names to field values (see below):
The row itself acts like a (non-modifyable) container, complete with its own const_iterator and const_reverse_iterator.
|
protectednoexcept |
Implementation of the pqxx::result class and support classes.
pqxx::result represents the set of result rows from a database query.
Copyright (c) 2000-2025, Jeroen T. Vermeulen.
See COPYING for copyright license. If you did not receive a file called COPYING with this source code, please notify the distributor of this mistake, or contact the author.
|
inline |
Extract entire row's values into a tuple.
Converts to the types of the tuple's respective fields.
The types must have conversions from PostgreSQL's text format defined; see Supporting additional data types.
usage_error | If the number of columns in the row does not match the number of fields in t . |
|
inlineprotected |
Convert to a given tuple of values, don't check sizes.
We need this for cases where we have a full tuple of field types, but not a parameter pack.
pqxx::field pqxx::row::at | ( | zview | col_name | ) | const |
Address field by name.
pqxx::row::reference pqxx::row::operator[] | ( | zview | col_name | ) | const |
Address field by name.
pqxx::row pqxx::row::slice | ( | size_type | sbegin, |
size_type | send | ||
) | const |
Produce a slice of this row, containing the given range of columns.
The slice runs from the range's starting column to the range's end column, exclusive. It looks just like a normal result row, except slices can be empty.
pqxx::row::size_type pqxx::row::table_column | ( | size_type | col_num | ) | const |
What column number in its table did this result column come from?
A meaningful answer can be given only if the column in question comes directly from a column in a table. If the column is computed in any other way, a logic_error will be thrown.
col_num | a zero-based column number in this result set |
|
inline |
Extract entire row's values into a tuple.
Converts to the types of the tuple's respective fields.
The types in the tuple must have conversions from PostgreSQL's text format defined; see Supporting additional data types.
usage_error | If the number of columns in the row does not match the number of fields in t . |
|
protected |
Row number.
You'd expect this to be unsigned, but due to the way reverse iterators are related to regular iterators, it must be allowed to underflow to -1.