def lookup(code, _cache={}):
if _cache:
return _cache[code]
tmp = {}
for k, v in globals().items():
if isinstance(v, str) and len(v) in (2, 5):
tmp[v] = k.rstrip("_")
assert tmp
_cache.update(tmp)
return _cache[code]
CLASS_SUCCESSFUL_COMPLETION = "00"
CLASS_WARNING = "01"
CLASS_NO_DATA = "02"
CLASS_SQL_STATEMENT_NOT_YET_COMPLETE = "03"
CLASS_CONNECTION_EXCEPTION = "08"
CLASS_TRIGGERED_ACTION_EXCEPTION = "09"
CLASS_FEATURE_NOT_SUPPORTED = "0A"
CLASS_INVALID_TRANSACTION_INITIATION = "0B"
CLASS_LOCATOR_EXCEPTION = "0F"
CLASS_INVALID_GRANTOR = "0L"
CLASS_INVALID_ROLE_SPECIFICATION = "0P"
CLASS_DIAGNOSTICS_EXCEPTION = "0Z"
CLASS_CASE_NOT_FOUND = "20"
CLASS_CARDINALITY_VIOLATION = "21"
CLASS_DATA_EXCEPTION = "22"
CLASS_INTEGRITY_CONSTRAINT_VIOLATION = "23"
CLASS_INVALID_CURSOR_STATE = "24"
CLASS_INVALID_TRANSACTION_STATE = "25"
CLASS_INVALID_SQL_STATEMENT_NAME = "26"
CLASS_TRIGGERED_DATA_CHANGE_VIOLATION = "27"
CLASS_INVALID_AUTHORIZATION_SPECIFICATION = "28"
CLASS_DEPENDENT_PRIVILEGE_DESCRIPTORS_STILL_EXIST = "2B"
CLASS_INVALID_TRANSACTION_TERMINATION = "2D"
CLASS_SQL_ROUTINE_EXCEPTION = "2F"
CLASS_INVALID_CURSOR_NAME = "34"
CLASS_EXTERNAL_ROUTINE_EXCEPTION = "38"
CLASS_EXTERNAL_ROUTINE_INVOCATION_EXCEPTION = "39"
CLASS_SAVEPOINT_EXCEPTION = "3B"
CLASS_INVALID_CATALOG_NAME = "3D"
CLASS_INVALID_SCHEMA_NAME = "3F"
CLASS_TRANSACTION_ROLLBACK = "40"
CLASS_SYNTAX_ERROR_OR_ACCESS_RULE_VIOLATION = "42"
CLASS_WITH_CHECK_OPTION_VIOLATION = "44"
CLASS_INSUFFICIENT_RESOURCES = "53"
CLASS_PROGRAM_LIMIT_EXCEEDED = "54"
CLASS_OBJECT_NOT_IN_PREREQUISITE_STATE = "55"
CLASS_OPERATOR_INTERVENTION = "57"
CLASS_SYSTEM_ERROR = "58"
CLASS_SNAPSHOT_FAILURE = "72"
CLASS_CONFIGURATION_FILE_ERROR = "F0"
CLASS_FOREIGN_DATA_WRAPPER_ERROR = "HV"
CLASS_PL_PGSQL_ERROR = "P0"
CLASS_INTERNAL_ERROR = "XX"
SUCCESSFUL_COMPLETION = "00000"
WARNING = "01000"
NULL_VALUE_ELIMINATED_IN_SET_FUNCTION = "01003"
STRING_DATA_RIGHT_TRUNCATION_ = "01004"
PRIVILEGE_NOT_REVOKED = "01006"
PRIVILEGE_NOT_GRANTED = "01007"
IMPLICIT_ZERO_BIT_PADDING = "01008"
DYNAMIC_RESULT_SETS_RETURNED = "0100C"
DEPRECATED_FEATURE = "01P01"
NO_DATA = "02000"
NO_ADDITIONAL_DYNAMIC_RESULT_SETS_RETURNED = "02001"
SQL_STATEMENT_NOT_YET_COMPLETE = "03000"
CONNECTION_EXCEPTION = "08000"
SQLCLIENT_UNABLE_TO_ESTABLISH_SQLCONNECTION = "08001"
CONNECTION_DOES_NOT_EXIST = "08003"
SQLSERVER_REJECTED_ESTABLISHMENT_OF_SQLCONNECTION = "08004"
CONNECTION_FAILURE = "08006"
TRANSACTION_RESOLUTION_UNKNOWN = "08007"
PROTOCOL_VIOLATION = "08P01"
TRIGGERED_ACTION_EXCEPTION = "09000"
FEATURE_NOT_SUPPORTED = "0A000"
INVALID_TRANSACTION_INITIATION = "0B000"
LOCATOR_EXCEPTION = "0F000"
INVALID_LOCATOR_SPECIFICATION = "0F001"
INVALID_GRANTOR = "0L000"
INVALID_GRANT_OPERATION = "0LP01"
INVALID_ROLE_SPECIFICATION = "0P000"
DIAGNOSTICS_EXCEPTION = "0Z000"
STACKED_DIAGNOSTICS_ACCESSED_WITHOUT_ACTIVE_HANDLER = "0Z002"
CASE_NOT_FOUND = "20000"
CARDINALITY_VIOLATION = "21000"
DATA_EXCEPTION = "22000"
STRING_DATA_RIGHT_TRUNCATION = "22001"
NULL_VALUE_NO_INDICATOR_PARAMETER = "22002"
NUMERIC_VALUE_OUT_OF_RANGE = "22003"
NULL_VALUE_NOT_ALLOWED_ = "22004"
ERROR_IN_ASSIGNMENT = "22005"
INVALID_DATETIME_FORMAT = "22007"
DATETIME_FIELD_OVERFLOW = "22008"
INVALID_TIME_ZONE_DISPLACEMENT_VALUE = "22009"
ESCAPE_CHARACTER_CONFLICT = "2200B"
INVALID_USE_OF_ESCAPE_CHARACTER = "2200C"
INVALID_ESCAPE_OCTET = "2200D"
ZERO_LENGTH_CHARACTER_STRING = "2200F"
MOST_SPECIFIC_TYPE_MISMATCH = "2200G"
SEQUENCE_GENERATOR_LIMIT_EXCEEDED = "2200H"
NOT_AN_XML_DOCUMENT = "2200L"
INVALID_XML_DOCUMENT = "2200M"
INVALID_XML_CONTENT = "2200N"
INVALID_XML_COMMENT = "2200S"
INVALID_XML_PROCESSING_INSTRUCTION = "2200T"
INVALID_INDICATOR_PARAMETER_VALUE = "22010"
SUBSTRING_ERROR = "22011"
DIVISION_BY_ZERO = "22012"
INVALID_PRECEDING_OR_FOLLOWING_SIZE = "22013"
INVALID_ARGUMENT_FOR_NTILE_FUNCTION = "22014"
INTERVAL_FIELD_OVERFLOW = "22015"
INVALID_ARGUMENT_FOR_NTH_VALUE_FUNCTION = "22016"
INVALID_CHARACTER_VALUE_FOR_CAST = "22018"
INVALID_ESCAPE_CHARACTER = "22019"
INVALID_REGULAR_EXPRESSION = "2201B"
INVALID_ARGUMENT_FOR_LOGARITHM = "2201E"
INVALID_ARGUMENT_FOR_POWER_FUNCTION = "2201F"
INVALID_ARGUMENT_FOR_WIDTH_BUCKET_FUNCTION = "2201G"
INVALID_ROW_COUNT_IN_LIMIT_CLAUSE = "2201W"
INVALID_ROW_COUNT_IN_RESULT_OFFSET_CLAUSE = "2201X"
INVALID_LIMIT_VALUE = "22020"
CHARACTER_NOT_IN_REPERTOIRE = "22021"
INDICATOR_OVERFLOW = "22022"
INVALID_PARAMETER_VALUE = "22023"
UNTERMINATED_C_STRING = "22024"
INVALID_ESCAPE_SEQUENCE = "22025"
STRING_DATA_LENGTH_MISMATCH = "22026"
TRIM_ERROR = "22027"
ARRAY_SUBSCRIPT_ERROR = "2202E"
INVALID_TABLESAMPLE_REPEAT = "2202G"
INVALID_TABLESAMPLE_ARGUMENT = "2202H"
DUPLICATE_JSON_OBJECT_KEY_VALUE = "22030"
INVALID_ARGUMENT_FOR_SQL_JSON_DATETIME_FUNCTION = "22031"
INVALID_JSON_TEXT = "22032"
INVALID_SQL_JSON_SUBSCRIPT = "22033"
MORE_THAN_ONE_SQL_JSON_ITEM = "22034"
NO_SQL_JSON_ITEM = "22035"
NON_NUMERIC_SQL_JSON_ITEM = "22036"
NON_UNIQUE_KEYS_IN_A_JSON_OBJECT = "22037"
SINGLETON_SQL_JSON_ITEM_REQUIRED = "22038"
SQL_JSON_ARRAY_NOT_FOUND = "22039"
SQL_JSON_MEMBER_NOT_FOUND = "2203A"
SQL_JSON_NUMBER_NOT_FOUND = "2203B"
SQL_JSON_OBJECT_NOT_FOUND = "2203C"
TOO_MANY_JSON_ARRAY_ELEMENTS = "2203D"
TOO_MANY_JSON_OBJECT_MEMBERS = "2203E"
SQL_JSON_SCALAR_REQUIRED = "2203F"
FLOATING_POINT_EXCEPTION = "22P01"
INVALID_TEXT_REPRESENTATION = "22P02"
INVALID_BINARY_REPRESENTATION = "22P03"
BAD_COPY_FILE_FORMAT = "22P04"
UNTRANSLATABLE_CHARACTER = "22P05"
NONSTANDARD_USE_OF_ESCAPE_CHARACTER = "22P06"
INTEGRITY_CONSTRAINT_VIOLATION = "23000"
RESTRICT_VIOLATION = "23001"
NOT_NULL_VIOLATION = "23502"
FOREIGN_KEY_VIOLATION = "23503"
UNIQUE_VIOLATION = "23505"
CHECK_VIOLATION = "23514"
EXCLUSION_VIOLATION = "23P01"
INVALID_CURSOR_STATE = "24000"
INVALID_TRANSACTION_STATE = "25000"
ACTIVE_SQL_TRANSACTION = "25001"
BRANCH_TRANSACTION_ALREADY_ACTIVE = "25002"
INAPPROPRIATE_ACCESS_MODE_FOR_BRANCH_TRANSACTION = "25003"
INAPPROPRIATE_ISOLATION_LEVEL_FOR_BRANCH_TRANSACTION = "25004"
NO_ACTIVE_SQL_TRANSACTION_FOR_BRANCH_TRANSACTION = "25005"
READ_ONLY_SQL_TRANSACTION = "25006"
SCHEMA_AND_DATA_STATEMENT_MIXING_NOT_SUPPORTED = "25007"
HELD_CURSOR_REQUIRES_SAME_ISOLATION_LEVEL = "25008"
NO_ACTIVE_SQL_TRANSACTION = "25P01"
IN_FAILED_SQL_TRANSACTION = "25P02"
IDLE_IN_TRANSACTION_SESSION_TIMEOUT = "25P03"
INVALID_SQL_STATEMENT_NAME = "26000"
TRIGGERED_DATA_CHANGE_VIOLATION = "27000"
INVALID_AUTHORIZATION_SPECIFICATION = "28000"
INVALID_PASSWORD = "28P01"
DEPENDENT_PRIVILEGE_DESCRIPTORS_STILL_EXIST = "2B000"
DEPENDENT_OBJECTS_STILL_EXIST = "2BP01"
INVALID_TRANSACTION_TERMINATION = "2D000"
SQL_ROUTINE_EXCEPTION = "2F000"
MODIFYING_SQL_DATA_NOT_PERMITTED_ = "2F002"
PROHIBITED_SQL_STATEMENT_ATTEMPTED_ = "2F003"
READING_SQL_DATA_NOT_PERMITTED_ = "2F004"
FUNCTION_EXECUTED_NO_RETURN_STATEMENT = "2F005"
INVALID_CURSOR_NAME = "34000"
EXTERNAL_ROUTINE_EXCEPTION = "38000"
CONTAINING_SQL_NOT_PERMITTED = "38001"
MODIFYING_SQL_DATA_NOT_PERMITTED = "38002"
PROHIBITED_SQL_STATEMENT_ATTEMPTED = "38003"
READING_SQL_DATA_NOT_PERMITTED = "38004"
EXTERNAL_ROUTINE_INVOCATION_EXCEPTION = "39000"
INVALID_SQLSTATE_RETURNED = "39001"
NULL_VALUE_NOT_ALLOWED = "39004"
TRIGGER_PROTOCOL_VIOLATED = "39P01"
SRF_PROTOCOL_VIOLATED = "39P02"
EVENT_TRIGGER_PROTOCOL_VIOLATED = "39P03"
SAVEPOINT_EXCEPTION = "3B000"
INVALID_SAVEPOINT_SPECIFICATION = "3B001"
INVALID_CATALOG_NAME = "3D000"
INVALID_SCHEMA_NAME = "3F000"
TRANSACTION_ROLLBACK = "40000"
SERIALIZATION_FAILURE = "40001"
TRANSACTION_INTEGRITY_CONSTRAINT_VIOLATION = "40002"
STATEMENT_COMPLETION_UNKNOWN = "40003"
DEADLOCK_DETECTED = "40P01"
SYNTAX_ERROR_OR_ACCESS_RULE_VIOLATION = "42000"
INSUFFICIENT_PRIVILEGE = "42501"
SYNTAX_ERROR = "42601"
INVALID_NAME = "42602"
INVALID_COLUMN_DEFINITION = "42611"
NAME_TOO_LONG = "42622"
DUPLICATE_COLUMN = "42701"
AMBIGUOUS_COLUMN = "42702"
UNDEFINED_COLUMN = "42703"
UNDEFINED_OBJECT = "42704"
DUPLICATE_OBJECT = "42710"
DUPLICATE_ALIAS = "42712"
DUPLICATE_FUNCTION = "42723"
AMBIGUOUS_FUNCTION = "42725"
GROUPING_ERROR = "42803"
DATATYPE_MISMATCH = "42804"
WRONG_OBJECT_TYPE = "42809"
INVALID_FOREIGN_KEY = "42830"
CANNOT_COERCE = "42846"
UNDEFINED_FUNCTION = "42883"
GENERATED_ALWAYS = "428C9"
RESERVED_NAME = "42939"
UNDEFINED_TABLE = "42P01"
UNDEFINED_PARAMETER = "42P02"
DUPLICATE_CURSOR = "42P03"
DUPLICATE_DATABASE = "42P04"
DUPLICATE_PREPARED_STATEMENT = "42P05"
DUPLICATE_SCHEMA = "42P06"
DUPLICATE_TABLE = "42P07"
AMBIGUOUS_PARAMETER = "42P08"
AMBIGUOUS_ALIAS = "42P09"
INVALID_COLUMN_REFERENCE = "42P10"
INVALID_CURSOR_DEFINITION = "42P11"
INVALID_DATABASE_DEFINITION = "42P12"
INVALID_FUNCTION_DEFINITION = "42P13"
INVALID_PREPARED_STATEMENT_DEFINITION = "42P14"
INVALID_SCHEMA_DEFINITION = "42P15"
INVALID_TABLE_DEFINITION = "42P16"
INVALID_OBJECT_DEFINITION = "42P17"
INDETERMINATE_DATATYPE = "42P18"
INVALID_RECURSION = "42P19"
WINDOWING_ERROR = "42P20"
COLLATION_MISMATCH = "42P21"
INDETERMINATE_COLLATION = "42P22"
WITH_CHECK_OPTION_VIOLATION = "44000"
INSUFFICIENT_RESOURCES = "53000"
DISK_FULL = "53100"
OUT_OF_MEMORY = "53200"
TOO_MANY_CONNECTIONS = "53300"
CONFIGURATION_LIMIT_EXCEEDED = "53400"
PROGRAM_LIMIT_EXCEEDED = "54000"
STATEMENT_TOO_COMPLEX = "54001"
TOO_MANY_COLUMNS = "54011"
TOO_MANY_ARGUMENTS = "54023"
OBJECT_NOT_IN_PREREQUISITE_STATE = "55000"
OBJECT_IN_USE = "55006"
CANT_CHANGE_RUNTIME_PARAM = "55P02"
LOCK_NOT_AVAILABLE = "55P03"
UNSAFE_NEW_ENUM_VALUE_USAGE = "55P04"
OPERATOR_INTERVENTION = "57000"
QUERY_CANCELED = "57014"
ADMIN_SHUTDOWN = "57P01"
CRASH_SHUTDOWN = "57P02"
CANNOT_CONNECT_NOW = "57P03"
DATABASE_DROPPED = "57P04"
IDLE_SESSION_TIMEOUT = "57P05"
SYSTEM_ERROR = "58000"
IO_ERROR = "58030"
UNDEFINED_FILE = "58P01"
DUPLICATE_FILE = "58P02"
SNAPSHOT_TOO_OLD = "72000"
CONFIG_FILE_ERROR = "F0000"
LOCK_FILE_EXISTS = "F0001"
FDW_ERROR = "HV000"
FDW_OUT_OF_MEMORY = "HV001"
FDW_DYNAMIC_PARAMETER_VALUE_NEEDED = "HV002"
FDW_INVALID_DATA_TYPE = "HV004"
FDW_COLUMN_NAME_NOT_FOUND = "HV005"
FDW_INVALID_DATA_TYPE_DESCRIPTORS = "HV006"
FDW_INVALID_COLUMN_NAME = "HV007"
FDW_INVALID_COLUMN_NUMBER = "HV008"
FDW_INVALID_USE_OF_NULL_POINTER = "HV009"
FDW_INVALID_STRING_FORMAT = "HV00A"
FDW_INVALID_HANDLE = "HV00B"
FDW_INVALID_OPTION_INDEX = "HV00C"
FDW_INVALID_OPTION_NAME = "HV00D"
FDW_OPTION_NAME_NOT_FOUND = "HV00J"
FDW_REPLY_HANDLE = "HV00K"
FDW_UNABLE_TO_CREATE_EXECUTION = "HV00L"
FDW_UNABLE_TO_CREATE_REPLY = "HV00M"
FDW_UNABLE_TO_ESTABLISH_CONNECTION = "HV00N"
FDW_NO_SCHEMAS = "HV00P"
FDW_SCHEMA_NOT_FOUND = "HV00Q"
FDW_TABLE_NOT_FOUND = "HV00R"
FDW_FUNCTION_SEQUENCE_ERROR = "HV010"
FDW_TOO_MANY_HANDLES = "HV014"
FDW_INCONSISTENT_DESCRIPTOR_INFORMATION = "HV021"
FDW_INVALID_ATTRIBUTE_VALUE = "HV024"
FDW_INVALID_STRING_LENGTH_OR_BUFFER_LENGTH = "HV090"
FDW_INVALID_DESCRIPTOR_FIELD_IDENTIFIER = "HV091"
PLPGSQL_ERROR = "P0000"
RAISE_EXCEPTION = "P0001"
NO_DATA_FOUND = "P0002"
TOO_MANY_ROWS = "P0003"
ASSERT_FAILURE = "P0004"
INTERNAL_ERROR = "XX000"
DATA_CORRUPTED = "XX001"
INDEX_CORRUPTED = "XX002"