|
libpqxx
The C++ client library for PostgreSQL
|
Reference to one row in a result. More...
Inheritance diagram for pqxx::row:
Collaboration diagram for pqxx::row: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-2024, 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.