diff options
Diffstat (limited to 'lib/errors.py')
-rw-r--r-- | lib/errors.py | 1331 |
1 files changed, 27 insertions, 1304 deletions
diff --git a/lib/errors.py b/lib/errors.py index 99ab0b0..79d3ff4 100644 --- a/lib/errors.py +++ b/lib/errors.py @@ -1,13 +1,31 @@ """Error classes for PostgreSQL error codes """ -# Imported for completeness, but unused in this module. -from psycopg2._psycopg import Error, Warning, InterfaceError # noqa - -from psycopg2._psycopg import ( - DataError, DatabaseError, ProgrammingError, IntegrityError, - InternalError, NotSupportedError, OperationalError, - QueryCanceledError, TransactionRollbackError) +# psycopg/errors.py - SQLSTATE and DB-API exceptions +# +# Copyright (C) 2018-2019 Daniele Varrazzo <daniele.varrazzo@gmail.com> +# +# psycopg2 is free software: you can redistribute it and/or modify it +# under the terms of the GNU Lesser General Public License as published +# by the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# In addition, as a special exception, the copyright holders give +# permission to link this program with the OpenSSL library (or with +# modified versions of OpenSSL that use the same license as OpenSSL), +# and distribute linked combinations including the two. +# +# You must obey the GNU Lesser General Public License in all respects for +# all of the code used other than OpenSSL. +# +# psycopg2 is distributed in the hope that it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public +# License for more details. + +# +# NOTE: the exceptions are injected into this module by the C extention. +# def lookup(code): @@ -15,1300 +33,5 @@ def lookup(code): Raise `!KeyError` if the code is not found. """ - return _by_sqlstate[code] - - -_by_sqlstate = {} - - -def for_sqlstate(state): - def for_sqlstate_(cls): - _by_sqlstate[state] = cls - return cls - return for_sqlstate_ - - -# autogenerated data: do not edit below this point. - - -# Class 02 - No Data (this is also a warning class per the SQL standard) - - -@for_sqlstate('02000') -class NoData(DatabaseError): - pass - - -@for_sqlstate('02001') -class NoAdditionalDynamicResultSetsReturned(DatabaseError): - pass - - -# Class 03 - SQL Statement Not Yet Complete - - -@for_sqlstate('03000') -class SqlStatementNotYetComplete(DatabaseError): - pass - - -# Class 08 - Connection Exception - - -@for_sqlstate('08000') -class ConnectionException(DatabaseError): - pass - - -@for_sqlstate('08001') -class SqlclientUnableToEstablishSqlconnection(DatabaseError): - pass - - -@for_sqlstate('08003') -class ConnectionDoesNotExist(DatabaseError): - pass - - -@for_sqlstate('08004') -class SqlserverRejectedEstablishmentOfSqlconnection(DatabaseError): - pass - - -@for_sqlstate('08006') -class ConnectionFailure(DatabaseError): - pass - - -@for_sqlstate('08007') -class TransactionResolutionUnknown(DatabaseError): - pass - - -@for_sqlstate('08P01') -class ProtocolViolation(DatabaseError): - pass - - -# Class 09 - Triggered Action Exception - - -@for_sqlstate('09000') -class TriggeredActionException(DatabaseError): - pass - - -# Class 0A - Feature Not Supported - - -@for_sqlstate('0A000') -class FeatureNotSupported(NotSupportedError): - pass - - -# Class 0B - Invalid Transaction Initiation - - -@for_sqlstate('0B000') -class InvalidTransactionInitiation(DatabaseError): - pass - - -# Class 0F - Locator Exception - - -@for_sqlstate('0F000') -class LocatorException(DatabaseError): - pass - - -@for_sqlstate('0F001') -class InvalidLocatorSpecification(DatabaseError): - pass - - -# Class 0L - Invalid Grantor - - -@for_sqlstate('0L000') -class InvalidGrantor(DatabaseError): - pass - - -@for_sqlstate('0LP01') -class InvalidGrantOperation(DatabaseError): - pass - - -# Class 0P - Invalid Role Specification - - -@for_sqlstate('0P000') -class InvalidRoleSpecification(DatabaseError): - pass - - -# Class 0Z - Diagnostics Exception - - -@for_sqlstate('0Z000') -class DiagnosticsException(DatabaseError): - pass - - -@for_sqlstate('0Z002') -class StackedDiagnosticsAccessedWithoutActiveHandler(DatabaseError): - pass - - -# Class 20 - Case Not Found - - -@for_sqlstate('20000') -class CaseNotFound(ProgrammingError): - pass - - -# Class 21 - Cardinality Violation - - -@for_sqlstate('21000') -class CardinalityViolation(ProgrammingError): - pass - - -# Class 22 - Data Exception - - -@for_sqlstate('22000') -class DataException(DataError): - pass - - -@for_sqlstate('22001') -class StringDataRightTruncation(DataError): - pass - - -@for_sqlstate('22002') -class NullValueNoIndicatorParameter(DataError): - pass - - -@for_sqlstate('22003') -class NumericValueOutOfRange(DataError): - pass - - -@for_sqlstate('22004') -class NullValueNotAllowed(DataError): - pass - - -@for_sqlstate('22005') -class ErrorInAssignment(DataError): - pass - - -@for_sqlstate('22007') -class InvalidDatetimeFormat(DataError): - pass - - -@for_sqlstate('22008') -class DatetimeFieldOverflow(DataError): - pass - - -@for_sqlstate('22009') -class InvalidTimeZoneDisplacementValue(DataError): - pass - - -@for_sqlstate('2200B') -class EscapeCharacterConflict(DataError): - pass - - -@for_sqlstate('2200C') -class InvalidUseOfEscapeCharacter(DataError): - pass - - -@for_sqlstate('2200D') -class InvalidEscapeOctet(DataError): - pass - - -@for_sqlstate('2200F') -class ZeroLengthCharacterString(DataError): - pass - - -@for_sqlstate('2200G') -class MostSpecificTypeMismatch(DataError): - pass - - -@for_sqlstate('2200H') -class SequenceGeneratorLimitExceeded(DataError): - pass - - -@for_sqlstate('2200L') -class NotAnXmlDocument(DataError): - pass - - -@for_sqlstate('2200M') -class InvalidXmlDocument(DataError): - pass - - -@for_sqlstate('2200N') -class InvalidXmlContent(DataError): - pass - - -@for_sqlstate('2200S') -class InvalidXmlComment(DataError): - pass - - -@for_sqlstate('2200T') -class InvalidXmlProcessingInstruction(DataError): - pass - - -@for_sqlstate('22010') -class InvalidIndicatorParameterValue(DataError): - pass - - -@for_sqlstate('22011') -class SubstringError(DataError): - pass - - -@for_sqlstate('22012') -class DivisionByZero(DataError): - pass - - -@for_sqlstate('22013') -class InvalidPrecedingOrFollowingSize(DataError): - pass - - -@for_sqlstate('22014') -class InvalidArgumentForNtileFunction(DataError): - pass - - -@for_sqlstate('22015') -class IntervalFieldOverflow(DataError): - pass - - -@for_sqlstate('22016') -class InvalidArgumentForNthValueFunction(DataError): - pass - - -@for_sqlstate('22018') -class InvalidCharacterValueForCast(DataError): - pass - - -@for_sqlstate('22019') -class InvalidEscapeCharacter(DataError): - pass - - -@for_sqlstate('2201B') -class InvalidRegularExpression(DataError): - pass - - -@for_sqlstate('2201E') -class InvalidArgumentForLogarithm(DataError): - pass - - -@for_sqlstate('2201F') -class InvalidArgumentForPowerFunction(DataError): - pass - - -@for_sqlstate('2201G') -class InvalidArgumentForWidthBucketFunction(DataError): - pass - - -@for_sqlstate('2201W') -class InvalidRowCountInLimitClause(DataError): - pass - - -@for_sqlstate('2201X') -class InvalidRowCountInResultOffsetClause(DataError): - pass - - -@for_sqlstate('22021') -class CharacterNotInRepertoire(DataError): - pass - - -@for_sqlstate('22022') -class IndicatorOverflow(DataError): - pass - - -@for_sqlstate('22023') -class InvalidParameterValue(DataError): - pass - - -@for_sqlstate('22024') -class UnterminatedCString(DataError): - pass - - -@for_sqlstate('22025') -class InvalidEscapeSequence(DataError): - pass - - -@for_sqlstate('22026') -class StringDataLengthMismatch(DataError): - pass - - -@for_sqlstate('22027') -class TrimError(DataError): - pass - - -@for_sqlstate('2202E') -class ArraySubscriptError(DataError): - pass - - -@for_sqlstate('2202G') -class InvalidTablesampleRepeat(DataError): - pass - - -@for_sqlstate('2202H') -class InvalidTablesampleArgument(DataError): - pass - - -@for_sqlstate('22P01') -class FloatingPointException(DataError): - pass - - -@for_sqlstate('22P02') -class InvalidTextRepresentation(DataError): - pass - - -@for_sqlstate('22P03') -class InvalidBinaryRepresentation(DataError): - pass - - -@for_sqlstate('22P04') -class BadCopyFileFormat(DataError): - pass - - -@for_sqlstate('22P05') -class UntranslatableCharacter(DataError): - pass - - -@for_sqlstate('22P06') -class NonstandardUseOfEscapeCharacter(DataError): - pass - - -# Class 23 - Integrity Constraint Violation - - -@for_sqlstate('23000') -class IntegrityConstraintViolation(IntegrityError): - pass - - -@for_sqlstate('23001') -class RestrictViolation(IntegrityError): - pass - - -@for_sqlstate('23502') -class NotNullViolation(IntegrityError): - pass - - -@for_sqlstate('23503') -class ForeignKeyViolation(IntegrityError): - pass - - -@for_sqlstate('23505') -class UniqueViolation(IntegrityError): - pass - - -@for_sqlstate('23514') -class CheckViolation(IntegrityError): - pass - - -@for_sqlstate('23P01') -class ExclusionViolation(IntegrityError): - pass - - -# Class 24 - Invalid Cursor State - - -@for_sqlstate('24000') -class InvalidCursorState(InternalError): - pass - - -# Class 25 - Invalid Transaction State - - -@for_sqlstate('25000') -class InvalidTransactionState(InternalError): - pass - - -@for_sqlstate('25001') -class ActiveSqlTransaction(InternalError): - pass - - -@for_sqlstate('25002') -class BranchTransactionAlreadyActive(InternalError): - pass - - -@for_sqlstate('25003') -class InappropriateAccessModeForBranchTransaction(InternalError): - pass - - -@for_sqlstate('25004') -class InappropriateIsolationLevelForBranchTransaction(InternalError): - pass - - -@for_sqlstate('25005') -class NoActiveSqlTransactionForBranchTransaction(InternalError): - pass - - -@for_sqlstate('25006') -class ReadOnlySqlTransaction(InternalError): - pass - - -@for_sqlstate('25007') -class SchemaAndDataStatementMixingNotSupported(InternalError): - pass - - -@for_sqlstate('25008') -class HeldCursorRequiresSameIsolationLevel(InternalError): - pass - - -@for_sqlstate('25P01') -class NoActiveSqlTransaction(InternalError): - pass - - -@for_sqlstate('25P02') -class InFailedSqlTransaction(InternalError): - pass - - -@for_sqlstate('25P03') -class IdleInTransactionSessionTimeout(InternalError): - pass - - -# Class 26 - Invalid SQL Statement Name - - -@for_sqlstate('26000') -class InvalidSqlStatementName(OperationalError): - pass - - -# Class 27 - Triggered Data Change Violation - - -@for_sqlstate('27000') -class TriggeredDataChangeViolation(OperationalError): - pass - - -# Class 28 - Invalid Authorization Specification - - -@for_sqlstate('28000') -class InvalidAuthorizationSpecification(OperationalError): - pass - - -@for_sqlstate('28P01') -class InvalidPassword(OperationalError): - pass - - -# Class 2B - Dependent Privilege Descriptors Still Exist - - -@for_sqlstate('2B000') -class DependentPrivilegeDescriptorsStillExist(InternalError): - pass - - -@for_sqlstate('2BP01') -class DependentObjectsStillExist(InternalError): - pass - - -# Class 2D - Invalid Transaction Termination - - -@for_sqlstate('2D000') -class InvalidTransactionTermination(InternalError): - pass - - -# Class 2F - SQL Routine Exception - - -@for_sqlstate('2F000') -class SqlRoutineException(InternalError): - pass - - -@for_sqlstate('2F002') -class ModifyingSqlDataNotPermitted(InternalError): - pass - - -@for_sqlstate('2F003') -class ProhibitedSqlStatementAttempted(InternalError): - pass - - -@for_sqlstate('2F004') -class ReadingSqlDataNotPermitted(InternalError): - pass - - -@for_sqlstate('2F005') -class FunctionExecutedNoReturnStatement(InternalError): - pass - - -# Class 34 - Invalid Cursor Name - - -@for_sqlstate('34000') -class InvalidCursorName(OperationalError): - pass - - -# Class 38 - External Routine Exception - - -@for_sqlstate('38000') -class ExternalRoutineException(InternalError): - pass - - -@for_sqlstate('38001') -class ContainingSqlNotPermitted(InternalError): - pass - - -@for_sqlstate('38002') -class ModifyingSqlDataNotPermittedExt(InternalError): - pass - - -@for_sqlstate('38003') -class ProhibitedSqlStatementAttemptedExt(InternalError): - pass - - -@for_sqlstate('38004') -class ReadingSqlDataNotPermittedExt(InternalError): - pass - - -# Class 39 - External Routine Invocation Exception - - -@for_sqlstate('39000') -class ExternalRoutineInvocationException(InternalError): - pass - - -@for_sqlstate('39001') -class InvalidSqlstateReturned(InternalError): - pass - - -@for_sqlstate('39004') -class NullValueNotAllowedExt(InternalError): - pass - - -@for_sqlstate('39P01') -class TriggerProtocolViolated(InternalError): - pass - - -@for_sqlstate('39P02') -class SrfProtocolViolated(InternalError): - pass - - -@for_sqlstate('39P03') -class EventTriggerProtocolViolated(InternalError): - pass - - -# Class 3B - Savepoint Exception - - -@for_sqlstate('3B000') -class SavepointException(InternalError): - pass - - -@for_sqlstate('3B001') -class InvalidSavepointSpecification(InternalError): - pass - - -# Class 3D - Invalid Catalog Name - - -@for_sqlstate('3D000') -class InvalidCatalogName(ProgrammingError): - pass - - -# Class 3F - Invalid Schema Name - - -@for_sqlstate('3F000') -class InvalidSchemaName(ProgrammingError): - pass - - -# Class 40 - Transaction Rollback - - -@for_sqlstate('40000') -class TransactionRollback(TransactionRollbackError): - pass - - -@for_sqlstate('40001') -class SerializationFailure(TransactionRollbackError): - pass - - -@for_sqlstate('40002') -class TransactionIntegrityConstraintViolation(TransactionRollbackError): - pass - - -@for_sqlstate('40003') -class StatementCompletionUnknown(TransactionRollbackError): - pass - - -@for_sqlstate('40P01') -class DeadlockDetected(TransactionRollbackError): - pass - - -# Class 42 - Syntax Error or Access Rule Violation - - -@for_sqlstate('42000') -class SyntaxErrorOrAccessRuleViolation(ProgrammingError): - pass - - -@for_sqlstate('42501') -class InsufficientPrivilege(ProgrammingError): - pass - - -@for_sqlstate('42601') -class SyntaxError(ProgrammingError): - pass - - -@for_sqlstate('42602') -class InvalidName(ProgrammingError): - pass - - -@for_sqlstate('42611') -class InvalidColumnDefinition(ProgrammingError): - pass - - -@for_sqlstate('42622') -class NameTooLong(ProgrammingError): - pass - - -@for_sqlstate('42701') -class DuplicateColumn(ProgrammingError): - pass - - -@for_sqlstate('42702') -class AmbiguousColumn(ProgrammingError): - pass - - -@for_sqlstate('42703') -class UndefinedColumn(ProgrammingError): - pass - - -@for_sqlstate('42704') -class UndefinedObject(ProgrammingError): - pass - - -@for_sqlstate('42710') -class DuplicateObject(ProgrammingError): - pass - - -@for_sqlstate('42712') -class DuplicateAlias(ProgrammingError): - pass - - -@for_sqlstate('42723') -class DuplicateFunction(ProgrammingError): - pass - - -@for_sqlstate('42725') -class AmbiguousFunction(ProgrammingError): - pass - - -@for_sqlstate('42803') -class GroupingError(ProgrammingError): - pass - - -@for_sqlstate('42804') -class DatatypeMismatch(ProgrammingError): - pass - - -@for_sqlstate('42809') -class WrongObjectType(ProgrammingError): - pass - - -@for_sqlstate('42830') -class InvalidForeignKey(ProgrammingError): - pass - - -@for_sqlstate('42846') -class CannotCoerce(ProgrammingError): - pass - - -@for_sqlstate('42883') -class UndefinedFunction(ProgrammingError): - pass - - -@for_sqlstate('428C9') -class GeneratedAlways(ProgrammingError): - pass - - -@for_sqlstate('42939') -class ReservedName(ProgrammingError): - pass - - -@for_sqlstate('42P01') -class UndefinedTable(ProgrammingError): - pass - - -@for_sqlstate('42P02') -class UndefinedParameter(ProgrammingError): - pass - - -@for_sqlstate('42P03') -class DuplicateCursor(ProgrammingError): - pass - - -@for_sqlstate('42P04') -class DuplicateDatabase(ProgrammingError): - pass - - -@for_sqlstate('42P05') -class DuplicatePreparedStatement(ProgrammingError): - pass - - -@for_sqlstate('42P06') -class DuplicateSchema(ProgrammingError): - pass - - -@for_sqlstate('42P07') -class DuplicateTable(ProgrammingError): - pass - - -@for_sqlstate('42P08') -class AmbiguousParameter(ProgrammingError): - pass - - -@for_sqlstate('42P09') -class AmbiguousAlias(ProgrammingError): - pass - - -@for_sqlstate('42P10') -class InvalidColumnReference(ProgrammingError): - pass - - -@for_sqlstate('42P11') -class InvalidCursorDefinition(ProgrammingError): - pass - - -@for_sqlstate('42P12') -class InvalidDatabaseDefinition(ProgrammingError): - pass - - -@for_sqlstate('42P13') -class InvalidFunctionDefinition(ProgrammingError): - pass - - -@for_sqlstate('42P14') -class InvalidPreparedStatementDefinition(ProgrammingError): - pass - - -@for_sqlstate('42P15') -class InvalidSchemaDefinition(ProgrammingError): - pass - - -@for_sqlstate('42P16') -class InvalidTableDefinition(ProgrammingError): - pass - - -@for_sqlstate('42P17') -class InvalidObjectDefinition(ProgrammingError): - pass - - -@for_sqlstate('42P18') -class IndeterminateDatatype(ProgrammingError): - pass - - -@for_sqlstate('42P19') -class InvalidRecursion(ProgrammingError): - pass - - -@for_sqlstate('42P20') -class WindowingError(ProgrammingError): - pass - - -@for_sqlstate('42P21') -class CollationMismatch(ProgrammingError): - pass - - -@for_sqlstate('42P22') -class IndeterminateCollation(ProgrammingError): - pass - - -# Class 44 - WITH CHECK OPTION Violation - - -@for_sqlstate('44000') -class WithCheckOptionViolation(ProgrammingError): - pass - - -# Class 53 - Insufficient Resources - - -@for_sqlstate('53000') -class InsufficientResources(OperationalError): - pass - - -@for_sqlstate('53100') -class DiskFull(OperationalError): - pass - - -@for_sqlstate('53200') -class OutOfMemory(OperationalError): - pass - - -@for_sqlstate('53300') -class TooManyConnections(OperationalError): - pass - - -@for_sqlstate('53400') -class ConfigurationLimitExceeded(OperationalError): - pass - - -# Class 54 - Program Limit Exceeded - - -@for_sqlstate('54000') -class ProgramLimitExceeded(OperationalError): - pass - - -@for_sqlstate('54001') -class StatementTooComplex(OperationalError): - pass - - -@for_sqlstate('54011') -class TooManyColumns(OperationalError): - pass - - -@for_sqlstate('54023') -class TooManyArguments(OperationalError): - pass - - -# Class 55 - Object Not In Prerequisite State - - -@for_sqlstate('55000') -class ObjectNotInPrerequisiteState(OperationalError): - pass - - -@for_sqlstate('55006') -class ObjectInUse(OperationalError): - pass - - -@for_sqlstate('55P02') -class CantChangeRuntimeParam(OperationalError): - pass - - -@for_sqlstate('55P03') -class LockNotAvailable(OperationalError): - pass - - -# Class 57 - Operator Intervention - - -@for_sqlstate('57000') -class OperatorIntervention(OperationalError): - pass - - -@for_sqlstate('57014') -class QueryCanceled(QueryCanceledError): - pass - - -@for_sqlstate('57P01') -class AdminShutdown(OperationalError): - pass - - -@for_sqlstate('57P02') -class CrashShutdown(OperationalError): - pass - - -@for_sqlstate('57P03') -class CannotConnectNow(OperationalError): - pass - - -@for_sqlstate('57P04') -class DatabaseDropped(OperationalError): - pass - - -# Class 58 - System Error (errors external to PostgreSQL itself) - - -@for_sqlstate('58000') -class SystemError(OperationalError): - pass - - -@for_sqlstate('58030') -class IoError(OperationalError): - pass - - -@for_sqlstate('58P01') -class UndefinedFile(OperationalError): - pass - - -@for_sqlstate('58P02') -class DuplicateFile(OperationalError): - pass - - -# Class 72 - Snapshot Failure - - -@for_sqlstate('72000') -class SnapshotTooOld(DatabaseError): - pass - - -# Class F0 - Configuration File Error - - -@for_sqlstate('F0000') -class ConfigFileError(InternalError): - pass - - -@for_sqlstate('F0001') -class LockFileExists(InternalError): - pass - - -# Class HV - Foreign Data Wrapper Error (SQL/MED) - - -@for_sqlstate('HV000') -class FdwError(OperationalError): - pass - - -@for_sqlstate('HV001') -class FdwOutOfMemory(OperationalError): - pass - - -@for_sqlstate('HV002') -class FdwDynamicParameterValueNeeded(OperationalError): - pass - - -@for_sqlstate('HV004') -class FdwInvalidDataType(OperationalError): - pass - - -@for_sqlstate('HV005') -class FdwColumnNameNotFound(OperationalError): - pass - - -@for_sqlstate('HV006') -class FdwInvalidDataTypeDescriptors(OperationalError): - pass - - -@for_sqlstate('HV007') -class FdwInvalidColumnName(OperationalError): - pass - - -@for_sqlstate('HV008') -class FdwInvalidColumnNumber(OperationalError): - pass - - -@for_sqlstate('HV009') -class FdwInvalidUseOfNullPointer(OperationalError): - pass - - -@for_sqlstate('HV00A') -class FdwInvalidStringFormat(OperationalError): - pass - - -@for_sqlstate('HV00B') -class FdwInvalidHandle(OperationalError): - pass - - -@for_sqlstate('HV00C') -class FdwInvalidOptionIndex(OperationalError): - pass - - -@for_sqlstate('HV00D') -class FdwInvalidOptionName(OperationalError): - pass - - -@for_sqlstate('HV00J') -class FdwOptionNameNotFound(OperationalError): - pass - - -@for_sqlstate('HV00K') -class FdwReplyHandle(OperationalError): - pass - - -@for_sqlstate('HV00L') -class FdwUnableToCreateExecution(OperationalError): - pass - - -@for_sqlstate('HV00M') -class FdwUnableToCreateReply(OperationalError): - pass - - -@for_sqlstate('HV00N') -class FdwUnableToEstablishConnection(OperationalError): - pass - - -@for_sqlstate('HV00P') -class FdwNoSchemas(OperationalError): - pass - - -@for_sqlstate('HV00Q') -class FdwSchemaNotFound(OperationalError): - pass - - -@for_sqlstate('HV00R') -class FdwTableNotFound(OperationalError): - pass - - -@for_sqlstate('HV010') -class FdwFunctionSequenceError(OperationalError): - pass - - -@for_sqlstate('HV014') -class FdwTooManyHandles(OperationalError): - pass - - -@for_sqlstate('HV021') -class FdwInconsistentDescriptorInformation(OperationalError): - pass - - -@for_sqlstate('HV024') -class FdwInvalidAttributeValue(OperationalError): - pass - - -@for_sqlstate('HV090') -class FdwInvalidStringLengthOrBufferLength(OperationalError): - pass - - -@for_sqlstate('HV091') -class FdwInvalidDescriptorFieldIdentifier(OperationalError): - pass - - -# Class P0 - PL/pgSQL Error - - -@for_sqlstate('P0000') -class PlpgsqlError(InternalError): - pass - - -@for_sqlstate('P0001') -class RaiseException(InternalError): - pass - - -@for_sqlstate('P0002') -class NoDataFound(InternalError): - pass - - -@for_sqlstate('P0003') -class TooManyRows(InternalError): - pass - - -@for_sqlstate('P0004') -class AssertFailure(InternalError): - pass - - -# Class XX - Internal Error - - -@for_sqlstate('XX000') -class InternalError_(InternalError): - pass - - -@for_sqlstate('XX001') -class DataCorrupted(InternalError): - pass - - -@for_sqlstate('XX002') -class IndexCorrupted(InternalError): - pass + from psycopg2._psycopg import sqlstate_errors # avoid circular import + return sqlstate_errors[code] |