Dmitigr Pgfe  1.1beta
The modern C++ API to PostgreSQL
Classes | Enumerations | Functions
dmitigr::pgfe Namespace Reference

Public API. More...

Classes

struct  Basic_conversions
 The basic meta-implementation of the conversion algorithms. More...
 
class  Client_error_category
 Represents a category of runtime client errors. More...
 
class  Client_exception
 Represents exceptions thrown on the client side. More...
 
class  Completion
 Defines an abstraction of a successful operation completion. More...
 
class  Composite
 Represents an abstraction of a composite type. More...
 
class  Compositional
 Defines an interface of compositional types. More...
 
class  Connection
 Represents a connection to the PostgreSQL server. More...
 
class  Connection_options
 Defines an interface to work with Connection options. More...
 
struct  Conversions
 Represents a centralized "namespace" for implementation of conversion algorithms. More...
 
struct  Conversions< bool >
 Full specialization of Conversions for bool. More...
 
struct  Conversions< char >
 Full specialization of Conversions for char. More...
 
struct  Conversions< Container< Optional< T >, Allocator< Optional< T > > > >
 Partial specialization of Conversions for containers (arrays) with optional values. More...
 
struct  Conversions< Container< T, Allocator< T > > >
 Partial specialization of Conversions for containers (arrays) with mandatory values. More...
 
struct  Conversions< double >
 Full specialization of Conversions for double. More...
 
struct  Conversions< float >
 Full specialization of Conversions for float. More...
 
struct  Conversions< int >
 Full specialization of Conversions for int. More...
 
struct  Conversions< long double >
 Full specialization of Conversions for long double. More...
 
struct  Conversions< long int >
 Full specialization of Conversions for long int. More...
 
struct  Conversions< long long int >
 Full specialization of Conversions for long long int. More...
 
struct  Conversions< short int >
 Full specialization of Conversions for short int. More...
 
struct  Conversions< std::string >
 Full specialization of Conversions for std::string. More...
 
class  Data
 Represents an abstraction of a data. More...
 
class  Error
 Represents an abstraction of synchronous messages (responses) from the PostgreSQL server with the information about the error occurred. More...
 
class  Message
 Represents an abstraction of client/server messages to/from the PostgreSQL server. More...
 
class  Notice
 Represents unprompted notices from the server. More...
 
class  Notification
 Represents unprompted notifications from the server. More...
 
struct  Numeric_conversions
 The basic implementation of the conversion algorithms for numerics. More...
 
class  Parameterizable
 Represents an interface of parameterizable types. More...
 
class  Prepared_statement
 Represents a client-side pointer to a remote prepared statement. More...
 
class  Problem
 Represents the problem which occurred on the PostgreSQL server. More...
 
class  Response
 Represents an abstraction of synchronous (requested) messages from PostgreSQL server. More...
 
class  Row
 Represents an abstraction of a row produced by a server. More...
 
class  Row_info
 Represents an abstraction of an information about the rows produced (or that will be produced) by a server. More...
 
class  Server_error_category
 Represents a category of runtime server errors. More...
 
class  Server_exception
 Represents exceptions thrown on the server side. More...
 
class  Server_message
 Represents an abstraction of PostgreSQL server messages (either synchronous or asynchronous). More...
 
class  Signal
 Represents an abstraction of asynchronous (unprompted) messages from PostgreSQL server. More...
 
class  Sql_string
 Represents preparsed SQL strings. More...
 
class  Sql_vector
 Represents a vector of SQL strings and useful operations on it. More...
 

Enumerations

enum  Socket_readiness { unready = 0, read_ready = 2, write_ready = 4, exceptions = 8 }
 Represents a socket readiness. More...
 
enum  Communication_mode { uds = 0, tcp = 100 }
 Represents a client/server communication mode. More...
 
enum  Communication_status {
  disconnected = 0, failure = 100, establishment_writing = 200, establishment_reading = 300,
  connected = 400
}
 Represents a communication status. More...
 
enum  Transaction_block_status { unstarted = 0, uncommitted = 100, failed = 200 }
 Represents the transaction block status. More...
 
enum  Data_format { text = 0, binary = 1 }
 Represents a possible data format. More...
 
enum  Problem_severity {
  log = 0, info = 100, debug = 200, notice = 300,
  warning = 400, error = 500, fatal = 600, panic = 700
}
 Represents a problem info severity. More...
 
enum  Client_errc {
  success = 0, insufficient_array_dimensionality = 100, excessive_array_dimensionality = 200, malformed_array_literal = 300,
  improper_value_type_of_container = 400, timed_out = 500
}
 Represents a client error code. More...
 
enum  Server_errc {
  c00_successful_completion = 0, c01_warning = 46656, c01_dynamic_result_sets_returned = 46668, c01_implicit_zero_bit_padding = 46664,
  c01_null_value_eliminated_in_set_function = 46659, c01_privilege_not_granted = 46663, c01_privilege_not_revoked = 46662, c01_string_data_right_truncation = 46660,
  c01_deprecated_feature = 79057, c02_no_data = 93312, c02_no_additional_dynamic_result_sets_returned = 93313, c03_sql_statement_not_yet_complete = 139968,
  c08_connection_exception = 373248, c08_connection_does_not_exist = 373251, c08_connection_failure = 373254, c08_sqlclient_unable_to_establish_sqlconnection = 373249,
  c08_sqlserver_rejected_establishment_of_sqlconnection = 373252, c08_transaction_resolution_unknown = 373255, c08_protocol_violation = 405649, c09_triggered_action_exception = 419904,
  c0a_feature_not_supported = 466560, c0b_invalid_transaction_initiation = 513216, c0f_locator_exception = 699840, c0f_invalid_locator_specification = 699841,
  c0l_invalid_grantor = 979776, c0l_invalid_grant_operation = 1012177, c0p_invalid_role_specification = 1166400, c0z_diagnostics_exception = 1632960,
  c0z_stacked_diagnostics_accessed_without_active_handler = 1632962, c20_case_not_found = 3359232, c21_cardinality_violation = 3405888, c22_data_exception = 3452544,
  c22_array_subscript_error = 3452630, c22_character_not_in_repertoire = 3452617, c22_datetime_field_overflow = 3452552, c22_division_by_zero = 3452582,
  c22_error_in_assignment = 3452549, c22_escape_character_conflict = 3452555, c22_indicator_overflow = 3452618, c22_interval_field_overflow = 3452585,
  c22_invalid_argument_for_logarithm = 3452594, c22_invalid_argument_for_ntile_function = 3452584, c22_invalid_argument_for_nth_value_function = 3452586, c22_invalid_argument_for_power_function = 3452595,
  c22_invalid_argument_for_width_bucket_function = 3452596, c22_invalid_character_value_for_cast = 3452588, c22_invalid_datetime_format = 3452551, c22_invalid_escape_character = 3452589,
  c22_invalid_escape_octet = 3452557, c22_invalid_escape_sequence = 3452621, c22_nonstandard_use_of_escape_character = 3484950, c22_invalid_indicator_parameter_value = 3452580,
  c22_invalid_parameter_value = 3452619, c22_invalid_preceding_following_size = 3452583, c22_invalid_regular_expression = 3452591, c22_invalid_row_count_in_limit_clause = 3452612,
  c22_invalid_row_count_in_result_offset_clause = 3452613, c22_invalid_tablesample_argument = 3452633, c22_invalid_tablesample_repeat = 3452632, c22_invalid_time_zone_displacement_value = 3452553,
  c22_invalid_use_of_escape_character = 3452556, c22_most_specific_type_mismatch = 3452560, c22_null_value_not_allowed = 3452548, c22_null_value_no_indicator_parameter = 3452546,
  c22_numeric_value_out_of_range = 3452547, c22_sequence_generator_limit_exceeded = 3452561, c22_string_data_length_mismatch = 3452622, c22_string_data_right_truncation = 3452545,
  c22_substring_error = 3452581, c22_trim_error = 3452623, c22_unterminated_c_string = 3452620, c22_zero_length_character_string = 3452559,
  c22_floating_point_exception = 3484945, c22_invalid_text_representation = 3484946, c22_invalid_binary_representation = 3484947, c22_bad_copy_file_format = 3484948,
  c22_untranslatable_character = 3484949, c22_not_an_xml_document = 3452565, c22_invalid_xml_document = 3452566, c22_invalid_xml_content = 3452567,
  c22_invalid_xml_comment = 3452572, c22_invalid_xml_processing_instruction = 3452573, c23_integrity_constraint_violation = 3499200, c23_restrict_violation = 3499201,
  c23_not_null_violation = 3505682, c23_foreign_key_violation = 3505683, c23_unique_violation = 3505685, c23_check_violation = 3505720,
  c23_exclusion_violation = 3531601, c24_invalid_cursor_state = 3545856, c25_invalid_transaction_state = 3592512, c25_active_sql_transaction = 3592513,
  c25_branch_transaction_already_active = 3592514, c25_held_cursor_requires_same_isolation_level = 3592520, c25_inappropriate_access_mode_for_branch_transaction = 3592515, c25_inappropriate_isolation_level_for_branch_transaction = 3592516,
  c25_no_active_sql_transaction_for_branch_transaction = 3592517, c25_read_only_sql_transaction = 3592518, c25_schema_and_data_statement_mixing_not_supported = 3592519, c25_no_active_sql_transaction = 3624913,
  c25_in_failed_sql_transaction = 3624914, c25_idle_in_transaction_session_timeout = 3624915, c26_invalid_sql_statement_name = 3639168, c27_triggered_data_change_violation = 3685824,
  c28_invalid_authorization_specification = 3732480, c28_invalid_password = 3764881, c2b_dependent_privilege_descriptors_still_exist = 3872448, c2b_dependent_objects_still_exist = 3904849,
  c2d_invalid_transaction_termination = 3965760, c2f_sql_routine_exception = 4059072, c2f_function_executed_no_return_statement = 4059077, c2f_modifying_sql_data_not_permitted = 4059074,
  c2f_prohibited_sql_statement_attempted = 4059075, c2f_reading_sql_data_not_permitted = 4059076, c34_invalid_cursor_name = 5225472, c38_external_routine_exception = 5412096,
  c38_containing_sql_not_permitted = 5412097, c38_modifying_sql_data_not_permitted = 5412098, c38_prohibited_sql_statement_attempted = 5412099, c38_reading_sql_data_not_permitted = 5412100,
  c39_external_routine_invocation_exception = 5458752, c39_invalid_sqlstate_returned = 5458753, c39_null_value_not_allowed = 5458756, c39_trigger_protocol_violated = 5491153,
  c39_srf_protocol_violated = 5491154, c39_event_trigger_protocol_violated = 5491155, c3b_savepoint_exception = 5552064, c3b_invalid_savepoint_specification = 5552065,
  c3d_invalid_catalog_name = 5645376, c3f_invalid_schema_name = 5738688, c40_transaction_rollback = 6718464, c40_transaction_integrity_constraint_violation = 6718466,
  c40_serialization_failure = 6718465, c40_statement_completion_unknown = 6718467, c40_deadlock_detected = 6750865, c42_syntax_error_or_access_rule_violation = 6811776,
  c42_syntax_error = 6819553, c42_insufficient_privilege = 6818257, c42_cannot_coerce = 6822294, c42_grouping_error = 6822147,
  c42_windowing_error = 6844248, c42_invalid_recursion = 6844221, c42_invalid_foreign_key = 6822252, c42_invalid_name = 6819554,
  c42_name_too_long = 6819626, c42_reserved_name = 6823557, c42_datatype_mismatch = 6822148, c42_indeterminate_datatype = 6844220,
  c42_collation_mismatch = 6844249, c42_indeterminate_collation = 6844250, c42_wrong_object_type = 6822153, c42_generated_always = 6822585,
  c42_undefined_column = 6820851, c42_undefined_function = 6822435, c42_undefined_table = 6844177, c42_undefined_parameter = 6844178,
  c42_undefined_object = 6820852, c42_duplicate_column = 6820849, c42_duplicate_cursor = 6844179, c42_duplicate_database = 6844180,
  c42_duplicate_function = 6820923, c42_duplicate_prepared_statement = 6844181, c42_duplicate_schema = 6844182, c42_duplicate_table = 6844183,
  c42_duplicate_alias = 6820886, c42_duplicate_object = 6820884, c42_ambiguous_column = 6820850, c42_ambiguous_function = 6820925,
  c42_ambiguous_parameter = 6844184, c42_ambiguous_alias = 6844185, c42_invalid_column_reference = 6844212, c42_invalid_column_definition = 6819589,
  c42_invalid_cursor_definition = 6844213, c42_invalid_database_definition = 6844214, c42_invalid_function_definition = 6844215, c42_invalid_prepared_statement_definition = 6844216,
  c42_invalid_schema_definition = 6844217, c42_invalid_table_definition = 6844218, c42_invalid_object_definition = 6844219, c44_with_check_option_violation = 6905088,
  c53_insufficient_resources = 8538048, c53_disk_full = 8539344, c53_out_of_memory = 8540640, c53_too_many_connections = 8541936,
  c53_configuration_limit_exceeded = 8543232, c54_program_limit_exceeded = 8584704, c54_statement_too_complex = 8584705, c54_too_many_columns = 8584741,
  c54_too_many_arguments = 8584779, c55_object_not_in_prerequisite_state = 8631360, c55_object_in_use = 8631366, c55_cant_change_runtime_param = 8663762,
  c55_lock_not_available = 8663763, c57_operator_intervention = 8724672, c57_query_canceled = 8724712, c57_admin_shutdown = 8757073,
  c57_crash_shutdown = 8757074, c57_cannot_connect_now = 8757075, c57_database_dropped = 8757076, c58_system_error = 8771328,
  c58_io_error = 8771436, c58_undefined_file = 8803729, c58_duplicate_file = 8803730, c72_snapshot_too_old = 11850624,
  cf0_config_file_error = 25194240, cf0_lock_file_exists = 25194241, chv_fdw_error = 29999808, chv_fdw_column_name_not_found = 29999813,
  chv_fdw_dynamic_parameter_value_needed = 29999810, chv_fdw_function_sequence_error = 29999844, chv_fdw_inconsistent_descriptor_information = 29999881, chv_fdw_invalid_attribute_value = 29999884,
  chv_fdw_invalid_column_name = 29999815, chv_fdw_invalid_column_number = 29999816, chv_fdw_invalid_data_type = 29999812, chv_fdw_invalid_data_type_descriptors = 29999814,
  chv_fdw_invalid_descriptor_field_identifier = 30000133, chv_fdw_invalid_handle = 29999819, chv_fdw_invalid_option_index = 29999820, chv_fdw_invalid_option_name = 29999821,
  chv_fdw_invalid_string_length_or_buffer_length = 30000132, chv_fdw_invalid_string_format = 29999818, chv_fdw_invalid_use_of_null_pointer = 29999817, chv_fdw_too_many_handles = 29999848,
  chv_fdw_out_of_memory = 29999809, chv_fdw_no_schemas = 29999833, chv_fdw_option_name_not_found = 29999827, chv_fdw_reply_handle = 29999828,
  chv_fdw_schema_not_found = 29999834, chv_fdw_table_not_found = 29999835, chv_fdw_unable_to_create_execution = 29999829, chv_fdw_unable_to_create_reply = 29999830,
  chv_fdw_unable_to_establish_connection = 29999831, cp0_plpgsql_error = 41990400, cp0_raise_exception = 41990401, cp0_no_data_found = 41990402,
  cp0_too_many_rows = 41990403, cp0_assert_failure = 41990404, cxx_internal_error = 56966976, cxx_data_corrupted = 56966977,
  cxx_index_corrupted = 56966978
}
 Represents a server error code. More...
 

Functions

Socket_readiness operator & (Socket_readiness lhs, Socket_readiness rhs) noexcept
 
Socket_readiness operator| (Socket_readiness lhs, Socket_readiness rhs) noexcept
 Bitwise OR for Socket_readiness. More...
 
Socket_readiness operator^ (Socket_readiness lhs, Socket_readiness rhs) noexcept
 Bitwise XOR for Socket_readiness. More...
 
Socket_readiness operator~ (Socket_readiness lhs) noexcept
 Bitwise NOT for Socket_readiness. More...
 
Socket_readinessoperator &= (Socket_readiness &lhs, Socket_readiness rhs) noexcept
 Bitwise AND for Socket_readiness with assignment to lvalue. More...
 
Socket_readinessoperator|= (Socket_readiness &lhs, Socket_readiness rhs) noexcept
 Bitwise OR for Socket_readiness with assignment to lvalue. More...
 
Socket_readinessoperator^= (Socket_readiness &lhs, Socket_readiness rhs) noexcept
 Bitwise XOR for Socket_readiness with assignment to lvalue. More...
 
DMITIGR_PGFE_API void APIENTRY set_openssl_library_initialization_enabled (bool value)
 Sets the obligation of initialization the OpenSSL library when needed. More...
 
DMITIGR_PGFE_API bool APIENTRY is_openssl_library_initialization_enabled ()
 
DMITIGR_PGFE_API void APIENTRY set_crypto_library_initialization_enabled (bool value)
 Sets the obligation of initialization the Crypto library when needed. More...
 
DMITIGR_PGFE_API bool APIENTRY is_crypto_library_initialization_enabled ()
 
template<typename T , typename ... Types>
to (const Data *const data, Types &&... args)
 Converts the value of type Data to the value of type T by using the specialization of struct template Conversions. More...
 
template<typename T , typename ... Types>
to (std::unique_ptr< Data > &&data, Types &&... args)
 
template<typename T , typename ... Types>
std::unique_ptr< Datato_data (T &&value, Types &&... args)
 Converts the value of type T to the value of type Data by using the specialization of the struct template Conversions. More...
 
DMITIGR_PGFE_API std::unique_ptr< Data > APIENTRY to_binary_data (const std::string &text_data)
 Similar to to_binary_data(const Data*). More...
 
DMITIGR_PGFE_API std::int_fast32_t APIENTRY version ()
 
DMITIGR_PGFE_API const Client_error_category &APIENTRY client_error_category () noexcept
 
DMITIGR_PGFE_API const Server_error_category &APIENTRY server_error_category () noexcept
 
DMITIGR_PGFE_API std::error_code APIENTRY make_error_code (Client_errc errc) noexcept
 
DMITIGR_PGFE_API std::error_code APIENTRY make_error_code (Server_errc errc) noexcept
 
DMITIGR_PGFE_API std::error_condition APIENTRY make_error_condition (Client_errc errc) noexcept
 
DMITIGR_PGFE_API std::error_condition APIENTRY make_error_condition (Server_errc errc) noexcept
 

Detailed Description

Public API.

Warning
The nested namespace detail contains an implementation details and should not be used in applications.