Available on crate feature
postgres_backend only.Expand description
The SQLSTATE codes PostgreSQL defines, as listed in
its documentation
and taken from
errcodes.txt.
Each constant is named after PostgreSQL’s ERRCODE_ macro and documented
with its PL/pgSQL condition name.
use diesel::pg::sql_state;
use diesel::result::SqlState;
fn retryable(code: SqlState) -> bool {
matches!(
code,
sql_state::T_R_SERIALIZATION_FAILURE | sql_state::T_R_DEADLOCK_DETECTED
)
}
assert!(retryable("40001".parse().unwrap()));
assert!(!retryable("23505".parse().unwrap()));Constants§
- ACTIVE_
SQL_ TRANSACTION 25001,active_sql_transaction.- ADMIN_
SHUTDOWN 57P01,admin_shutdown.- AMBIGUOUS_
ALIAS 42P09,ambiguous_alias.- AMBIGUOUS_
COLUMN 42702,ambiguous_column.- AMBIGUOUS_
FUNCTION 42725,ambiguous_function.- AMBIGUOUS_
PARAMETER 42P08,ambiguous_parameter.- ARRAY_
SUBSCRIPT_ ERROR 2202E,array_subscript_error.- ASSERT_
FAILURE P0004,assert_failure.- BAD_
COPY_ FILE_ FORMAT 22P04,bad_copy_file_format.- BRANCH_
TRANSACTION_ ALREADY_ ACTIVE 25002,branch_transaction_already_active.- CANNOT_
COERCE 42846,cannot_coerce.- CANNOT_
CONNECT_ NOW 57P03,cannot_connect_now.- CANT_
CHANGE_ RUNTIME_ PARAM 55P02,cant_change_runtime_param.- CARDINALITY_
VIOLATION 21000,cardinality_violation.- CASE_
NOT_ FOUND 20000,case_not_found.- CHARACTER_
NOT_ IN_ REPERTOIRE 22021,character_not_in_repertoire.- CHECK_
VIOLATION 23514,check_violation.- COLLATION_
MISMATCH 42P21,collation_mismatch.- CONFIGURATION_
LIMIT_ EXCEEDED 53400,configuration_limit_exceeded.- CONFIG_
FILE_ ERROR F0000,config_file_error.- CONNECTION_
DOES_ NOT_ EXIST 08003,connection_does_not_exist.- CONNECTION_
EXCEPTION 08000,connection_exception.- CONNECTION_
FAILURE 08006,connection_failure.- CRASH_
SHUTDOWN 57P02,crash_shutdown.- DATABASE_
DROPPED 57P04,database_dropped.- DATATYPE_
MISMATCH 42804,datatype_mismatch.- DATA_
CORRUPTED XX001,data_corrupted.- DATA_
EXCEPTION 22000,data_exception.- DATETIME_
FIELD_ OVERFLOW 22008,datetime_field_overflow.- DEPENDENT_
OBJECTS_ STILL_ EXIST 2BP01,dependent_objects_still_exist.- DEPENDENT_
PRIVILEGE_ DESCRIPTORS_ STILL_ EXIST 2B000,dependent_privilege_descriptors_still_exist.- DIAGNOSTICS_
EXCEPTION 0Z000,diagnostics_exception.- DISK_
FULL 53100,disk_full.- DIVISION_
BY_ ZERO 22012,division_by_zero.- DUPLICATE_
ALIAS 42712,duplicate_alias.- DUPLICATE_
COLUMN 42701,duplicate_column.- DUPLICATE_
CURSOR 42P03,duplicate_cursor.- DUPLICATE_
DATABASE 42P04,duplicate_database.- DUPLICATE_
FILE 58P02,duplicate_file.- DUPLICATE_
FUNCTION 42723,duplicate_function.- DUPLICATE_
JSON_ OBJECT_ KEY_ VALUE 22030,duplicate_json_object_key_value.- DUPLICATE_
OBJECT 42710,duplicate_object.- DUPLICATE_
PSTATEMENT 42P05,duplicate_prepared_statement.- DUPLICATE_
SCHEMA 42P06,duplicate_schema.- DUPLICATE_
TABLE 42P07,duplicate_table.- ERROR_
IN_ ASSIGNMENT 22005,error_in_assignment.- ESCAPE_
CHARACTER_ CONFLICT 2200B,escape_character_conflict.- EXCLUSION_
VIOLATION 23P01,exclusion_violation.- EXTERNAL_
ROUTINE_ EXCEPTION 38000,external_routine_exception.- EXTERNAL_
ROUTINE_ INVOCATION_ EXCEPTION 39000,external_routine_invocation_exception.- E_
R_ E_ CONTAINING_ SQL_ NOT_ PERMITTED 38001,containing_sql_not_permitted.- E_
R_ E_ MODIFYING_ SQL_ DATA_ NOT_ PERMITTED 38002,modifying_sql_data_not_permitted.- E_
R_ E_ PROHIBITED_ SQL_ STATEMENT_ ATTEMPTED 38003,prohibited_sql_statement_attempted.- E_
R_ E_ READING_ SQL_ DATA_ NOT_ PERMITTED 38004,reading_sql_data_not_permitted.- E_
R_ I_ E_ EVENT_ TRIGGER_ PROTOCOL_ VIOLATED 39P03,event_trigger_protocol_violated.- E_
R_ I_ E_ INVALID_ SQLSTATE_ RETURNED 39001,invalid_sqlstate_returned.- E_
R_ I_ E_ NULL_ VALUE_ NOT_ ALLOWED 39004,null_value_not_allowed.- E_
R_ I_ E_ SRF_ PROTOCOL_ VIOLATED 39P02,srf_protocol_violated.- E_
R_ I_ E_ TRIGGER_ PROTOCOL_ VIOLATED 39P01,trigger_protocol_violated.- FDW_
COLUMN_ NAME_ NOT_ FOUND HV005,fdw_column_name_not_found.- FDW_
DYNAMIC_ PARAMETER_ VALUE_ NEEDED HV002,fdw_dynamic_parameter_value_needed.- FDW_
ERROR HV000,fdw_error.- FDW_
FUNCTION_ SEQUENCE_ ERROR HV010,fdw_function_sequence_error.- FDW_
INCONSISTENT_ DESCRIPTOR_ INFORMATION HV021,fdw_inconsistent_descriptor_information.- FDW_
INVALID_ ATTRIBUTE_ VALUE HV024,fdw_invalid_attribute_value.- FDW_
INVALID_ COLUMN_ NAME HV007,fdw_invalid_column_name.- FDW_
INVALID_ COLUMN_ NUMBER HV008,fdw_invalid_column_number.- FDW_
INVALID_ DATA_ TYPE HV004,fdw_invalid_data_type.- FDW_
INVALID_ DATA_ TYPE_ DESCRIPTORS HV006,fdw_invalid_data_type_descriptors.- FDW_
INVALID_ DESCRIPTOR_ FIELD_ IDENTIFIER HV091,fdw_invalid_descriptor_field_identifier.- FDW_
INVALID_ HANDLE HV00B,fdw_invalid_handle.- FDW_
INVALID_ OPTION_ INDEX HV00C,fdw_invalid_option_index.- FDW_
INVALID_ OPTION_ NAME HV00D,fdw_invalid_option_name.- FDW_
INVALID_ STRING_ FORMAT HV00A,fdw_invalid_string_format.- FDW_
INVALID_ STRING_ LENGTH_ OR_ BUFFER_ LENGTH HV090,fdw_invalid_string_length_or_buffer_length.- FDW_
INVALID_ USE_ OF_ NULL_ POINTER HV009,fdw_invalid_use_of_null_pointer.- FDW_
NO_ SCHEMAS HV00P,fdw_no_schemas.- FDW_
OPTION_ NAME_ NOT_ FOUND HV00J,fdw_option_name_not_found.- FDW_
OUT_ OF_ MEMORY HV001,fdw_out_of_memory.- FDW_
REPLY_ HANDLE HV00K,fdw_reply_handle.- FDW_
SCHEMA_ NOT_ FOUND HV00Q,fdw_schema_not_found.- FDW_
TABLE_ NOT_ FOUND HV00R,fdw_table_not_found.- FDW_
TOO_ MANY_ HANDLES HV014,fdw_too_many_handles.- FDW_
UNABLE_ TO_ CREATE_ EXECUTION HV00L,fdw_unable_to_create_execution.- FDW_
UNABLE_ TO_ CREATE_ REPLY HV00M,fdw_unable_to_create_reply.- FDW_
UNABLE_ TO_ ESTABLISH_ CONNECTION HV00N,fdw_unable_to_establish_connection.- FEATURE_
NOT_ SUPPORTED 0A000,feature_not_supported.- FILE_
NAME_ TOO_ LONG 58P03,file_name_too_long.- FLOATING_
POINT_ EXCEPTION 22P01,floating_point_exception.- FOREIGN_
KEY_ VIOLATION 23503,foreign_key_violation.- GENERATED_
ALWAYS 428C9,generated_always.- GROUPING_
ERROR 42803,grouping_error.- HELD_
CURSOR_ REQUIRES_ SAME_ ISOLATION_ LEVEL 25008,held_cursor_requires_same_isolation_level.- IDLE_
IN_ TRANSACTION_ SESSION_ TIMEOUT 25P03,idle_in_transaction_session_timeout.- IDLE_
SESSION_ TIMEOUT 57P05,idle_session_timeout.- INAPPROPRIATE_
ACCESS_ MODE_ FOR_ BRANCH_ TRANSACTION 25003,inappropriate_access_mode_for_branch_transaction.- INAPPROPRIATE_
ISOLATION_ LEVEL_ FOR_ BRANCH_ TRANSACTION 25004,inappropriate_isolation_level_for_branch_transaction.- INDETERMINATE_
COLLATION 42P22,indeterminate_collation.- INDETERMINATE_
DATATYPE 42P18,indeterminate_datatype.- INDEX_
CORRUPTED XX002,index_corrupted.- INDICATOR_
OVERFLOW 22022,indicator_overflow.- INSUFFICIENT_
PRIVILEGE 42501,insufficient_privilege.- INSUFFICIENT_
RESOURCES 53000,insufficient_resources.- INTEGRITY_
CONSTRAINT_ VIOLATION 23000,integrity_constraint_violation.- INTERNAL_
ERROR XX000,internal_error.- INTERVAL_
FIELD_ OVERFLOW 22015,interval_field_overflow.- INVALID_
ARGUMENT_ FOR_ LOG 2201E,invalid_argument_for_logarithm.- INVALID_
ARGUMENT_ FOR_ NTH_ VALUE 22016,invalid_argument_for_nth_value_function.- INVALID_
ARGUMENT_ FOR_ NTILE 22014,invalid_argument_for_ntile_function.- INVALID_
ARGUMENT_ FOR_ POWER_ FUNCTION 2201F,invalid_argument_for_power_function.- INVALID_
ARGUMENT_ FOR_ SQL_ JSON_ DATETIME_ FUNCTION 22031,invalid_argument_for_sql_json_datetime_function.- INVALID_
ARGUMENT_ FOR_ WIDTH_ BUCKET_ FUNCTION 2201G,invalid_argument_for_width_bucket_function.- INVALID_
ARGUMENT_ FOR_ XQUERY 10608,invalid_argument_for_xquery.- INVALID_
AUTHORIZATION_ SPECIFICATION 28000,invalid_authorization_specification.- INVALID_
BINARY_ REPRESENTATION 22P03,invalid_binary_representation.- INVALID_
CATALOG_ NAME 3D000,invalid_catalog_name.- INVALID_
CHARACTER_ VALUE_ FOR_ CAST 22018,invalid_character_value_for_cast.- INVALID_
COLUMN_ DEFINITION 42611,invalid_column_definition.- INVALID_
COLUMN_ REFERENCE 42P10,invalid_column_reference.- INVALID_
CURSOR_ DEFINITION 42P11,invalid_cursor_definition.- INVALID_
CURSOR_ NAME 34000,invalid_cursor_name.- INVALID_
CURSOR_ STATE 24000,invalid_cursor_state.- INVALID_
DATABASE_ DEFINITION 42P12,invalid_database_definition.- INVALID_
DATETIME_ FORMAT 22007,invalid_datetime_format.- INVALID_
ESCAPE_ CHARACTER 22019,invalid_escape_character.- INVALID_
ESCAPE_ OCTET 2200D,invalid_escape_octet.- INVALID_
ESCAPE_ SEQUENCE 22025,invalid_escape_sequence.- INVALID_
FOREIGN_ KEY 42830,invalid_foreign_key.- INVALID_
FUNCTION_ DEFINITION 42P13,invalid_function_definition.- INVALID_
GRANTOR 0L000,invalid_grantor.- INVALID_
GRANT_ OPERATION 0LP01,invalid_grant_operation.- INVALID_
INDICATOR_ PARAMETER_ VALUE 22010,invalid_indicator_parameter_value.- INVALID_
JSON_ TEXT 22032,invalid_json_text.- INVALID_
NAME 42602,invalid_name.- INVALID_
OBJECT_ DEFINITION 42P17,invalid_object_definition.- INVALID_
PARAMETER_ VALUE 22023,invalid_parameter_value.- INVALID_
PASSWORD 28P01,invalid_password.- INVALID_
PRECEDING_ OR_ FOLLOWING_ SIZE 22013,invalid_preceding_or_following_size.- INVALID_
PSTATEMENT_ DEFINITION 42P14,invalid_prepared_statement_definition.- INVALID_
RECURSION 42P19,invalid_recursion.- INVALID_
REGULAR_ EXPRESSION 2201B,invalid_regular_expression.- INVALID_
ROLE_ SPECIFICATION 0P000,invalid_role_specification.- INVALID_
ROW_ COUNT_ IN_ LIMIT_ CLAUSE 2201W,invalid_row_count_in_limit_clause.- INVALID_
ROW_ COUNT_ IN_ RESULT_ OFFSET_ CLAUSE 2201X,invalid_row_count_in_result_offset_clause.- INVALID_
SCHEMA_ DEFINITION 42P15,invalid_schema_definition.- INVALID_
SCHEMA_ NAME 3F000,invalid_schema_name.- INVALID_
SQL_ JSON_ SUBSCRIPT 22033,invalid_sql_json_subscript.- INVALID_
SQL_ STATEMENT_ NAME 26000,invalid_sql_statement_name.- INVALID_
TABLESAMPLE_ ARGUMENT 2202H,invalid_tablesample_argument.- INVALID_
TABLESAMPLE_ REPEAT 2202G,invalid_tablesample_repeat.- INVALID_
TABLE_ DEFINITION 42P16,invalid_table_definition.- INVALID_
TEXT_ REPRESENTATION 22P02,invalid_text_representation.- INVALID_
TIME_ ZONE_ DISPLACEMENT_ VALUE 22009,invalid_time_zone_displacement_value.- INVALID_
TRANSACTION_ INITIATION 0B000,invalid_transaction_initiation.- INVALID_
TRANSACTION_ STATE 25000,invalid_transaction_state.- INVALID_
TRANSACTION_ TERMINATION 2D000,invalid_transaction_termination.- INVALID_
USE_ OF_ ESCAPE_ CHARACTER 2200C,invalid_use_of_escape_character.- INVALID_
XML_ COMMENT 2200S,invalid_xml_comment.- INVALID_
XML_ CONTENT 2200N,invalid_xml_content.- INVALID_
XML_ DOCUMENT 2200M,invalid_xml_document.- INVALID_
XML_ PROCESSING_ INSTRUCTION 2200T,invalid_xml_processing_instruction.- IN_
FAILED_ SQL_ TRANSACTION 25P02,in_failed_sql_transaction.- IO_
ERROR 58030,io_error.- LOCATOR_
EXCEPTION 0F000,locator_exception.- LOCK_
FILE_ EXISTS F0001,lock_file_exists.- LOCK_
NOT_ AVAILABLE 55P03,lock_not_available.- L_
E_ INVALID_ SPECIFICATION 0F001,invalid_locator_specification.- MORE_
THAN_ ONE_ SQL_ JSON_ ITEM 22034,more_than_one_sql_json_item.- MOST_
SPECIFIC_ TYPE_ MISMATCH 2200G,most_specific_type_mismatch.- NAME_
TOO_ LONG 42622,name_too_long.- NONSTANDARD_
USE_ OF_ ESCAPE_ CHARACTER 22P06,nonstandard_use_of_escape_character.- NON_
NUMERIC_ SQL_ JSON_ ITEM 22036,non_numeric_sql_json_item.- NON_
UNIQUE_ KEYS_ IN_ A_ JSON_ OBJECT 22037,non_unique_keys_in_a_json_object.- NOT_
AN_ XML_ DOCUMENT 2200L,not_an_xml_document.- NOT_
NULL_ VIOLATION 23502,not_null_violation.- NO_
ACTIVE_ SQL_ TRANSACTION 25P01,no_active_sql_transaction.- NO_
ACTIVE_ SQL_ TRANSACTION_ FOR_ BRANCH_ TRANSACTION 25005,no_active_sql_transaction_for_branch_transaction.- NO_
ADDITIONAL_ DYNAMIC_ RESULT_ SETS_ RETURNED 02001,no_additional_dynamic_result_sets_returned.- NO_DATA
02000,no_data.- NO_
DATA_ FOUND P0002,no_data_found.- NO_
SQL_ JSON_ ITEM 22035,no_sql_json_item.- NULL_
VALUE_ NOT_ ALLOWED 22004,null_value_not_allowed.- NULL_
VALUE_ NO_ INDICATOR_ PARAMETER 22002,null_value_no_indicator_parameter.- NUMERIC_
VALUE_ OUT_ OF_ RANGE 22003,numeric_value_out_of_range.- OBJECT_
IN_ USE 55006,object_in_use.- OBJECT_
NOT_ IN_ PREREQUISITE_ STATE 55000,object_not_in_prerequisite_state.- OPERATOR_
INTERVENTION 57000,operator_intervention.- OUT_
OF_ MEMORY 53200,out_of_memory.- PLPGSQL_
ERROR P0000,plpgsql_error.- PROGRAM_
LIMIT_ EXCEEDED 54000,program_limit_exceeded.- PROTOCOL_
VIOLATION 08P01,protocol_violation.- QUERY_
CANCELED 57014,query_canceled.- RAISE_
EXCEPTION P0001,raise_exception.- READ_
ONLY_ SQL_ TRANSACTION 25006,read_only_sql_transaction.- RESERVED_
NAME 42939,reserved_name.- RESTRICT_
VIOLATION 23001,restrict_violation.- SAVEPOINT_
EXCEPTION 3B000,savepoint_exception.- SCHEMA_
AND_ DATA_ STATEMENT_ MIXING_ NOT_ SUPPORTED 25007,schema_and_data_statement_mixing_not_supported.- SEQUENCE_
GENERATOR_ LIMIT_ EXCEEDED 2200H,sequence_generator_limit_exceeded.- SINGLETON_
SQL_ JSON_ ITEM_ REQUIRED 22038,singleton_sql_json_item_required.- SQLCLIENT_
UNABLE_ TO_ ESTABLISH_ SQLCONNECTION 08001,sqlclient_unable_to_establish_sqlconnection.- SQLSERVER_
REJECTED_ ESTABLISHMENT_ OF_ SQLCONNECTION 08004,sqlserver_rejected_establishment_of_sqlconnection.- SQL_
JSON_ ARRAY_ NOT_ FOUND 22039,sql_json_array_not_found.- SQL_
JSON_ ITEM_ CANNOT_ BE_ CAST_ TO_ TARGET_ TYPE 2203G,sql_json_item_cannot_be_cast_to_target_type.- SQL_
JSON_ MEMBER_ NOT_ FOUND 2203A,sql_json_member_not_found.- SQL_
JSON_ NUMBER_ NOT_ FOUND 2203B,sql_json_number_not_found.- SQL_
JSON_ OBJECT_ NOT_ FOUND 2203C,sql_json_object_not_found.- SQL_
JSON_ SCALAR_ REQUIRED 2203F,sql_json_scalar_required.- SQL_
ROUTINE_ EXCEPTION 2F000,sql_routine_exception.- SQL_
STATEMENT_ NOT_ YET_ COMPLETE 03000,sql_statement_not_yet_complete.- STACKED_
DIAGNOSTICS_ ACCESSED_ WITHOUT_ ACTIVE_ HANDLER 0Z002,stacked_diagnostics_accessed_without_active_handler.- STATEMENT_
TOO_ COMPLEX 54001,statement_too_complex.- STRING_
DATA_ LENGTH_ MISMATCH 22026,string_data_length_mismatch.- STRING_
DATA_ RIGHT_ TRUNCATION 22001,string_data_right_truncation.- SUBSTRING_
ERROR 22011,substring_error.- SUCCESSFUL_
COMPLETION 00000,successful_completion.- SYNTAX_
ERROR 42601,syntax_error.- SYNTAX_
ERROR_ OR_ ACCESS_ RULE_ VIOLATION 42000,syntax_error_or_access_rule_violation.- SYSTEM_
ERROR 58000,system_error.- S_
E_ INVALID_ SPECIFICATION 3B001,invalid_savepoint_specification.- S_
R_ E_ FUNCTION_ EXECUTED_ NO_ RETURN_ STATEMENT 2F005,function_executed_no_return_statement.- S_
R_ E_ MODIFYING_ SQL_ DATA_ NOT_ PERMITTED 2F002,modifying_sql_data_not_permitted.- S_
R_ E_ PROHIBITED_ SQL_ STATEMENT_ ATTEMPTED 2F003,prohibited_sql_statement_attempted.- S_
R_ E_ READING_ SQL_ DATA_ NOT_ PERMITTED 2F004,reading_sql_data_not_permitted.- TOO_
MANY_ ARGUMENTS 54023,too_many_arguments.- TOO_
MANY_ COLUMNS 54011,too_many_columns.- TOO_
MANY_ CONNECTIONS 53300,too_many_connections.- TOO_
MANY_ JSON_ ARRAY_ ELEMENTS 2203D,too_many_json_array_elements.- TOO_
MANY_ JSON_ OBJECT_ MEMBERS 2203E,too_many_json_object_members.- TOO_
MANY_ ROWS P0003,too_many_rows.- TRANSACTION_
RESOLUTION_ UNKNOWN 08007,transaction_resolution_unknown.- TRANSACTION_
ROLLBACK 40000,transaction_rollback.- TRANSACTION_
TIMEOUT 25P04,transaction_timeout.- TRIGGERED_
ACTION_ EXCEPTION 09000,triggered_action_exception.- TRIGGERED_
DATA_ CHANGE_ VIOLATION 27000,triggered_data_change_violation.- TRIM_
ERROR 22027,trim_error.- T_
R_ DEADLOCK_ DETECTED 40P01,deadlock_detected.- T_
R_ INTEGRITY_ CONSTRAINT_ VIOLATION 40002,transaction_integrity_constraint_violation.- T_
R_ SERIALIZATION_ FAILURE 40001,serialization_failure.- T_
R_ STATEMENT_ COMPLETION_ UNKNOWN 40003,statement_completion_unknown.- UNDEFINED_
COLUMN 42703,undefined_column.- UNDEFINED_
FILE 58P01,undefined_file.- UNDEFINED_
FUNCTION 42883,undefined_function.- UNDEFINED_
OBJECT 42704,undefined_object.- UNDEFINED_
PARAMETER 42P02,undefined_parameter.- UNDEFINED_
TABLE 42P01,undefined_table.- UNIQUE_
VIOLATION 23505,unique_violation.- UNSAFE_
NEW_ ENUM_ VALUE_ USAGE 55P04,unsafe_new_enum_value_usage.- UNTERMINATED_
C_ STRING 22024,unterminated_c_string.- UNTRANSLATABLE_
CHARACTER 22P05,untranslatable_character.- WARNING
01000,warning.- WARNING_
DEPRECATED_ FEATURE 01P01,deprecated_feature.- WARNING_
DYNAMIC_ RESULT_ SETS_ RETURNED 0100C,dynamic_result_sets_returned.- WARNING_
IMPLICIT_ ZERO_ BIT_ PADDING 01008,implicit_zero_bit_padding.- WARNING_
NULL_ VALUE_ ELIMINATED_ IN_ SET_ FUNCTION 01003,null_value_eliminated_in_set_function.- WARNING_
PRIVILEGE_ NOT_ GRANTED 01007,privilege_not_granted.- WARNING_
PRIVILEGE_ NOT_ REVOKED 01006,privilege_not_revoked.- WARNING_
STRING_ DATA_ RIGHT_ TRUNCATION 01004,string_data_right_truncation.- WINDOWING_
ERROR 42P20,windowing_error.- WITH_
CHECK_ OPTION_ VIOLATION 44000,with_check_option_violation.- WRONG_
OBJECT_ TYPE 42809,wrong_object_type.- ZERO_
LENGTH_ CHARACTER_ STRING 2200F,zero_length_character_string.