libpqxx
The C++ client library for PostgreSQL
types.hxx File Reference
#include <cstddef>
#include <cstdint>
#include <iterator>
#include <ranges>
#include <source_location>
#include <string>
#include <string_view>
#include <type_traits>
#include <typeinfo>
#include "pqxx/internal/ignore-deprecated-pre.hxx"
#include "pqxx/internal/ignore-deprecated-post.hxx"
+ Include dependency graph for types.hxx:
+ This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  pqxx::stacktrace_placeholder
 There is no std::stacktrace on this system. Use a placeholder. More...
 
struct  pqxx::from_table_t
 Marker for stream_from constructors: "stream from table.". More...
 
struct  pqxx::from_query_t
 Marker for stream_from constructors: "stream from query.". More...
 

Namespaces

 pqxx
 The home of all libpqxx classes, functions, templates, etc.
 
 pqxx::internal
 Private namespace for libpqxx's internal use; do not access.
 
 pqxx::internal::pq
 Placeholders for libpq declarations.
 

Typedefs

using pqxx::sl = std::source_location
 Convenience alias for std::source_location. It's just too long. More...
 
using pqxx::st = stacktrace_placeholder
 Placeholder for future std::stacktrace. More...
 
using pqxx::oid = unsigned int
 PostgreSQL database row identifier. More...
 
using pqxx::result_size_type = int
 Number of rows in a result set. More...
 
using pqxx::result_difference_type = int
 Difference between result sizes. More...
 
using pqxx::row_size_type = int
 Number of fields in a row of database data. More...
 
using pqxx::row_difference_type = int
 Difference between row sizes. More...
 
using pqxx::field_size_type = std::size_t
 Number of bytes in a field of database data. More...
 
using pqxx::large_object_size_type = int64_t
 Number of bytes in a large object. More...
 
template<typename TYPE >
using pqxx::strip_t = std::remove_cvref_t< TYPE >
 Remove any constness, volatile, and reference-ness from a type. More...
 
template<std::ranges::range CONTAINER>
using pqxx::value_type = std::remove_cvref_t< std::ranges::range_value_t< CONTAINER > >
 The type of a container's elements. More...
 
using pqxx::bytes_view = std::span< std::byte const >
 Type alias for a view of bytes. More...
 
using pqxx::writable_bytes_view = std::span< std::byte >
 Type alias for a view of writable bytes. More...
 
using pqxx::internal::pq::PGconn = void
 Placeholder for libpq's connection type. More...
 
using pqxx::internal::pq::PGresult = void
 Placeholder for libpq's result type. More...
 
using pqxx::internal::pq::PGnotify = void
 Placeholder for libpq's notification type. More...
 
using pqxx::internal::pq::PQnoticeProcessor = void(*)(void *, char const *)
 Placeholder for libpq's notice processor type. More...
 
using pqxx::internal::pq::PQconninfoOption = void
 Placeholder for libpq's PQconninfoOption type. More...
 

Enumerations

enum class  pqxx::format : int { pqxx::text = 0 , pqxx::binary = 1 }
 Format code: is data text or binary? More...
 

Functions

PQXX_LIBEXPORT PQXX_ZARGS std::string pqxx::internal::demangle_type_name (char const[]) noexcept
 Attempt to demangle std::type_info::name() to something human-readable. More...
 
template<typename TYPE >
constexpr std::string_view pqxx::name_type () noexcept
 Return human-readable name for TYPE. More...
 
template<>
constexpr PQXX_PURE std::string_view pqxx::name_type< std::string > () noexcept
 Specialisation to save on startup work & produce friendlier output. More...
 
template<>
constexpr PQXX_PURE std::string_view pqxx::name_type< std::string_view > () noexcept
 Specialisation to save on startup work & produce friendlier output. More...
 
template<>
constexpr PQXX_PURE std::string_view pqxx::name_type< char const * > () noexcept
 
template<>
constexpr PQXX_PURE std::string_view pqxx::name_type< bool > () noexcept
 Specialisation to save on startup work. More...
 
template<>
constexpr PQXX_PURE std::string_view pqxx::name_type< short > () noexcept
 Specialisation to save on startup work. More...
 
template<>
constexpr PQXX_PURE std::string_view pqxx::name_type< int > () noexcept
 Specialisation to save on startup work. More...
 
template<>
constexpr PQXX_PURE std::string_view pqxx::name_type< long > () noexcept
 Specialisation to save on startup work. More...
 
template<>
constexpr PQXX_PURE std::string_view pqxx::name_type< long long > () noexcept
 Specialisation to save on startup work. More...
 
template<>
constexpr PQXX_PURE std::string_view pqxx::name_type< unsigned short > () noexcept
 Specialisation to save on startup work. More...
 
template<>
constexpr PQXX_PURE std::string_view pqxx::name_type< unsigned > () noexcept
 Specialisation to save on startup work. More...
 
template<>
constexpr PQXX_PURE std::string_view pqxx::name_type< unsigned long > () noexcept
 Specialisation to save on startup work. More...
 
template<>
constexpr PQXX_PURE std::string_view pqxx::name_type< unsigned long long > () noexcept
 Specialisation to save on startup work. More...
 
template<>
constexpr PQXX_PURE std::string_view pqxx::name_type< float > () noexcept
 Specialisation to save on startup work. More...
 
template<>
constexpr PQXX_PURE std::string_view pqxx::name_type< double > () noexcept
 Specialisation to save on startup work. More...
 
template<>
constexpr PQXX_PURE std::string_view pqxx::name_type< long double > () noexcept
 Specialisation to save on startup work. More...
 
template<>
constexpr PQXX_PURE std::string_view pqxx::name_type< std::nullptr_t > () noexcept
 Specialisation to save on startup work. More...
 

Variables

template<typename CHAR >
concept pqxx::char_sized = (sizeof(CHAR) == 1)
 A type one byte in size. More...
 
template<typename STRING >
concept pqxx::char_string
 Concept: Any type that we can read as a string of char. More...
 
template<typename RANGE >
concept pqxx::char_strings
 Concept: Anything we can iterate to get things we can read as strings. More...
 
template<typename DATA >
concept pqxx::potential_binary
 Concept: Anything we might want to treat as binary data. More...
 
template<typename T >
concept pqxx::binary
 Concept: Binary string, akin to std::string for binary data. More...
 
template<typename T >
concept pqxx::nonbinary_range
 A series of something that's not bytes. More...
 
template<typename T >
concept pqxx::not_borrowed
 Concept: A value that's not just a reference to values elsewhere. More...
 
template<typename E >
concept pqxx::enum_type = std::is_enum_v<E>
 Concept: A C++ enum type. More...
 
template<typename TYPE >
std::string const pqxx::type_name
 A human-readable name for a type, used in error messages and such. More...
 
template<typename T >
concept pqxx::internal::char_type
 Concept: one of the "char" types. More...
 
template<typename T >
concept pqxx::internal::integer = std::integral<T> and not char_type<T>
 Concept: an integral number type. More...
 

Class Documentation

◆ pqxx::from_table_t

struct pqxx::from_table_t

Marker for stream_from constructors: "stream from table.".

Deprecated:
Use stream_from::table() instead.

◆ pqxx::from_query_t

struct pqxx::from_query_t

Marker for stream_from constructors: "stream from query.".

Deprecated:
Use stream_from::query() instead.