Skip to main content

Module sqlstate

Module sqlstate 

Source
Expand description

SQLSTATE error code constants and helpers.

PostgreSQL uses five-character SQLSTATE codes defined by the SQL standard and extended by PostgreSQL. The first two characters identify the error class; the last three identify the specific condition within that class.

Reference: https://www.postgresql.org/docs/current/errcodes-appendix.html

§Example

use wasi_pg_client::error::sqlstate;

if e.code() == sqlstate::UNIQUE_VIOLATION {
    println!("duplicate key!");
}

Constants§

ACTIVE_SQL_TRANSACTION
ADMIN_SHUTDOWN
AMBIGUOUS_COLUMN
AMBIGUOUS_FUNCTION
AMBIGUOUS_PARAMETER
ARRAY_SUBSCRIPT_ERROR
BAD_COPY_FILE_FORMAT
BRANCH_TRANSACTION_ALREADY_ACTIVE
CANNOT_COERCE
CANNOT_CONNECT_NOW
CANT_CHANGE_RUNTIME_PARAM
CHARACTER_NOT_IN_REPERTOIRE
CHECK_VIOLATION
CLASS_CARDINALITY_VIOLATION
Cardinality violation (class 21).
CLASS_CASE_NOT_FOUND
Case not found (class 20).
CLASS_CONFIGURATION_FILE_ERROR
Configuration file error (class F0).
CLASS_CONNECTION_EXCEPTION
Connection exception (class 08).
CLASS_DATA_EXCEPTION
Data exception (class 22).
CLASS_DEPENDENT_PRIVILEGE_DESCRIPTORS_STILL_EXIST
Dependent privilege descriptors still exist (class 2B).
CLASS_DIAGNOSTICS_EXCEPTION
Diagnostics exception (class 0Z).
CLASS_EXTERNAL_ROUTINE_EXCEPTION
External routine exception (class 38).
CLASS_EXTERNAL_ROUTINE_INVOCATION_EXCEPTION
External routine invocation exception (class 39).
CLASS_FDW_ERROR
Foreign data wrapper error (class HV).
CLASS_FEATURE_NOT_SUPPORTED
Feature not supported (class 0A).
CLASS_INSUFFICIENT_RESOURCES
Insufficient resources (class 53).
CLASS_INTEGRITY_CONSTRAINT_VIOLATION
Integrity constraint violation (class 23).
CLASS_INTERNAL_ERROR
Internal error (class XX).
CLASS_INVALID_AUTHORIZATION_SPECIFICATION
Invalid authorization specification (class 28).
CLASS_INVALID_CATALOG_NAME
Invalid catalog name (class 3D).
CLASS_INVALID_CURSOR_NAME
Invalid cursor name (class 34).
CLASS_INVALID_CURSOR_STATE
Invalid cursor state (class 24).
CLASS_INVALID_GRANTOR
Invalid grantor (class 0L).
CLASS_INVALID_ROLE_SPECIFICATION
Invalid role specification (class 0P).
CLASS_INVALID_SCHEMA_NAME
Invalid schema name (class 3F).
CLASS_INVALID_SQL_STATEMENT_NAME
Invalid SQL statement name (class 26).
CLASS_INVALID_TRANSACTION_INITIATION
Invalid transaction initiation (class 0B).
CLASS_INVALID_TRANSACTION_STATE
Invalid transaction state (class 25).
CLASS_INVALID_TRANSACTION_TERMINATION
Invalid transaction termination (class 2D).
CLASS_LOCATOR_EXCEPTION
Locator exception (class 0F).
CLASS_NO_DATA
No data (class 02).
CLASS_OBJECT_NOT_IN_PREREQUISITE_STATE
Object not in prerequisite state (class 55).
CLASS_OPERATOR_INTERVENTION
Operator intervention (class 57).
CLASS_PLPGSQL_ERROR
PL/pgSQL error (class P0).
CLASS_PROGRAM_LIMIT_EXCEEDED
Program limit exceeded (class 54).
CLASS_SAVEPOINT_EXCEPTION
Savepoint exception (class 3B).
CLASS_SQL_ROUTINE_EXCEPTION
SQL routine exception (class 2F).
CLASS_SQL_STATEMENT_NOT_YET_COMPLETE
SQL statement not yet complete (class 03).
CLASS_SUCCESSFUL_COMPLETION
Successful completion (class 00).
CLASS_SYNTAX_ERROR_OR_ACCESS_RULE_VIOLATION
Syntax error or access rule violation (class 42).
CLASS_SYSTEM_ERROR
System error (class 58).
CLASS_TRANSACTION_ROLLBACK
Transaction rollback (class 40).
CLASS_TRIGGERED_ACTION_EXCEPTION
Triggered action exception (class 09).
CLASS_TRIGGERED_DATA_CHANGE_VIOLATION
Triggered data change violation (class 27).
CLASS_WARNING
Warning (class 01).
CLASS_WITH_CHECK_OPTION_VIOLATION
With check option violation (class 44).
CONFIGURATION_LIMIT_EXCEEDED
CONNECTION_DOES_NOT_EXIST
CONNECTION_FAILURE
CRASH_SHUTDOWN
DATABASE_DROPPED
DATA_CORRUPTED
DATETIME_FIELD_OVERFLOW
DEADLOCK_DETECTED
DISK_FULL
DIVISION_BY_ZERO
DUPLICATE_ALIAS
DUPLICATE_COLUMN
DUPLICATE_CURSOR
DUPLICATE_DATABASE
DUPLICATE_FILE
DUPLICATE_FUNCTION
DUPLICATE_OBJECT
DUPLICATE_PREPARED_STATEMENT
DUPLICATE_SCHEMA
DUPLICATE_TABLE
ERROR_IN_ASSIGNMENT
ESCAPE_CHARACTER_CONFLICT
EXCLUSION_VIOLATION
FLOATING_POINT_EXCEPTION
FOREIGN_KEY_VIOLATION
GROUPING_ERROR
HELD_CURSOR_REQUIRES_SAME_ISOLATION_LEVEL
IDLE_IN_TRANSACTION_SESSION_TIMEOUT
IDLE_SESSION_TIMEOUT
INAPPROPRIATE_ACCESS_MODE_FOR_BRANCH_TRANSACTION
INAPPROPRIATE_ISOLATION_LEVEL_FOR_BRANCH_TRANSACTION
INDEX_CORRUPTED
INDICATOR_OVERFLOW
INSUFFICIENT_PRIVILEGE
INTEGRITY_CONSTRAINT_VIOLATION
INTERNAL_ERROR
INTERVAL_FIELD_OVERFLOW
INVALID_ARGUMENT_FOR_LOGARITHM
INVALID_ARGUMENT_FOR_NTH_VALUE_FUNCTION
INVALID_ARGUMENT_FOR_NTILE_FUNCTION
INVALID_ARGUMENT_FOR_POWER_FUNCTION
INVALID_ARGUMENT_FOR_WIDTH_BUCKET_FUNCTION
INVALID_BINARY_REPRESENTATION
INVALID_CHARACTER_VALUE_FOR_CAST
INVALID_DATETIME_FORMAT
INVALID_ESCAPE_CHARACTER
INVALID_ESCAPE_OCTET
INVALID_ESCAPE_SEQUENCE
INVALID_FOREIGN_KEY
INVALID_FUNCTION_DEFINITION
INVALID_INDICATOR_PARAMETER_VALUE
INVALID_LIMIT_VALUE
INVALID_PARAMETER_VALUE
INVALID_PRECEDING_OR_FOLLOWING_SIZE
INVALID_RECURSION
INVALID_REGULAR_EXPRESSION
INVALID_ROW_COUNT_IN_LIMIT_CLAUSE
INVALID_ROW_COUNT_IN_RESULT_OFFSET_CLAUSE
INVALID_TABLESAMPLE_ARGUMENT
INVALID_TABLESAMPLE_REPEAT
INVALID_TEXT_REPRESENTATION
INVALID_TIME_ZONE_DISPLACEMENT_VALUE
INVALID_USE_OF_ESCAPE_CHARACTER
INVALID_XML_COMMENT
INVALID_XML_CONTENT
INVALID_XML_DOCUMENT
INVALID_XML_PROCESSING_INSTRUCTION
IN_FAILED_SQL_TRANSACTION
IO_ERROR
LOCK_NOT_AVAILABLE
MOST_SPECIFIC_TYPE_MISMATCH
NAME_TOO_LONG
NOT_AN_XML_DOCUMENT
NOT_NULL_VIOLATION
NO_ACTIVE_SQL_TRANSACTION
NO_ACTIVE_SQL_TRANSACTION_FOR_BRANCH_TRANSACTION
NULL_VALUE_NOT_ALLOWED
NULL_VALUE_NO_INDICATOR_PARAMETER
NUMERIC_VALUE_OUT_OF_RANGE
OBJECT_IN_USE
OUT_OF_MEMORY
PROTOCOL_VIOLATION
QUERY_CANCELED
READ_ONLY_SQL_TRANSACTION
RESTRICT_VIOLATION
SCHEMA_AND_DATA_STATEMENT_MIXING_NOT_SUPPORTED
SERIALIZATION_FAILURE
SQLCLIENT_UNABLE_TO_ESTABLISH_SQLCONNECTION
SQLSERVER_REJECTED_ESTABLISHMENT_OF_SQLCONNECTION
STATEMENT_COMPLETION_UNKNOWN
STATEMENT_TOO_COMPLEX
STRING_DATA_LENGTH_MISMATCH
STRING_DATA_RIGHT_TRUNCATION
SUBSTRING_ERROR
SYNTAX_ERROR
TOO_MANY_ARGUMENTS
TOO_MANY_COLUMNS
TOO_MANY_CONNECTIONS
TRANSACTION_INTEGRITY_CONSTRAINT_VIOLATION
TRANSACTION_RESOLUTION_UNKNOWN
TRIM_ERROR
UNDEFINED_COLUMN
UNDEFINED_FILE
UNDEFINED_FUNCTION
UNDEFINED_OBJECT
UNDEFINED_PARAMETER
UNDEFINED_TABLE
UNIQUE_VIOLATION
UNTERMINATED_C_STRING
UNTRANSLATABLE_CHARACTER
WINDOWING_ERROR
WRONG_OBJECT_TYPE
ZERO_LENGTH_CHARACTER_STRING

Functions§

class_of
Returns the 2-character class prefix of a SQLSTATE code.
is_class
Returns true if the given SQLSTATE code belongs to the specified class.