Skip to content

Instantly share code, notes, and snippets.

@skamensky
Last active February 21, 2023 10:00
Show Gist options
  • Save skamensky/383b83d3c7b5cfc422246b1741756772 to your computer and use it in GitHub Desktop.
Save skamensky/383b83d3c7b5cfc422246b1741756772 to your computer and use it in GitHub Desktop.
Python type hinting for the PL/Python language module. Module documentation can be found in various subpages of the plpython docs https://www.postgresql.org/docs/15/plpython.html
"""Python type hinting for the PL/Python language module. Module documentation can be found in various subpages of the plpython docs https://www.postgresql.org/docs/15/plpython.html
This file was written by investigating the runtime plpy attributes and by reading the source code https://github.com/postgres/postgres/tree/master/src/pl/plpython
"""
from contextlib import contextmanager, AbstractContextManager
from typing import Union, Optional, Literal, List, Any, Dict, Iterable, ContextManager
# spi vals taken from https://github.com/postgres/postgres/blob/8028e294b456bf1539649527fd98b3985fa4752a/src/include/executor/spi.h
SPI_ERROR_CONNECT = -1
SPI_ERROR_COPY = -2
SPI_ERROR_OPUNKNOWN = -3
SPI_ERROR_UNCONNECTED = -4
SPI_ERROR_CURSOR = -5 # not used anymore
SPI_ERROR_ARGUMENT = -6
SPI_ERROR_PARAM = -7
SPI_ERROR_TRANSACTION = -8
SPI_ERROR_NOATTRIBUTE = -9
SPI_ERROR_NOOUTFUNC = -10
SPI_ERROR_TYPUNKNOWN = -11
SPI_ERROR_REL_DUPLICATE = -12
SPI_ERROR_REL_NOT_FOUND = -13
SPI_OK_CONNECT = 1
SPI_OK_FINISH = 2
SPI_OK_FETCH = 3
SPI_OK_UTILITY = 4
SPI_OK_SELECT = 5
SPI_OK_SELINTO = 6
SPI_OK_INSERT = 7
SPI_OK_DELETE = 8
SPI_OK_UPDATE = 9
SPI_OK_CURSOR = 10
SPI_OK_INSERT_RETURNING = 11
SPI_OK_DELETE_RETURNING = 12
SPI_OK_UPDATE_RETURNING = 13
SPI_OK_REWRITTEN = 14
SPI_OK_REL_REGISTER = 15
SPI_OK_REL_UNREGISTER = 16
SPI_OK_TD_REGISTER = 17
SPI_OK_MERGE = 18
SPI_RESULT = Union[
Literal[SPI_ERROR_CONNECT],
Literal[SPI_ERROR_COPY],
Literal[SPI_ERROR_OPUNKNOWN],
Literal[SPI_ERROR_UNCONNECTED],
Literal[SPI_ERROR_CURSOR],
Literal[SPI_ERROR_ARGUMENT],
Literal[SPI_ERROR_PARAM],
Literal[SPI_ERROR_TRANSACTION],
Literal[SPI_ERROR_NOATTRIBUTE],
Literal[SPI_ERROR_NOOUTFUNC],
Literal[SPI_ERROR_TYPUNKNOWN],
Literal[SPI_ERROR_REL_DUPLICATE],
Literal[SPI_ERROR_REL_NOT_FOUND],
Literal[SPI_OK_CONNECT],
Literal[SPI_OK_FINISH],
Literal[SPI_OK_FETCH],
Literal[SPI_OK_UTILITY],
Literal[SPI_OK_SELECT],
Literal[SPI_OK_SELINTO],
Literal[SPI_OK_INSERT],
Literal[SPI_OK_DELETE],
Literal[SPI_OK_UPDATE],
Literal[SPI_OK_CURSOR],
Literal[SPI_OK_INSERT_RETURNING],
Literal[SPI_OK_DELETE_RETURNING],
Literal[SPI_OK_UPDATE_RETURNING],
Literal[SPI_OK_REWRITTEN],
Literal[SPI_OK_REL_REGISTER],
Literal[SPI_OK_REL_UNREGISTER],
Literal[SPI_OK_TD_REGISTER],
Literal[SPI_OK_MERGE],
]
ERRCODE_SUCCESSFUL_COMPLETION = "00000" # Type: Success postgres comment: successful_completion
ERRCODE_WARNING = "01000" # Type: Warning postgres comment: warning
ERRCODE_WARNING_DYNAMIC_RESULT_SETS_RETURNED = "0100C" # Type: Warning postgres comment: dynamic_result_sets_returned
ERRCODE_WARNING_IMPLICIT_ZERO_BIT_PADDING = "01008" # Type: Warning postgres comment: implicit_zero_bit_padding
ERRCODE_WARNING_NULL_VALUE_ELIMINATED_IN_SET_FUNCTION = "01003" # Type: Warning postgres comment: null_value_eliminated_in_set_function
ERRCODE_WARNING_PRIVILEGE_NOT_GRANTED = "01007" # Type: Warning postgres comment: privilege_not_granted
ERRCODE_WARNING_PRIVILEGE_NOT_REVOKED = "01006" # Type: Warning postgres comment: privilege_not_revoked
ERRCODE_WARNING_STRING_DATA_RIGHT_TRUNCATION = "01004" # Type: Warning postgres comment: string_data_right_truncation
ERRCODE_WARNING_DEPRECATED_FEATURE = "01P01" # Type: Warning postgres comment: deprecated_feature
ERRCODE_NO_DATA = "02000" # Type: Warning postgres comment: no_data
ERRCODE_NO_ADDITIONAL_DYNAMIC_RESULT_SETS_RETURNED = "02001" # Type: Warning postgres comment: no_additional_dynamic_result_sets_returned
ERRCODE_SQL_STATEMENT_NOT_YET_COMPLETE = "03000" # Type: Error postgres comment: sql_statement_not_yet_complete
ERRCODE_CONNECTION_EXCEPTION = "08000" # Type: Error postgres comment: connection_exception
ERRCODE_CONNECTION_DOES_NOT_EXIST = "08003" # Type: Error postgres comment: connection_does_not_exist
ERRCODE_CONNECTION_FAILURE = "08006" # Type: Error postgres comment: connection_failure
ERRCODE_SQLCLIENT_UNABLE_TO_ESTABLISH_SQLCONNECTION = "08001" # Type: Error postgres comment: sqlclient_unable_to_establish_sqlconnection
ERRCODE_SQLSERVER_REJECTED_ESTABLISHMENT_OF_SQLCONNECTION = "08004" # Type: Error postgres comment: sqlserver_rejected_establishment_of_sqlconnection
ERRCODE_TRANSACTION_RESOLUTION_UNKNOWN = "08007" # Type: Error postgres comment: transaction_resolution_unknown
ERRCODE_PROTOCOL_VIOLATION = "08P01" # Type: Error postgres comment: protocol_violation
ERRCODE_TRIGGERED_ACTION_EXCEPTION = "09000" # Type: Error postgres comment: triggered_action_exception
ERRCODE_FEATURE_NOT_SUPPORTED = "0A000" # Type: Error postgres comment: feature_not_supported
ERRCODE_INVALID_TRANSACTION_INITIATION = "0B000" # Type: Error postgres comment: invalid_transaction_initiation
ERRCODE_LOCATOR_EXCEPTION = "0F000" # Type: Error postgres comment: locator_exception
ERRCODE_L_E_INVALID_SPECIFICATION = "0F001" # Type: Error postgres comment: invalid_locator_specification
ERRCODE_INVALID_GRANTOR = "0L000" # Type: Error postgres comment: invalid_grantor
ERRCODE_INVALID_GRANT_OPERATION = "0LP01" # Type: Error postgres comment: invalid_grant_operation
ERRCODE_INVALID_ROLE_SPECIFICATION = "0P000" # Type: Error postgres comment: invalid_role_specification
ERRCODE_DIAGNOSTICS_EXCEPTION = "0Z000" # Type: Error postgres comment: diagnostics_exception
ERRCODE_STACKED_DIAGNOSTICS_ACCESSED_WITHOUT_ACTIVE_HANDLER = "0Z002" # Type: Error postgres comment: stacked_diagnostics_accessed_without_active_handler
ERRCODE_CASE_NOT_FOUND = "20000" # Type: Error postgres comment: case_not_found
ERRCODE_CARDINALITY_VIOLATION = "21000" # Type: Error postgres comment: cardinality_violation
ERRCODE_DATA_EXCEPTION = "22000" # Type: Error postgres comment: data_exception
ERRCODE_ARRAY_ELEMENT_ERROR = "2202E" # postgres comment: E
ERRCODE_ARRAY_SUBSCRIPT_ERROR = "2202E" # Type: Error postgres comment: array_subscript_error
ERRCODE_CHARACTER_NOT_IN_REPERTOIRE = "22021" # Type: Error postgres comment: character_not_in_repertoire
ERRCODE_DATETIME_FIELD_OVERFLOW = "22008" # Type: Error postgres comment: datetime_field_overflow
ERRCODE_DATETIME_VALUE_OUT_OF_RANGE = "22008" # postgres comment: E
ERRCODE_DIVISION_BY_ZERO = "22012" # Type: Error postgres comment: division_by_zero
ERRCODE_ERROR_IN_ASSIGNMENT = "22005" # Type: Error postgres comment: error_in_assignment
ERRCODE_ESCAPE_CHARACTER_CONFLICT = "2200B" # Type: Error postgres comment: escape_character_conflict
ERRCODE_INDICATOR_OVERFLOW = "22022" # Type: Error postgres comment: indicator_overflow
ERRCODE_INTERVAL_FIELD_OVERFLOW = "22015" # Type: Error postgres comment: interval_field_overflow
ERRCODE_INVALID_ARGUMENT_FOR_LOG = "2201E" # Type: Error postgres comment: invalid_argument_for_logarithm
ERRCODE_INVALID_ARGUMENT_FOR_NTILE = "22014" # Type: Error postgres comment: invalid_argument_for_ntile_function
ERRCODE_INVALID_ARGUMENT_FOR_NTH_VALUE = "22016" # Type: Error postgres comment: invalid_argument_for_nth_value_function
ERRCODE_INVALID_ARGUMENT_FOR_POWER_FUNCTION = "2201F" # Type: Error postgres comment: invalid_argument_for_power_function
ERRCODE_INVALID_ARGUMENT_FOR_WIDTH_BUCKET_FUNCTION = "2201G" # Type: Error postgres comment: invalid_argument_for_width_bucket_function
ERRCODE_INVALID_CHARACTER_VALUE_FOR_CAST = "22018" # Type: Error postgres comment: invalid_character_value_for_cast
ERRCODE_INVALID_DATETIME_FORMAT = "22007" # Type: Error postgres comment: invalid_datetime_format
ERRCODE_INVALID_ESCAPE_CHARACTER = "22019" # Type: Error postgres comment: invalid_escape_character
ERRCODE_INVALID_ESCAPE_OCTET = "2200D" # Type: Error postgres comment: invalid_escape_octet
ERRCODE_INVALID_ESCAPE_SEQUENCE = "22025" # Type: Error postgres comment: invalid_escape_sequence
ERRCODE_NONSTANDARD_USE_OF_ESCAPE_CHARACTER = "22P06" # Type: Error postgres comment: nonstandard_use_of_escape_character
ERRCODE_INVALID_INDICATOR_PARAMETER_VALUE = "22010" # Type: Error postgres comment: invalid_indicator_parameter_value
ERRCODE_INVALID_PARAMETER_VALUE = "22023" # Type: Error postgres comment: invalid_parameter_value
ERRCODE_INVALID_PRECEDING_OR_FOLLOWING_SIZE = "22013" # Type: Error postgres comment: invalid_preceding_or_following_size
ERRCODE_INVALID_REGULAR_EXPRESSION = "2201B" # Type: Error postgres comment: invalid_regular_expression
ERRCODE_INVALID_ROW_COUNT_IN_LIMIT_CLAUSE = "2201W" # Type: Error postgres comment: invalid_row_count_in_limit_clause
ERRCODE_INVALID_ROW_COUNT_IN_RESULT_OFFSET_CLAUSE = "2201X" # Type: Error postgres comment: invalid_row_count_in_result_offset_clause
ERRCODE_INVALID_TABLESAMPLE_ARGUMENT = "2202H" # Type: Error postgres comment: invalid_tablesample_argument
ERRCODE_INVALID_TABLESAMPLE_REPEAT = "2202G" # Type: Error postgres comment: invalid_tablesample_repeat
ERRCODE_INVALID_TIME_ZONE_DISPLACEMENT_VALUE = "22009" # Type: Error postgres comment: invalid_time_zone_displacement_value
ERRCODE_INVALID_USE_OF_ESCAPE_CHARACTER = "2200C" # Type: Error postgres comment: invalid_use_of_escape_character
ERRCODE_MOST_SPECIFIC_TYPE_MISMATCH = "2200G" # Type: Error postgres comment: most_specific_type_mismatch
ERRCODE_NULL_VALUE_NOT_ALLOWED = "22004" # Type: Error postgres comment: null_value_not_allowed
ERRCODE_NULL_VALUE_NO_INDICATOR_PARAMETER = "22002" # Type: Error postgres comment: null_value_no_indicator_parameter
ERRCODE_NUMERIC_VALUE_OUT_OF_RANGE = "22003" # Type: Error postgres comment: numeric_value_out_of_range
ERRCODE_SEQUENCE_GENERATOR_LIMIT_EXCEEDED = "2200H" # Type: Error postgres comment: sequence_generator_limit_exceeded
ERRCODE_STRING_DATA_LENGTH_MISMATCH = "22026" # Type: Error postgres comment: string_data_length_mismatch
ERRCODE_STRING_DATA_RIGHT_TRUNCATION = "22001" # Type: Error postgres comment: string_data_right_truncation
ERRCODE_SUBSTRING_ERROR = "22011" # Type: Error postgres comment: substring_error
ERRCODE_TRIM_ERROR = "22027" # Type: Error postgres comment: trim_error
ERRCODE_UNTERMINATED_C_STRING = "22024" # Type: Error postgres comment: unterminated_c_string
ERRCODE_ZERO_LENGTH_CHARACTER_STRING = "2200F" # Type: Error postgres comment: zero_length_character_string
ERRCODE_FLOATING_POINT_EXCEPTION = "22P01" # Type: Error postgres comment: floating_point_exception
ERRCODE_INVALID_TEXT_REPRESENTATION = "22P02" # Type: Error postgres comment: invalid_text_representation
ERRCODE_INVALID_BINARY_REPRESENTATION = "22P03" # Type: Error postgres comment: invalid_binary_representation
ERRCODE_BAD_COPY_FILE_FORMAT = "22P04" # Type: Error postgres comment: bad_copy_file_format
ERRCODE_UNTRANSLATABLE_CHARACTER = "22P05" # Type: Error postgres comment: untranslatable_character
ERRCODE_NOT_AN_XML_DOCUMENT = "2200L" # Type: Error postgres comment: not_an_xml_document
ERRCODE_INVALID_XML_DOCUMENT = "2200M" # Type: Error postgres comment: invalid_xml_document
ERRCODE_INVALID_XML_CONTENT = "2200N" # Type: Error postgres comment: invalid_xml_content
ERRCODE_INVALID_XML_COMMENT = "2200S" # Type: Error postgres comment: invalid_xml_comment
ERRCODE_INVALID_XML_PROCESSING_INSTRUCTION = "2200T" # Type: Error postgres comment: invalid_xml_processing_instruction
ERRCODE_DUPLICATE_JSON_OBJECT_KEY_VALUE = "22030" # Type: Error postgres comment: duplicate_json_object_key_value
ERRCODE_INVALID_ARGUMENT_FOR_SQL_JSON_DATETIME_FUNCTION = "22031" # Type: Error postgres comment: invalid_argument_for_sql_json_datetime_function
ERRCODE_INVALID_JSON_TEXT = "22032" # Type: Error postgres comment: invalid_json_text
ERRCODE_INVALID_SQL_JSON_SUBSCRIPT = "22033" # Type: Error postgres comment: invalid_sql_json_subscript
ERRCODE_MORE_THAN_ONE_SQL_JSON_ITEM = "22034" # Type: Error postgres comment: more_than_one_sql_json_item
ERRCODE_NO_SQL_JSON_ITEM = "22035" # Type: Error postgres comment: no_sql_json_item
ERRCODE_NON_NUMERIC_SQL_JSON_ITEM = "22036" # Type: Error postgres comment: non_numeric_sql_json_item
ERRCODE_NON_UNIQUE_KEYS_IN_A_JSON_OBJECT = "22037" # Type: Error postgres comment: non_unique_keys_in_a_json_object
ERRCODE_SINGLETON_SQL_JSON_ITEM_REQUIRED = "22038" # Type: Error postgres comment: singleton_sql_json_item_required
ERRCODE_SQL_JSON_ARRAY_NOT_FOUND = "22039" # Type: Error postgres comment: sql_json_array_not_found
ERRCODE_SQL_JSON_MEMBER_NOT_FOUND = "2203A" # Type: Error postgres comment: sql_json_member_not_found
ERRCODE_SQL_JSON_NUMBER_NOT_FOUND = "2203B" # Type: Error postgres comment: sql_json_number_not_found
ERRCODE_SQL_JSON_OBJECT_NOT_FOUND = "2203C" # Type: Error postgres comment: sql_json_object_not_found
ERRCODE_TOO_MANY_JSON_ARRAY_ELEMENTS = "2203D" # Type: Error postgres comment: too_many_json_array_elements
ERRCODE_TOO_MANY_JSON_OBJECT_MEMBERS = "2203E" # Type: Error postgres comment: too_many_json_object_members
ERRCODE_SQL_JSON_SCALAR_REQUIRED = "2203F" # Type: Error postgres comment: sql_json_scalar_required
ERRCODE_SQL_JSON_ITEM_CANNOT_BE_CAST_TO_TARGET_TYPE = "2203G" # Type: Error postgres comment: sql_json_item_cannot_be_cast_to_target_type
ERRCODE_INTEGRITY_CONSTRAINT_VIOLATION = "23000" # Type: Error postgres comment: integrity_constraint_violation
ERRCODE_RESTRICT_VIOLATION = "23001" # Type: Error postgres comment: restrict_violation
ERRCODE_NOT_NULL_VIOLATION = "23502" # Type: Error postgres comment: not_null_violation
ERRCODE_FOREIGN_KEY_VIOLATION = "23503" # Type: Error postgres comment: foreign_key_violation
ERRCODE_UNIQUE_VIOLATION = "23505" # Type: Error postgres comment: unique_violation
ERRCODE_CHECK_VIOLATION = "23514" # Type: Error postgres comment: check_violation
ERRCODE_EXCLUSION_VIOLATION = "23P01" # Type: Error postgres comment: exclusion_violation
ERRCODE_INVALID_CURSOR_STATE = "24000" # Type: Error postgres comment: invalid_cursor_state
ERRCODE_INVALID_TRANSACTION_STATE = "25000" # Type: Error postgres comment: invalid_transaction_state
ERRCODE_ACTIVE_SQL_TRANSACTION = "25001" # Type: Error postgres comment: active_sql_transaction
ERRCODE_BRANCH_TRANSACTION_ALREADY_ACTIVE = "25002" # Type: Error postgres comment: branch_transaction_already_active
ERRCODE_HELD_CURSOR_REQUIRES_SAME_ISOLATION_LEVEL = "25008" # Type: Error postgres comment: held_cursor_requires_same_isolation_level
ERRCODE_INAPPROPRIATE_ACCESS_MODE_FOR_BRANCH_TRANSACTION = "25003" # Type: Error postgres comment: inappropriate_access_mode_for_branch_transaction
ERRCODE_INAPPROPRIATE_ISOLATION_LEVEL_FOR_BRANCH_TRANSACTION = "25004" # Type: Error postgres comment: inappropriate_isolation_level_for_branch_transaction
ERRCODE_NO_ACTIVE_SQL_TRANSACTION_FOR_BRANCH_TRANSACTION = "25005" # Type: Error postgres comment: no_active_sql_transaction_for_branch_transaction
ERRCODE_READ_ONLY_SQL_TRANSACTION = "25006" # Type: Error postgres comment: read_only_sql_transaction
ERRCODE_SCHEMA_AND_DATA_STATEMENT_MIXING_NOT_SUPPORTED = "25007" # Type: Error postgres comment: schema_and_data_statement_mixing_not_supported
ERRCODE_NO_ACTIVE_SQL_TRANSACTION = "25P01" # Type: Error postgres comment: no_active_sql_transaction
ERRCODE_IN_FAILED_SQL_TRANSACTION = "25P02" # Type: Error postgres comment: in_failed_sql_transaction
ERRCODE_IDLE_IN_TRANSACTION_SESSION_TIMEOUT = "25P03" # Type: Error postgres comment: idle_in_transaction_session_timeout
ERRCODE_INVALID_SQL_STATEMENT_NAME = "26000" # Type: Error postgres comment: invalid_sql_statement_name
ERRCODE_TRIGGERED_DATA_CHANGE_VIOLATION = "27000" # Type: Error postgres comment: triggered_data_change_violation
ERRCODE_INVALID_AUTHORIZATION_SPECIFICATION = "28000" # Type: Error postgres comment: invalid_authorization_specification
ERRCODE_INVALID_PASSWORD = "28P01" # Type: Error postgres comment: invalid_password
ERRCODE_DEPENDENT_PRIVILEGE_DESCRIPTORS_STILL_EXIST = "2B000" # Type: Error postgres comment: dependent_privilege_descriptors_still_exist
ERRCODE_DEPENDENT_OBJECTS_STILL_EXIST = "2BP01" # Type: Error postgres comment: dependent_objects_still_exist
ERRCODE_INVALID_TRANSACTION_TERMINATION = "2D000" # Type: Error postgres comment: invalid_transaction_termination
ERRCODE_SQL_ROUTINE_EXCEPTION = "2F000" # Type: Error postgres comment: sql_routine_exception
ERRCODE_S_R_E_FUNCTION_EXECUTED_NO_RETURN_STATEMENT = "2F005" # Type: Error postgres comment: function_executed_no_return_statement
ERRCODE_S_R_E_MODIFYING_SQL_DATA_NOT_PERMITTED = "2F002" # Type: Error postgres comment: modifying_sql_data_not_permitted
ERRCODE_S_R_E_PROHIBITED_SQL_STATEMENT_ATTEMPTED = "2F003" # Type: Error postgres comment: prohibited_sql_statement_attempted
ERRCODE_S_R_E_READING_SQL_DATA_NOT_PERMITTED = "2F004" # Type: Error postgres comment: reading_sql_data_not_permitted
ERRCODE_INVALID_CURSOR_NAME = "34000" # Type: Error postgres comment: invalid_cursor_name
ERRCODE_EXTERNAL_ROUTINE_EXCEPTION = "38000" # Type: Error postgres comment: external_routine_exception
ERRCODE_E_R_E_CONTAINING_SQL_NOT_PERMITTED = "38001" # Type: Error postgres comment: containing_sql_not_permitted
ERRCODE_E_R_E_MODIFYING_SQL_DATA_NOT_PERMITTED = "38002" # Type: Error postgres comment: modifying_sql_data_not_permitted
ERRCODE_E_R_E_PROHIBITED_SQL_STATEMENT_ATTEMPTED = "38003" # Type: Error postgres comment: prohibited_sql_statement_attempted
ERRCODE_E_R_E_READING_SQL_DATA_NOT_PERMITTED = "38004" # Type: Error postgres comment: reading_sql_data_not_permitted
ERRCODE_EXTERNAL_ROUTINE_INVOCATION_EXCEPTION = "39000" # Type: Error postgres comment: external_routine_invocation_exception
ERRCODE_E_R_I_E_INVALID_SQLSTATE_RETURNED = "39001" # Type: Error postgres comment: invalid_sqlstate_returned
ERRCODE_E_R_I_E_NULL_VALUE_NOT_ALLOWED = "39004" # Type: Error postgres comment: null_value_not_allowed
ERRCODE_E_R_I_E_TRIGGER_PROTOCOL_VIOLATED = "39P01" # Type: Error postgres comment: trigger_protocol_violated
ERRCODE_E_R_I_E_SRF_PROTOCOL_VIOLATED = "39P02" # Type: Error postgres comment: srf_protocol_violated
ERRCODE_E_R_I_E_EVENT_TRIGGER_PROTOCOL_VIOLATED = "39P03" # Type: Error postgres comment: event_trigger_protocol_violated
ERRCODE_SAVEPOINT_EXCEPTION = "3B000" # Type: Error postgres comment: savepoint_exception
ERRCODE_S_E_INVALID_SPECIFICATION = "3B001" # Type: Error postgres comment: invalid_savepoint_specification
ERRCODE_INVALID_CATALOG_NAME = "3D000" # Type: Error postgres comment: invalid_catalog_name
ERRCODE_INVALID_SCHEMA_NAME = "3F000" # Type: Error postgres comment: invalid_schema_name
ERRCODE_TRANSACTION_ROLLBACK = "40000" # Type: Error postgres comment: transaction_rollback
ERRCODE_T_R_INTEGRITY_CONSTRAINT_VIOLATION = "40002" # Type: Error postgres comment: transaction_integrity_constraint_violation
ERRCODE_T_R_SERIALIZATION_FAILURE = "40001" # Type: Error postgres comment: serialization_failure
ERRCODE_T_R_STATEMENT_COMPLETION_UNKNOWN = "40003" # Type: Error postgres comment: statement_completion_unknown
ERRCODE_T_R_DEADLOCK_DETECTED = "40P01" # Type: Error postgres comment: deadlock_detected
ERRCODE_SYNTAX_ERROR_OR_ACCESS_RULE_VIOLATION = "42000" # Type: Error postgres comment: syntax_error_or_access_rule_violation
ERRCODE_SYNTAX_ERROR = "42601" # Type: Error postgres comment: syntax_error
ERRCODE_INSUFFICIENT_PRIVILEGE = "42501" # Type: Error postgres comment: insufficient_privilege
ERRCODE_CANNOT_COERCE = "42846" # Type: Error postgres comment: cannot_coerce
ERRCODE_GROUPING_ERROR = "42803" # Type: Error postgres comment: grouping_error
ERRCODE_WINDOWING_ERROR = "42P20" # Type: Error postgres comment: windowing_error
ERRCODE_INVALID_RECURSION = "42P19" # Type: Error postgres comment: invalid_recursion
ERRCODE_INVALID_FOREIGN_KEY = "42830" # Type: Error postgres comment: invalid_foreign_key
ERRCODE_INVALID_NAME = "42602" # Type: Error postgres comment: invalid_name
ERRCODE_NAME_TOO_LONG = "42622" # Type: Error postgres comment: name_too_long
ERRCODE_RESERVED_NAME = "42939" # Type: Error postgres comment: reserved_name
ERRCODE_DATATYPE_MISMATCH = "42804" # Type: Error postgres comment: datatype_mismatch
ERRCODE_INDETERMINATE_DATATYPE = "42P18" # Type: Error postgres comment: indeterminate_datatype
ERRCODE_COLLATION_MISMATCH = "42P21" # Type: Error postgres comment: collation_mismatch
ERRCODE_INDETERMINATE_COLLATION = "42P22" # Type: Error postgres comment: indeterminate_collation
ERRCODE_WRONG_OBJECT_TYPE = "42809" # Type: Error postgres comment: wrong_object_type
ERRCODE_GENERATED_ALWAYS = "428C9" # Type: Error postgres comment: generated_always
ERRCODE_UNDEFINED_COLUMN = "42703" # Type: Error postgres comment: undefined_column
ERRCODE_UNDEFINED_CURSOR = "34000" # postgres comment: E
ERRCODE_UNDEFINED_DATABASE = "3D000" # postgres comment: E
ERRCODE_UNDEFINED_FUNCTION = "42883" # Type: Error postgres comment: undefined_function
ERRCODE_UNDEFINED_PSTATEMENT = "26000" # postgres comment: E
ERRCODE_UNDEFINED_SCHEMA = "3F000" # postgres comment: E
ERRCODE_UNDEFINED_TABLE = "42P01" # Type: Error postgres comment: undefined_table
ERRCODE_UNDEFINED_PARAMETER = "42P02" # Type: Error postgres comment: undefined_parameter
ERRCODE_UNDEFINED_OBJECT = "42704" # Type: Error postgres comment: undefined_object
ERRCODE_DUPLICATE_COLUMN = "42701" # Type: Error postgres comment: duplicate_column
ERRCODE_DUPLICATE_CURSOR = "42P03" # Type: Error postgres comment: duplicate_cursor
ERRCODE_DUPLICATE_DATABASE = "42P04" # Type: Error postgres comment: duplicate_database
ERRCODE_DUPLICATE_FUNCTION = "42723" # Type: Error postgres comment: duplicate_function
ERRCODE_DUPLICATE_PSTATEMENT = "42P05" # Type: Error postgres comment: duplicate_prepared_statement
ERRCODE_DUPLICATE_SCHEMA = "42P06" # Type: Error postgres comment: duplicate_schema
ERRCODE_DUPLICATE_TABLE = "42P07" # Type: Error postgres comment: duplicate_table
ERRCODE_DUPLICATE_ALIAS = "42712" # Type: Error postgres comment: duplicate_alias
ERRCODE_DUPLICATE_OBJECT = "42710" # Type: Error postgres comment: duplicate_object
ERRCODE_AMBIGUOUS_COLUMN = "42702" # Type: Error postgres comment: ambiguous_column
ERRCODE_AMBIGUOUS_FUNCTION = "42725" # Type: Error postgres comment: ambiguous_function
ERRCODE_AMBIGUOUS_PARAMETER = "42P08" # Type: Error postgres comment: ambiguous_parameter
ERRCODE_AMBIGUOUS_ALIAS = "42P09" # Type: Error postgres comment: ambiguous_alias
ERRCODE_INVALID_COLUMN_REFERENCE = "42P10" # Type: Error postgres comment: invalid_column_reference
ERRCODE_INVALID_COLUMN_DEFINITION = "42611" # Type: Error postgres comment: invalid_column_definition
ERRCODE_INVALID_CURSOR_DEFINITION = "42P11" # Type: Error postgres comment: invalid_cursor_definition
ERRCODE_INVALID_DATABASE_DEFINITION = "42P12" # Type: Error postgres comment: invalid_database_definition
ERRCODE_INVALID_FUNCTION_DEFINITION = "42P13" # Type: Error postgres comment: invalid_function_definition
ERRCODE_INVALID_PSTATEMENT_DEFINITION = "42P14" # Type: Error postgres comment: invalid_prepared_statement_definition
ERRCODE_INVALID_SCHEMA_DEFINITION = "42P15" # Type: Error postgres comment: invalid_schema_definition
ERRCODE_INVALID_TABLE_DEFINITION = "42P16" # Type: Error postgres comment: invalid_table_definition
ERRCODE_INVALID_OBJECT_DEFINITION = "42P17" # Type: Error postgres comment: invalid_object_definition
ERRCODE_WITH_CHECK_OPTION_VIOLATION = "44000" # Type: Error postgres comment: with_check_option_violation
ERRCODE_INSUFFICIENT_RESOURCES = "53000" # Type: Error postgres comment: insufficient_resources
ERRCODE_DISK_FULL = "53100" # Type: Error postgres comment: disk_full
ERRCODE_OUT_OF_MEMORY = "53200" # Type: Error postgres comment: out_of_memory
ERRCODE_TOO_MANY_CONNECTIONS = "53300" # Type: Error postgres comment: too_many_connections
ERRCODE_CONFIGURATION_LIMIT_EXCEEDED = "53400" # Type: Error postgres comment: configuration_limit_exceeded
ERRCODE_PROGRAM_LIMIT_EXCEEDED = "54000" # Type: Error postgres comment: program_limit_exceeded
ERRCODE_STATEMENT_TOO_COMPLEX = "54001" # Type: Error postgres comment: statement_too_complex
ERRCODE_TOO_MANY_COLUMNS = "54011" # Type: Error postgres comment: too_many_columns
ERRCODE_TOO_MANY_ARGUMENTS = "54023" # Type: Error postgres comment: too_many_arguments
ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE = "55000" # Type: Error postgres comment: object_not_in_prerequisite_state
ERRCODE_OBJECT_IN_USE = "55006" # Type: Error postgres comment: object_in_use
ERRCODE_CANT_CHANGE_RUNTIME_PARAM = "55P02" # Type: Error postgres comment: cant_change_runtime_param
ERRCODE_LOCK_NOT_AVAILABLE = "55P03" # Type: Error postgres comment: lock_not_available
ERRCODE_UNSAFE_NEW_ENUM_VALUE_USAGE = "55P04" # Type: Error postgres comment: unsafe_new_enum_value_usage
ERRCODE_OPERATOR_INTERVENTION = "57000" # Type: Error postgres comment: operator_intervention
ERRCODE_QUERY_CANCELED = "57014" # Type: Error postgres comment: query_canceled
ERRCODE_ADMIN_SHUTDOWN = "57P01" # Type: Error postgres comment: admin_shutdown
ERRCODE_CRASH_SHUTDOWN = "57P02" # Type: Error postgres comment: crash_shutdown
ERRCODE_CANNOT_CONNECT_NOW = "57P03" # Type: Error postgres comment: cannot_connect_now
ERRCODE_DATABASE_DROPPED = "57P04" # Type: Error postgres comment: database_dropped
ERRCODE_IDLE_SESSION_TIMEOUT = "57P05" # Type: Error postgres comment: idle_session_timeout
ERRCODE_SYSTEM_ERROR = "58000" # Type: Error postgres comment: system_error
ERRCODE_IO_ERROR = "58030" # Type: Error postgres comment: io_error
ERRCODE_UNDEFINED_FILE = "58P01" # Type: Error postgres comment: undefined_file
ERRCODE_DUPLICATE_FILE = "58P02" # Type: Error postgres comment: duplicate_file
ERRCODE_SNAPSHOT_TOO_OLD = "72000" # Type: Error postgres comment: snapshot_too_old
ERRCODE_CONFIG_FILE_ERROR = "F0000" # Type: Error postgres comment: config_file_error
ERRCODE_LOCK_FILE_EXISTS = "F0001" # Type: Error postgres comment: lock_file_exists
ERRCODE_FDW_ERROR = "HV000" # Type: Error postgres comment: fdw_error
ERRCODE_FDW_COLUMN_NAME_NOT_FOUND = "HV005" # Type: Error postgres comment: fdw_column_name_not_found
ERRCODE_FDW_DYNAMIC_PARAMETER_VALUE_NEEDED = "HV002" # Type: Error postgres comment: fdw_dynamic_parameter_value_needed
ERRCODE_FDW_FUNCTION_SEQUENCE_ERROR = "HV010" # Type: Error postgres comment: fdw_function_sequence_error
ERRCODE_FDW_INCONSISTENT_DESCRIPTOR_INFORMATION = "HV021" # Type: Error postgres comment: fdw_inconsistent_descriptor_information
ERRCODE_FDW_INVALID_ATTRIBUTE_VALUE = "HV024" # Type: Error postgres comment: fdw_invalid_attribute_value
ERRCODE_FDW_INVALID_COLUMN_NAME = "HV007" # Type: Error postgres comment: fdw_invalid_column_name
ERRCODE_FDW_INVALID_COLUMN_NUMBER = "HV008" # Type: Error postgres comment: fdw_invalid_column_number
ERRCODE_FDW_INVALID_DATA_TYPE = "HV004" # Type: Error postgres comment: fdw_invalid_data_type
ERRCODE_FDW_INVALID_DATA_TYPE_DESCRIPTORS = "HV006" # Type: Error postgres comment: fdw_invalid_data_type_descriptors
ERRCODE_FDW_INVALID_DESCRIPTOR_FIELD_IDENTIFIER = "HV091" # Type: Error postgres comment: fdw_invalid_descriptor_field_identifier
ERRCODE_FDW_INVALID_HANDLE = "HV00B" # Type: Error postgres comment: fdw_invalid_handle
ERRCODE_FDW_INVALID_OPTION_INDEX = "HV00C" # Type: Error postgres comment: fdw_invalid_option_index
ERRCODE_FDW_INVALID_OPTION_NAME = "HV00D" # Type: Error postgres comment: fdw_invalid_option_name
ERRCODE_FDW_INVALID_STRING_LENGTH_OR_BUFFER_LENGTH = "HV090" # Type: Error postgres comment: fdw_invalid_string_length_or_buffer_length
ERRCODE_FDW_INVALID_STRING_FORMAT = "HV00A" # Type: Error postgres comment: fdw_invalid_string_format
ERRCODE_FDW_INVALID_USE_OF_NULL_POINTER = "HV009" # Type: Error postgres comment: fdw_invalid_use_of_null_pointer
ERRCODE_FDW_TOO_MANY_HANDLES = "HV014" # Type: Error postgres comment: fdw_too_many_handles
ERRCODE_FDW_OUT_OF_MEMORY = "HV001" # Type: Error postgres comment: fdw_out_of_memory
ERRCODE_FDW_NO_SCHEMAS = "HV00P" # Type: Error postgres comment: fdw_no_schemas
ERRCODE_FDW_OPTION_NAME_NOT_FOUND = "HV00J" # Type: Error postgres comment: fdw_option_name_not_found
ERRCODE_FDW_REPLY_HANDLE = "HV00K" # Type: Error postgres comment: fdw_reply_handle
ERRCODE_FDW_SCHEMA_NOT_FOUND = "HV00Q" # Type: Error postgres comment: fdw_schema_not_found
ERRCODE_FDW_TABLE_NOT_FOUND = "HV00R" # Type: Error postgres comment: fdw_table_not_found
ERRCODE_FDW_UNABLE_TO_CREATE_EXECUTION = "HV00L" # Type: Error postgres comment: fdw_unable_to_create_execution
ERRCODE_FDW_UNABLE_TO_CREATE_REPLY = "HV00M" # Type: Error postgres comment: fdw_unable_to_create_reply
ERRCODE_FDW_UNABLE_TO_ESTABLISH_CONNECTION = "HV00N" # Type: Error postgres comment: fdw_unable_to_establish_connection
ERRCODE_PLPGSQL_ERROR = "P0000" # Type: Error postgres comment: plpgsql_error
ERRCODE_RAISE_EXCEPTION = "P0001" # Type: Error postgres comment: raise_exception
ERRCODE_NO_DATA_FOUND = "P0002" # Type: Error postgres comment: no_data_found
ERRCODE_TOO_MANY_ROWS = "P0003" # Type: Error postgres comment: too_many_rows
ERRCODE_ASSERT_FAILURE = "P0004" # Type: Error postgres comment: assert_failure
ERRCODE_INTERNAL_ERROR = "XX000" # Type: Error postgres comment: internal_error
ERRCODE_DATA_CORRUPTED = "XX001" # Type: Error postgres comment: data_corrupted
ERRCODE_INDEX_CORRUPTED = "XX002" # Type: Error postgres comment: index_corrupted
ERROR_CODE = Union[
Literal[ERRCODE_SUCCESSFUL_COMPLETION],
Literal[ERRCODE_WARNING],
Literal[ERRCODE_WARNING_DYNAMIC_RESULT_SETS_RETURNED],
Literal[ERRCODE_WARNING_IMPLICIT_ZERO_BIT_PADDING],
Literal[ERRCODE_WARNING_NULL_VALUE_ELIMINATED_IN_SET_FUNCTION],
Literal[ERRCODE_WARNING_PRIVILEGE_NOT_GRANTED],
Literal[ERRCODE_WARNING_PRIVILEGE_NOT_REVOKED],
Literal[ERRCODE_WARNING_STRING_DATA_RIGHT_TRUNCATION],
Literal[ERRCODE_WARNING_DEPRECATED_FEATURE],
Literal[ERRCODE_NO_DATA],
Literal[ERRCODE_NO_ADDITIONAL_DYNAMIC_RESULT_SETS_RETURNED],
Literal[ERRCODE_SQL_STATEMENT_NOT_YET_COMPLETE],
Literal[ERRCODE_CONNECTION_EXCEPTION],
Literal[ERRCODE_CONNECTION_DOES_NOT_EXIST],
Literal[ERRCODE_CONNECTION_FAILURE],
Literal[ERRCODE_SQLCLIENT_UNABLE_TO_ESTABLISH_SQLCONNECTION],
Literal[ERRCODE_SQLSERVER_REJECTED_ESTABLISHMENT_OF_SQLCONNECTION],
Literal[ERRCODE_TRANSACTION_RESOLUTION_UNKNOWN],
Literal[ERRCODE_PROTOCOL_VIOLATION],
Literal[ERRCODE_TRIGGERED_ACTION_EXCEPTION],
Literal[ERRCODE_FEATURE_NOT_SUPPORTED],
Literal[ERRCODE_INVALID_TRANSACTION_INITIATION],
Literal[ERRCODE_LOCATOR_EXCEPTION],
Literal[ERRCODE_L_E_INVALID_SPECIFICATION],
Literal[ERRCODE_INVALID_GRANTOR],
Literal[ERRCODE_INVALID_GRANT_OPERATION],
Literal[ERRCODE_INVALID_ROLE_SPECIFICATION],
Literal[ERRCODE_DIAGNOSTICS_EXCEPTION],
Literal[ERRCODE_STACKED_DIAGNOSTICS_ACCESSED_WITHOUT_ACTIVE_HANDLER],
Literal[ERRCODE_CASE_NOT_FOUND],
Literal[ERRCODE_CARDINALITY_VIOLATION],
Literal[ERRCODE_DATA_EXCEPTION],
Literal[ERRCODE_ARRAY_ELEMENT_ERROR],
Literal[ERRCODE_ARRAY_SUBSCRIPT_ERROR],
Literal[ERRCODE_CHARACTER_NOT_IN_REPERTOIRE],
Literal[ERRCODE_DATETIME_FIELD_OVERFLOW],
Literal[ERRCODE_DATETIME_VALUE_OUT_OF_RANGE],
Literal[ERRCODE_DIVISION_BY_ZERO],
Literal[ERRCODE_ERROR_IN_ASSIGNMENT],
Literal[ERRCODE_ESCAPE_CHARACTER_CONFLICT],
Literal[ERRCODE_INDICATOR_OVERFLOW],
Literal[ERRCODE_INTERVAL_FIELD_OVERFLOW],
Literal[ERRCODE_INVALID_ARGUMENT_FOR_LOG],
Literal[ERRCODE_INVALID_ARGUMENT_FOR_NTILE],
Literal[ERRCODE_INVALID_ARGUMENT_FOR_NTH_VALUE],
Literal[ERRCODE_INVALID_ARGUMENT_FOR_POWER_FUNCTION],
Literal[ERRCODE_INVALID_ARGUMENT_FOR_WIDTH_BUCKET_FUNCTION],
Literal[ERRCODE_INVALID_CHARACTER_VALUE_FOR_CAST],
Literal[ERRCODE_INVALID_DATETIME_FORMAT],
Literal[ERRCODE_INVALID_ESCAPE_CHARACTER],
Literal[ERRCODE_INVALID_ESCAPE_OCTET],
Literal[ERRCODE_INVALID_ESCAPE_SEQUENCE],
Literal[ERRCODE_NONSTANDARD_USE_OF_ESCAPE_CHARACTER],
Literal[ERRCODE_INVALID_INDICATOR_PARAMETER_VALUE],
Literal[ERRCODE_INVALID_PARAMETER_VALUE],
Literal[ERRCODE_INVALID_PRECEDING_OR_FOLLOWING_SIZE],
Literal[ERRCODE_INVALID_REGULAR_EXPRESSION],
Literal[ERRCODE_INVALID_ROW_COUNT_IN_LIMIT_CLAUSE],
Literal[ERRCODE_INVALID_ROW_COUNT_IN_RESULT_OFFSET_CLAUSE],
Literal[ERRCODE_INVALID_TABLESAMPLE_ARGUMENT],
Literal[ERRCODE_INVALID_TABLESAMPLE_REPEAT],
Literal[ERRCODE_INVALID_TIME_ZONE_DISPLACEMENT_VALUE],
Literal[ERRCODE_INVALID_USE_OF_ESCAPE_CHARACTER],
Literal[ERRCODE_MOST_SPECIFIC_TYPE_MISMATCH],
Literal[ERRCODE_NULL_VALUE_NOT_ALLOWED],
Literal[ERRCODE_NULL_VALUE_NO_INDICATOR_PARAMETER],
Literal[ERRCODE_NUMERIC_VALUE_OUT_OF_RANGE],
Literal[ERRCODE_SEQUENCE_GENERATOR_LIMIT_EXCEEDED],
Literal[ERRCODE_STRING_DATA_LENGTH_MISMATCH],
Literal[ERRCODE_STRING_DATA_RIGHT_TRUNCATION],
Literal[ERRCODE_SUBSTRING_ERROR],
Literal[ERRCODE_TRIM_ERROR],
Literal[ERRCODE_UNTERMINATED_C_STRING],
Literal[ERRCODE_ZERO_LENGTH_CHARACTER_STRING],
Literal[ERRCODE_FLOATING_POINT_EXCEPTION],
Literal[ERRCODE_INVALID_TEXT_REPRESENTATION],
Literal[ERRCODE_INVALID_BINARY_REPRESENTATION],
Literal[ERRCODE_BAD_COPY_FILE_FORMAT],
Literal[ERRCODE_UNTRANSLATABLE_CHARACTER],
Literal[ERRCODE_NOT_AN_XML_DOCUMENT],
Literal[ERRCODE_INVALID_XML_DOCUMENT],
Literal[ERRCODE_INVALID_XML_CONTENT],
Literal[ERRCODE_INVALID_XML_COMMENT],
Literal[ERRCODE_INVALID_XML_PROCESSING_INSTRUCTION],
Literal[ERRCODE_DUPLICATE_JSON_OBJECT_KEY_VALUE],
Literal[ERRCODE_INVALID_ARGUMENT_FOR_SQL_JSON_DATETIME_FUNCTION],
Literal[ERRCODE_INVALID_JSON_TEXT],
Literal[ERRCODE_INVALID_SQL_JSON_SUBSCRIPT],
Literal[ERRCODE_MORE_THAN_ONE_SQL_JSON_ITEM],
Literal[ERRCODE_NO_SQL_JSON_ITEM],
Literal[ERRCODE_NON_NUMERIC_SQL_JSON_ITEM],
Literal[ERRCODE_NON_UNIQUE_KEYS_IN_A_JSON_OBJECT],
Literal[ERRCODE_SINGLETON_SQL_JSON_ITEM_REQUIRED],
Literal[ERRCODE_SQL_JSON_ARRAY_NOT_FOUND],
Literal[ERRCODE_SQL_JSON_MEMBER_NOT_FOUND],
Literal[ERRCODE_SQL_JSON_NUMBER_NOT_FOUND],
Literal[ERRCODE_SQL_JSON_OBJECT_NOT_FOUND],
Literal[ERRCODE_TOO_MANY_JSON_ARRAY_ELEMENTS],
Literal[ERRCODE_TOO_MANY_JSON_OBJECT_MEMBERS],
Literal[ERRCODE_SQL_JSON_SCALAR_REQUIRED],
Literal[ERRCODE_SQL_JSON_ITEM_CANNOT_BE_CAST_TO_TARGET_TYPE],
Literal[ERRCODE_INTEGRITY_CONSTRAINT_VIOLATION],
Literal[ERRCODE_RESTRICT_VIOLATION],
Literal[ERRCODE_NOT_NULL_VIOLATION],
Literal[ERRCODE_FOREIGN_KEY_VIOLATION],
Literal[ERRCODE_UNIQUE_VIOLATION],
Literal[ERRCODE_CHECK_VIOLATION],
Literal[ERRCODE_EXCLUSION_VIOLATION],
Literal[ERRCODE_INVALID_CURSOR_STATE],
Literal[ERRCODE_INVALID_TRANSACTION_STATE],
Literal[ERRCODE_ACTIVE_SQL_TRANSACTION],
Literal[ERRCODE_BRANCH_TRANSACTION_ALREADY_ACTIVE],
Literal[ERRCODE_HELD_CURSOR_REQUIRES_SAME_ISOLATION_LEVEL],
Literal[ERRCODE_INAPPROPRIATE_ACCESS_MODE_FOR_BRANCH_TRANSACTION],
Literal[ERRCODE_INAPPROPRIATE_ISOLATION_LEVEL_FOR_BRANCH_TRANSACTION],
Literal[ERRCODE_NO_ACTIVE_SQL_TRANSACTION_FOR_BRANCH_TRANSACTION],
Literal[ERRCODE_READ_ONLY_SQL_TRANSACTION],
Literal[ERRCODE_SCHEMA_AND_DATA_STATEMENT_MIXING_NOT_SUPPORTED],
Literal[ERRCODE_NO_ACTIVE_SQL_TRANSACTION],
Literal[ERRCODE_IN_FAILED_SQL_TRANSACTION],
Literal[ERRCODE_IDLE_IN_TRANSACTION_SESSION_TIMEOUT],
Literal[ERRCODE_INVALID_SQL_STATEMENT_NAME],
Literal[ERRCODE_TRIGGERED_DATA_CHANGE_VIOLATION],
Literal[ERRCODE_INVALID_AUTHORIZATION_SPECIFICATION],
Literal[ERRCODE_INVALID_PASSWORD],
Literal[ERRCODE_DEPENDENT_PRIVILEGE_DESCRIPTORS_STILL_EXIST],
Literal[ERRCODE_DEPENDENT_OBJECTS_STILL_EXIST],
Literal[ERRCODE_INVALID_TRANSACTION_TERMINATION],
Literal[ERRCODE_SQL_ROUTINE_EXCEPTION],
Literal[ERRCODE_S_R_E_FUNCTION_EXECUTED_NO_RETURN_STATEMENT],
Literal[ERRCODE_S_R_E_MODIFYING_SQL_DATA_NOT_PERMITTED],
Literal[ERRCODE_S_R_E_PROHIBITED_SQL_STATEMENT_ATTEMPTED],
Literal[ERRCODE_S_R_E_READING_SQL_DATA_NOT_PERMITTED],
Literal[ERRCODE_INVALID_CURSOR_NAME],
Literal[ERRCODE_EXTERNAL_ROUTINE_EXCEPTION],
Literal[ERRCODE_E_R_E_CONTAINING_SQL_NOT_PERMITTED],
Literal[ERRCODE_E_R_E_MODIFYING_SQL_DATA_NOT_PERMITTED],
Literal[ERRCODE_E_R_E_PROHIBITED_SQL_STATEMENT_ATTEMPTED],
Literal[ERRCODE_E_R_E_READING_SQL_DATA_NOT_PERMITTED],
Literal[ERRCODE_EXTERNAL_ROUTINE_INVOCATION_EXCEPTION],
Literal[ERRCODE_E_R_I_E_INVALID_SQLSTATE_RETURNED],
Literal[ERRCODE_E_R_I_E_NULL_VALUE_NOT_ALLOWED],
Literal[ERRCODE_E_R_I_E_TRIGGER_PROTOCOL_VIOLATED],
Literal[ERRCODE_E_R_I_E_SRF_PROTOCOL_VIOLATED],
Literal[ERRCODE_E_R_I_E_EVENT_TRIGGER_PROTOCOL_VIOLATED],
Literal[ERRCODE_SAVEPOINT_EXCEPTION],
Literal[ERRCODE_S_E_INVALID_SPECIFICATION],
Literal[ERRCODE_INVALID_CATALOG_NAME],
Literal[ERRCODE_INVALID_SCHEMA_NAME],
Literal[ERRCODE_TRANSACTION_ROLLBACK],
Literal[ERRCODE_T_R_INTEGRITY_CONSTRAINT_VIOLATION],
Literal[ERRCODE_T_R_SERIALIZATION_FAILURE],
Literal[ERRCODE_T_R_STATEMENT_COMPLETION_UNKNOWN],
Literal[ERRCODE_T_R_DEADLOCK_DETECTED],
Literal[ERRCODE_SYNTAX_ERROR_OR_ACCESS_RULE_VIOLATION],
Literal[ERRCODE_SYNTAX_ERROR],
Literal[ERRCODE_INSUFFICIENT_PRIVILEGE],
Literal[ERRCODE_CANNOT_COERCE],
Literal[ERRCODE_GROUPING_ERROR],
Literal[ERRCODE_WINDOWING_ERROR],
Literal[ERRCODE_INVALID_RECURSION],
Literal[ERRCODE_INVALID_FOREIGN_KEY],
Literal[ERRCODE_INVALID_NAME],
Literal[ERRCODE_NAME_TOO_LONG],
Literal[ERRCODE_RESERVED_NAME],
Literal[ERRCODE_DATATYPE_MISMATCH],
Literal[ERRCODE_INDETERMINATE_DATATYPE],
Literal[ERRCODE_COLLATION_MISMATCH],
Literal[ERRCODE_INDETERMINATE_COLLATION],
Literal[ERRCODE_WRONG_OBJECT_TYPE],
Literal[ERRCODE_GENERATED_ALWAYS],
Literal[ERRCODE_UNDEFINED_COLUMN],
Literal[ERRCODE_UNDEFINED_CURSOR],
Literal[ERRCODE_UNDEFINED_DATABASE],
Literal[ERRCODE_UNDEFINED_FUNCTION],
Literal[ERRCODE_UNDEFINED_PSTATEMENT],
Literal[ERRCODE_UNDEFINED_SCHEMA],
Literal[ERRCODE_UNDEFINED_TABLE],
Literal[ERRCODE_UNDEFINED_PARAMETER],
Literal[ERRCODE_UNDEFINED_OBJECT],
Literal[ERRCODE_DUPLICATE_COLUMN],
Literal[ERRCODE_DUPLICATE_CURSOR],
Literal[ERRCODE_DUPLICATE_DATABASE],
Literal[ERRCODE_DUPLICATE_FUNCTION],
Literal[ERRCODE_DUPLICATE_PSTATEMENT],
Literal[ERRCODE_DUPLICATE_SCHEMA],
Literal[ERRCODE_DUPLICATE_TABLE],
Literal[ERRCODE_DUPLICATE_ALIAS],
Literal[ERRCODE_DUPLICATE_OBJECT],
Literal[ERRCODE_AMBIGUOUS_COLUMN],
Literal[ERRCODE_AMBIGUOUS_FUNCTION],
Literal[ERRCODE_AMBIGUOUS_PARAMETER],
Literal[ERRCODE_AMBIGUOUS_ALIAS],
Literal[ERRCODE_INVALID_COLUMN_REFERENCE],
Literal[ERRCODE_INVALID_COLUMN_DEFINITION],
Literal[ERRCODE_INVALID_CURSOR_DEFINITION],
Literal[ERRCODE_INVALID_DATABASE_DEFINITION],
Literal[ERRCODE_INVALID_FUNCTION_DEFINITION],
Literal[ERRCODE_INVALID_PSTATEMENT_DEFINITION],
Literal[ERRCODE_INVALID_SCHEMA_DEFINITION],
Literal[ERRCODE_INVALID_TABLE_DEFINITION],
Literal[ERRCODE_INVALID_OBJECT_DEFINITION],
Literal[ERRCODE_WITH_CHECK_OPTION_VIOLATION],
Literal[ERRCODE_INSUFFICIENT_RESOURCES],
Literal[ERRCODE_DISK_FULL],
Literal[ERRCODE_OUT_OF_MEMORY],
Literal[ERRCODE_TOO_MANY_CONNECTIONS],
Literal[ERRCODE_CONFIGURATION_LIMIT_EXCEEDED],
Literal[ERRCODE_PROGRAM_LIMIT_EXCEEDED],
Literal[ERRCODE_STATEMENT_TOO_COMPLEX],
Literal[ERRCODE_TOO_MANY_COLUMNS],
Literal[ERRCODE_TOO_MANY_ARGUMENTS],
Literal[ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE],
Literal[ERRCODE_OBJECT_IN_USE],
Literal[ERRCODE_CANT_CHANGE_RUNTIME_PARAM],
Literal[ERRCODE_LOCK_NOT_AVAILABLE],
Literal[ERRCODE_UNSAFE_NEW_ENUM_VALUE_USAGE],
Literal[ERRCODE_OPERATOR_INTERVENTION],
Literal[ERRCODE_QUERY_CANCELED],
Literal[ERRCODE_ADMIN_SHUTDOWN],
Literal[ERRCODE_CRASH_SHUTDOWN],
Literal[ERRCODE_CANNOT_CONNECT_NOW],
Literal[ERRCODE_DATABASE_DROPPED],
Literal[ERRCODE_IDLE_SESSION_TIMEOUT],
Literal[ERRCODE_SYSTEM_ERROR],
Literal[ERRCODE_IO_ERROR],
Literal[ERRCODE_UNDEFINED_FILE],
Literal[ERRCODE_DUPLICATE_FILE],
Literal[ERRCODE_SNAPSHOT_TOO_OLD],
Literal[ERRCODE_CONFIG_FILE_ERROR],
Literal[ERRCODE_LOCK_FILE_EXISTS],
Literal[ERRCODE_FDW_ERROR],
Literal[ERRCODE_FDW_COLUMN_NAME_NOT_FOUND],
Literal[ERRCODE_FDW_DYNAMIC_PARAMETER_VALUE_NEEDED],
Literal[ERRCODE_FDW_FUNCTION_SEQUENCE_ERROR],
Literal[ERRCODE_FDW_INCONSISTENT_DESCRIPTOR_INFORMATION],
Literal[ERRCODE_FDW_INVALID_ATTRIBUTE_VALUE],
Literal[ERRCODE_FDW_INVALID_COLUMN_NAME],
Literal[ERRCODE_FDW_INVALID_COLUMN_NUMBER],
Literal[ERRCODE_FDW_INVALID_DATA_TYPE],
Literal[ERRCODE_FDW_INVALID_DATA_TYPE_DESCRIPTORS],
Literal[ERRCODE_FDW_INVALID_DESCRIPTOR_FIELD_IDENTIFIER],
Literal[ERRCODE_FDW_INVALID_HANDLE],
Literal[ERRCODE_FDW_INVALID_OPTION_INDEX],
Literal[ERRCODE_FDW_INVALID_OPTION_NAME],
Literal[ERRCODE_FDW_INVALID_STRING_LENGTH_OR_BUFFER_LENGTH],
Literal[ERRCODE_FDW_INVALID_STRING_FORMAT],
Literal[ERRCODE_FDW_INVALID_USE_OF_NULL_POINTER],
Literal[ERRCODE_FDW_TOO_MANY_HANDLES],
Literal[ERRCODE_FDW_OUT_OF_MEMORY],
Literal[ERRCODE_FDW_NO_SCHEMAS],
Literal[ERRCODE_FDW_OPTION_NAME_NOT_FOUND],
Literal[ERRCODE_FDW_REPLY_HANDLE],
Literal[ERRCODE_FDW_SCHEMA_NOT_FOUND],
Literal[ERRCODE_FDW_TABLE_NOT_FOUND],
Literal[ERRCODE_FDW_UNABLE_TO_CREATE_EXECUTION],
Literal[ERRCODE_FDW_UNABLE_TO_CREATE_REPLY],
Literal[ERRCODE_FDW_UNABLE_TO_ESTABLISH_CONNECTION],
Literal[ERRCODE_PLPGSQL_ERROR],
Literal[ERRCODE_RAISE_EXCEPTION],
Literal[ERRCODE_NO_DATA_FOUND],
Literal[ERRCODE_TOO_MANY_ROWS],
Literal[ERRCODE_ASSERT_FAILURE],
Literal[ERRCODE_INTERNAL_ERROR],
Literal[ERRCODE_DATA_CORRUPTED],
Literal[ERRCODE_INDEX_CORRUPTED],
]
# https://www.postgresql.org/docs/15/datatype-oid.html
# "The oid type is currently implemented as an unsigned four-byte integer."
Oid = int
# https://github.com/postgres/postgres/blob/8028e294b456bf1539649527fd98b3985fa4752a/src/include/nodes/parsenodes.h#L1187
# integer list of column typmods
TypMod = int
class SPIError(Exception):
pass
class spiexceptions:
"""This is supposed to be a module, but for the sake of keeping everything in one file, I'm using a class"""
class ActiveSqlTransaction(SPIError):
pass
class AdminShutdown(SPIError):
pass
class AmbiguousAlias(SPIError):
pass
class AmbiguousColumn(SPIError):
pass
class AmbiguousFunction(SPIError):
pass
class AmbiguousParameter(SPIError):
pass
class ArraySubscriptError(SPIError):
pass
class AssertFailure(SPIError):
pass
class BadCopyFileFormat(SPIError):
pass
class BranchTransactionAlreadyActive(SPIError):
pass
class CannotCoerce(SPIError):
pass
class CannotConnectNow(SPIError):
pass
class CantChangeRuntimeParam(SPIError):
pass
class CardinalityViolation(SPIError):
pass
class CaseNotFound(SPIError):
pass
class CharacterNotInRepertoire(SPIError):
pass
class CheckViolation(SPIError):
pass
class CollationMismatch(SPIError):
pass
class ConfigFileError(SPIError):
pass
class ConfigurationLimitExceeded(SPIError):
pass
class ConnectionDoesNotExist(SPIError):
pass
class ConnectionException(SPIError):
pass
class ConnectionFailure(SPIError):
pass
class ContainingSqlNotPermitted(SPIError):
pass
class CrashShutdown(SPIError):
pass
class DataCorrupted(SPIError):
pass
class DataException(SPIError):
pass
class DatabaseDropped(SPIError):
pass
class DatatypeMismatch(SPIError):
pass
class DatetimeFieldOverflow(SPIError):
pass
class DeadlockDetected(SPIError):
pass
class DependentObjectsStillExist(SPIError):
pass
class DependentPrivilegeDescriptorsStillExist(SPIError):
pass
class DiagnosticsException(SPIError):
pass
class DiskFull(SPIError):
pass
class DivisionByZero(SPIError):
pass
class DuplicateAlias(SPIError):
pass
class DuplicateColumn(SPIError):
pass
class DuplicateCursor(SPIError):
pass
class DuplicateDatabase(SPIError):
pass
class DuplicateFile(SPIError):
pass
class DuplicateFunction(SPIError):
pass
class DuplicateJsonObjectKeyValue(SPIError):
pass
class DuplicateObject(SPIError):
pass
class DuplicatePreparedStatement(SPIError):
pass
class DuplicateSchema(SPIError):
pass
class DuplicateTable(SPIError):
pass
class ErrorInAssignment(SPIError):
pass
class EscapeCharacterConflict(SPIError):
pass
class EventTriggerProtocolViolated(SPIError):
pass
class ExclusionViolation(SPIError):
pass
class ExternalRoutineException(SPIError):
pass
class ExternalRoutineInvocationException(SPIError):
pass
class FdwColumnNameNotFound(SPIError):
pass
class FdwDynamicParameterValueNeeded(SPIError):
pass
class FdwError(SPIError):
pass
class FdwFunctionSequenceError(SPIError):
pass
class FdwInconsistentDescriptorInformation(SPIError):
pass
class FdwInvalidAttributeValue(SPIError):
pass
class FdwInvalidColumnName(SPIError):
pass
class FdwInvalidColumnNumber(SPIError):
pass
class FdwInvalidDataType(SPIError):
pass
class FdwInvalidDataTypeDescriptors(SPIError):
pass
class FdwInvalidDescriptorFieldIdentifier(SPIError):
pass
class FdwInvalidHandle(SPIError):
pass
class FdwInvalidOptionIndex(SPIError):
pass
class FdwInvalidOptionName(SPIError):
pass
class FdwInvalidStringFormat(SPIError):
pass
class FdwInvalidStringLengthOrBufferLength(SPIError):
pass
class FdwInvalidUseOfNullPointer(SPIError):
pass
class FdwNoSchemas(SPIError):
pass
class FdwOptionNameNotFound(SPIError):
pass
class FdwOutOfMemory(SPIError):
pass
class FdwReplyHandle(SPIError):
pass
class FdwSchemaNotFound(SPIError):
pass
class FdwTableNotFound(SPIError):
pass
class FdwTooManyHandles(SPIError):
pass
class FdwUnableToCreateExecution(SPIError):
pass
class FdwUnableToCreateReply(SPIError):
pass
class FdwUnableToEstablishConnection(SPIError):
pass
class FeatureNotSupported(SPIError):
pass
class FloatingPointException(SPIError):
pass
class ForeignKeyViolation(SPIError):
pass
class FunctionExecutedNoReturnStatement(SPIError):
pass
class GeneratedAlways(SPIError):
pass
class GroupingError(SPIError):
pass
class HeldCursorRequiresSameIsolationLevel(SPIError):
pass
class IdleInTransactionSessionTimeout(SPIError):
pass
class InFailedSqlTransaction(SPIError):
pass
class InappropriateAccessModeForBranchTransaction(SPIError):
pass
class InappropriateIsolationLevelForBranchTransaction(SPIError):
pass
class IndeterminateCollation(SPIError):
pass
class IndeterminateDatatype(SPIError):
pass
class IndexCorrupted(SPIError):
pass
class IndicatorOverflow(SPIError):
pass
class InsufficientPrivilege(SPIError):
pass
class InsufficientResources(SPIError):
pass
class IntegrityConstraintViolation(SPIError):
pass
class InternalError(SPIError):
pass
class IntervalFieldOverflow(SPIError):
pass
class InvalidArgumentForLogarithm(SPIError):
pass
class InvalidArgumentForNthValueFunction(SPIError):
pass
class InvalidArgumentForNtileFunction(SPIError):
pass
class InvalidArgumentForPowerFunction(SPIError):
pass
class InvalidArgumentForSqlJsonDatetimeFunction(SPIError):
pass
class InvalidArgumentForWidthBucketFunction(SPIError):
pass
class InvalidAuthorizationSpecification(SPIError):
pass
class InvalidBinaryRepresentation(SPIError):
pass
class InvalidCatalogName(SPIError):
pass
class InvalidCharacterValueForCast(SPIError):
pass
class InvalidColumnDefinition(SPIError):
pass
class InvalidColumnReference(SPIError):
pass
class InvalidCursorDefinition(SPIError):
pass
class InvalidCursorName(SPIError):
pass
class InvalidCursorState(SPIError):
pass
class InvalidDatabaseDefinition(SPIError):
pass
class InvalidDatetimeFormat(SPIError):
pass
class InvalidEscapeCharacter(SPIError):
pass
class InvalidEscapeOctet(SPIError):
pass
class InvalidEscapeSequence(SPIError):
pass
class InvalidForeignKey(SPIError):
pass
class InvalidFunctionDefinition(SPIError):
pass
class InvalidGrantOperation(SPIError):
pass
class InvalidGrantor(SPIError):
pass
class InvalidIndicatorParameterValue(SPIError):
pass
class InvalidJsonText(SPIError):
pass
class InvalidLocatorSpecification(SPIError):
pass
class InvalidName(SPIError):
pass
class InvalidObjectDefinition(SPIError):
pass
class InvalidParameterValue(SPIError):
pass
class InvalidPassword(SPIError):
pass
class InvalidPrecedingOrFollowingSize(SPIError):
pass
class InvalidPreparedStatementDefinition(SPIError):
pass
class InvalidRecursion(SPIError):
pass
class InvalidRegularExpression(SPIError):
pass
class InvalidRoleSpecification(SPIError):
pass
class InvalidRowCountInLimitClause(SPIError):
pass
class InvalidRowCountInResultOffsetClause(SPIError):
pass
class InvalidSavepointSpecification(SPIError):
pass
class InvalidSchemaDefinition(SPIError):
pass
class InvalidSchemaName(SPIError):
pass
class InvalidSqlJsonSubscript(SPIError):
pass
class InvalidSqlStatementName(SPIError):
pass
class InvalidSqlstateReturned(SPIError):
pass
class InvalidTableDefinition(SPIError):
pass
class InvalidTablesampleArgument(SPIError):
pass
class InvalidTablesampleRepeat(SPIError):
pass
class InvalidTextRepresentation(SPIError):
pass
class InvalidTimeZoneDisplacementValue(SPIError):
pass
class InvalidTransactionInitiation(SPIError):
pass
class InvalidTransactionState(SPIError):
pass
class InvalidTransactionTermination(SPIError):
pass
class InvalidUseOfEscapeCharacter(SPIError):
pass
class InvalidXmlComment(SPIError):
pass
class InvalidXmlContent(SPIError):
pass
class InvalidXmlDocument(SPIError):
pass
class InvalidXmlProcessingInstruction(SPIError):
pass
class IoError(SPIError):
pass
class LocatorException(SPIError):
pass
class LockFileExists(SPIError):
pass
class LockNotAvailable(SPIError):
pass
class ModifyingSqlDataNotPermitted(SPIError):
pass
class MoreThanOneSqlJsonItem(SPIError):
pass
class MostSpecificTypeMismatch(SPIError):
pass
class NameTooLong(SPIError):
pass
class NoActiveSqlTransaction(SPIError):
pass
class NoActiveSqlTransactionForBranchTransaction(SPIError):
pass
class NoDataFound(SPIError):
pass
class NoSqlJsonItem(SPIError):
pass
class NonNumericSqlJsonItem(SPIError):
pass
class NonUniqueKeysInAJsonObject(SPIError):
pass
class NonstandardUseOfEscapeCharacter(SPIError):
pass
class NotAnXmlDocument(SPIError):
pass
class NotNullViolation(SPIError):
pass
class NullValueNoIndicatorParameter(SPIError):
pass
class NullValueNotAllowed(SPIError):
pass
class NumericValueOutOfRange(SPIError):
pass
class ObjectInUse(SPIError):
pass
class ObjectNotInPrerequisiteState(SPIError):
pass
class OperatorIntervention(SPIError):
pass
class OutOfMemory(SPIError):
pass
class PlpgsqlError(SPIError):
pass
class ProgramLimitExceeded(SPIError):
pass
class ProhibitedSqlStatementAttempted(SPIError):
pass
class ProtocolViolation(SPIError):
pass
class QueryCanceled(SPIError):
pass
class RaiseException(SPIError):
pass
class ReadOnlySqlTransaction(SPIError):
pass
class ReadingSqlDataNotPermitted(SPIError):
pass
class ReservedName(SPIError):
pass
class RestrictViolation(SPIError):
pass
class SavepointException(SPIError):
pass
class SchemaAndDataStatementMixingNotSupported(SPIError):
pass
class SequenceGeneratorLimitExceeded(SPIError):
pass
class SerializationFailure(SPIError):
pass
class SingletonSqlJsonItemRequired(SPIError):
pass
class SnapshotTooOld(SPIError):
pass
class SqlJsonArrayNotFound(SPIError):
pass
class SqlJsonMemberNotFound(SPIError):
pass
class SqlJsonNumberNotFound(SPIError):
pass
class SqlJsonObjectNotFound(SPIError):
pass
class SqlJsonScalarRequired(SPIError):
pass
class SqlRoutineException(SPIError):
pass
class SqlStatementNotYetComplete(SPIError):
pass
class SqlclientUnableToEstablishSqlconnection(SPIError):
pass
class SqlserverRejectedEstablishmentOfSqlconnection(SPIError):
pass
class SrfProtocolViolated(SPIError):
pass
class StackedDiagnosticsAccessedWithoutActiveHandler(SPIError):
pass
class StatementCompletionUnknown(SPIError):
pass
class StatementTooComplex(SPIError):
pass
class StringDataLengthMismatch(SPIError):
pass
class StringDataRightTruncation(SPIError):
pass
class SubstringError(SPIError):
pass
class SyntaxError(SPIError):
pass
class SyntaxErrorOrAccessRuleViolation(SPIError):
pass
class SystemError(SPIError):
pass
class TooManyArguments(SPIError):
pass
class TooManyColumns(SPIError):
pass
class TooManyConnections(SPIError):
pass
class TooManyJsonArrayElements(SPIError):
pass
class TooManyJsonObjectMembers(SPIError):
pass
class TooManyRows(SPIError):
pass
class TransactionIntegrityConstraintViolation(SPIError):
pass
class TransactionResolutionUnknown(SPIError):
pass
class TransactionRollback(SPIError):
pass
class TriggerProtocolViolated(SPIError):
pass
class TriggeredActionException(SPIError):
pass
class TriggeredDataChangeViolation(SPIError):
pass
class TrimError(SPIError):
pass
class UndefinedColumn(SPIError):
pass
class UndefinedFile(SPIError):
pass
class UndefinedFunction(SPIError):
pass
class UndefinedObject(SPIError):
pass
class UndefinedParameter(SPIError):
pass
class UndefinedTable(SPIError):
pass
class UniqueViolation(SPIError):
pass
class UnsafeNewEnumValueUsage(SPIError):
pass
class UnterminatedCString(SPIError):
pass
class UntranslatableCharacter(SPIError):
pass
class WindowingError(SPIError):
pass
class WithCheckOptionViolation(SPIError):
pass
class WrongObjectType(SPIError):
pass
class ZeroLengthCharacterString(SPIError):
pass
class PLyResult(Iterable[Dict]):
def nrows(self) -> int:
pass
def status(self) -> SPI_RESULT:
pass
def colnames(self) -> List[str]:
pass
def coltypes(self) -> List[Oid]:
pass
def coltypmods(self) -> List[TypMod]:
pass
def __str__(self) -> str:
pass
class PLyCursor(Iterable[Dict]):
def fetch(batch_size: int) -> PLyResult:
pass
class PLyPlan:
def cursor(
self, plan: Union['PLyPlan', str], arguments: Optional[List[Any]] = None
) -> PLyCursor:
pass
def status(self) -> bool:
"""Not in the docs, but is a public attribute.
According to https://github.com/postgres/postgres/blob/8028e294b456bf1539649527fd98b3985fa4752a/src/pl/plpython/plpy_planobject.c#L115-L125
It looks like this function just returns True. Maybe I misunderstood, so I'm leaving it as a bool instead of a True literal
"""
pass
def execute(self) -> PLyResult:
"""Not in the docs, but is a public attribute.
According to https://github.com/postgres/postgres/blob/8028e294b456bf1539649527fd98b3985fa4752a/src/pl/plpython/plpy_planobject.c#L102-L112
this returns the same result type as plpy.execute
"""
pass
@contextmanager
class PLySubtransaction:
pass
class plpy:
SPIError=SPIError
spiexceptions = spiexceptions
@staticmethod
def Error(msg: str):
"""According to the docs this raises a python exception, however this seems to be broken"""
pass
@staticmethod
def Fatal(msg: str):
"""According to the docs this raises a python exception, however this seems to be broken"""
pass
@staticmethod
def execute(
plan: Union[PLyPlan, str],
arguments: Optional[List[Any]] = None,
max_rows: Optional[int] = None,
) -> PLyResult:
pass
@staticmethod
def prepare(query: str, argtypes: Optional[List[str]] = None) -> PLyPlan:
pass
@staticmethod
def cursor(
plan: Union[PLyPlan, str], arguments: Optional[List[Any]] = None
) -> PLyCursor:
pass
@staticmethod
def debug(
msg: str,
*args,
detail: Optional[str] = None,
hint: Optional[str] = None,
sqlstate: Optional[ERROR_CODE] = None,
schema_name: Optional[str] = None,
table_name: Optional[str] = None,
column_name: Optional[str] = None,
datatype_name: Optional[str] = None,
constraint_name: Optional[str] = None,
) -> None:
pass
@staticmethod
def log(
msg: str,
*args,
detail: Optional[str] = None,
hint: Optional[str] = None,
sqlstate: Optional[ERROR_CODE] = None,
schema_name: Optional[str] = None,
table_name: Optional[str] = None,
column_name: Optional[str] = None,
datatype_name: Optional[str] = None,
constraint_name: Optional[str] = None,
) -> None:
pass
@staticmethod
def info(
msg: str,
*args,
detail: Optional[str] = None,
hint: Optional[str] = None,
sqlstate: Optional[ERROR_CODE] = None,
schema_name: Optional[str] = None,
table_name: Optional[str] = None,
column_name: Optional[str] = None,
datatype_name: Optional[str] = None,
constraint_name: Optional[str] = None,
) -> None:
pass
@staticmethod
def notice(
msg: str,
*args,
detail: Optional[str] = None,
hint: Optional[str] = None,
sqlstate: Optional[ERROR_CODE] = None,
schema_name: Optional[str] = None,
table_name: Optional[str] = None,
column_name: Optional[str] = None,
datatype_name: Optional[str] = None,
constraint_name: Optional[str] = None,
) -> None:
pass
@staticmethod
def warning(
msg: str,
*args,
detail: Optional[str] = None,
hint: Optional[str] = None,
sqlstate: Optional[ERROR_CODE] = None,
schema_name: Optional[str] = None,
table_name: Optional[str] = None,
column_name: Optional[str] = None,
datatype_name: Optional[str] = None,
constraint_name: Optional[str] = None,
) -> None:
pass
@staticmethod
def error(
msg: str,
*args,
detail: Optional[str] = None,
hint: Optional[str] = None,
sqlstate: Optional[ERROR_CODE] = None,
schema_name: Optional[str] = None,
table_name: Optional[str] = None,
column_name: Optional[str] = None,
datatype_name: Optional[str] = None,
constraint_name: Optional[str] = None,
) -> None:
"""Raises a python exception"""
pass
@staticmethod
def fatal(
msg: str,
*args,
detail: Optional[str] = None,
hint: Optional[str] = None,
sqlstate: Optional[ERROR_CODE] = None,
schema_name: Optional[str] = None,
table_name: Optional[str] = None,
column_name: Optional[str] = None,
datatype_name: Optional[str] = None,
constraint_name: Optional[str] = None,
) -> None:
"""Raises a python exception"""
pass
@staticmethod
def quote_ident(string: str) -> str:
pass
@staticmethod
def quote_literal(string: str) -> str:
pass
@staticmethod
def quote_nullable(string: str) -> str:
pass
@staticmethod
def subtransaction() -> AbstractContextManager[PLySubtransaction]:
pass
@staticmethod
def commit() -> None:
pass
@staticmethod
def rollback() -> None:
pass
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment