Team Ai
Datasetpublic

codekingpro/portable-devtools

sourceHugging Faceupdated 5mo agoView on Hugging Face
1likes14kdownloads
errors.py1728 linesDownload Raw Back to psycopg
1"""2psycopg exceptions3 4DBAPI-defined Exceptions are defined in the following hierarchy::5 6    Exceptions7    |__Warning8    |__Error9       |__InterfaceError10       |__DatabaseError11          |__DataError12          |__OperationalError13          |__IntegrityError14          |__InternalError15          |__ProgrammingError16          |__NotSupportedError17"""18 19# Copyright (C) 2020 The Psycopg Team20 21from dataclasses import dataclass, field, fields22from typing import Any, Callable, Dict, List, NoReturn, Optional, Sequence, Tuple, Type23from typing import Union, TYPE_CHECKING24from typing_extensions import TypeAlias25from asyncio import CancelledError26 27from .pq.abc import PGconn, PGresult28from .pq._enums import ConnStatus, DiagnosticField, PipelineStatus, TransactionStatus29from ._compat import TypeGuard30 31if TYPE_CHECKING:32    from .pq.misc import PGnotify, ConninfoOption33 34ErrorInfo: TypeAlias = Union[None, PGresult, Dict[int, Optional[bytes]]]35 36_sqlcodes: Dict[str, "Type[Error]"] = {}37 38 39@dataclass40class FinishedPGconn:41    """Finished libpq connection.42 43    Attributes are set from a real `~pscopg.pq.PGconn` but any operations will44    raise an `~psycopg.OperationalError`.45    """46 47    info: List["ConninfoOption"] = field(default_factory=list)48 49    db: bytes = b""50    user: bytes = b""51    password: bytes = b""52    host: bytes = b""53    hostaddr: bytes = b""54    port: bytes = b""55    tty: bytes = b""56    options: bytes = b""57    status: int = ConnStatus.BAD.value58    transaction_status: int = TransactionStatus.UNKNOWN.value59    pipeline_status: int = PipelineStatus.OFF.value60 61    error_message: bytes = b""62    server_version: int = 063 64    backend_pid: int = 065    needs_password: bool = False66    used_password: bool = False67    ssl_in_use: bool = False68 69    nonblocking: int = 070 71    notice_handler: Optional[Callable[["PGresult"], None]] = None72    notify_handler: Optional[Callable[["PGnotify"], None]] = None73 74    @staticmethod75    def _raise() -> NoReturn:76        raise OperationalError("the connection is closed")77 78    @classmethod79    def connect(cls, *args: Any) -> NoReturn:80        raise TypeError(f"{cls} is unusable")81 82    @classmethod83    def connect_start(cls, *args: Any) -> NoReturn:84        raise TypeError(f"{cls} is unusable")85 86    def connect_poll(self) -> NoReturn:87        self._raise()88 89    def finish(self) -> None:90        pass91 92    def reset(self) -> NoReturn:93        self._raise()94 95    def reset_start(self) -> NoReturn:96        self._raise()97 98    def reset_poll(self) -> NoReturn:99        self._raise()100 101    @classmethod102    def ping(cls, *args: Any) -> NoReturn:103        raise TypeError(f"{cls} is unusable")104 105    def parameter_status(self, *args: Any) -> NoReturn:106        self._raise()107 108    @property109    def socket(self) -> NoReturn:110        self._raise()111 112    def exec_(self, *args: Any) -> NoReturn:113        self._raise()114 115    def send_query(self, *args: Any) -> None:116        self._raise()117 118    def exec_params(self, *args: Any) -> NoReturn:119        self._raise()120 121    def send_query_params(self, *args: Any) -> NoReturn:122        self._raise()123 124    def send_prepare(self, *args: Any) -> NoReturn:125        self._raise()126 127    def send_query_prepared(self, *args: Any) -> NoReturn:128        self._raise()129 130    def prepare(self, *args: Any) -> NoReturn:131        self._raise()132 133    def exec_prepared(self, *args: Any) -> NoReturn:134        self._raise()135 136    def describe_prepared(self, *args: Any) -> NoReturn:137        self._raise()138 139    def send_describe_prepared(self, *args: Any) -> NoReturn:140        self._raise()141 142    def describe_portal(self, *args: Any) -> NoReturn:143        self._raise()144 145    def send_describe_portal(self, *args: Any) -> NoReturn:146        self._raise()147 148    def get_result(self) -> NoReturn:149        self._raise()150 151    def consume_input(self) -> NoReturn:152        self._raise()153 154    def is_busy(self) -> NoReturn:155        self._raise()156 157    def flush(self) -> NoReturn:158        self._raise()159 160    def set_single_row_mode(self) -> NoReturn:161        self._raise()162 163    def get_cancel(self) -> NoReturn:164        self._raise()165 166    def notifies(self) -> NoReturn:167        self._raise()168 169    def put_copy_data(self, *args: Any) -> NoReturn:170        self._raise()171 172    def put_copy_end(self, *args: Any) -> NoReturn:173        self._raise()174 175    def get_copy_data(self, *args: Any) -> NoReturn:176        self._raise()177 178    def trace(self, *args: Any) -> NoReturn:179        self._raise()180 181    def set_trace_flags(self, *args: Any) -> NoReturn:182        self._raise()183 184    def untrace(self) -> NoReturn:185        self._raise()186 187    def encrypt_password(self, *args: Any) -> NoReturn:188        self._raise()189 190    def make_empty_result(self, *args: Any) -> NoReturn:191        self._raise()192 193    def enter_pipeline_mode(self) -> NoReturn:194        self._raise()195 196    def exit_pipeline_mode(self) -> NoReturn:197        self._raise()198 199    def pipeline_sync(self) -> NoReturn:200        self._raise()201 202    def send_flush_request(self) -> NoReturn:203        self._raise()204 205 206def finish_pgconn(pgconn: PGconn) -> PGconn:207    args = {}208    for f in fields(FinishedPGconn):209        try:210            args[f.name] = getattr(pgconn, f.name)211        except Exception:212            pass213    pgconn.finish()214    return FinishedPGconn(**args)215 216 217class Warning(Exception):218    """219    Exception raised for important warnings.220 221    Defined for DBAPI compatibility, but never raised by ``psycopg``.222    """223 224    __module__ = "psycopg"225 226 227class Error(Exception):228    """229    Base exception for all the errors psycopg will raise.230 231    Exception that is the base class of all other error exceptions. You can232    use this to catch all errors with one single `!except` statement.233 234    This exception is guaranteed to be picklable.235    """236 237    __module__ = "psycopg"238 239    sqlstate: Optional[str] = None240 241    def __init__(242        self,243        *args: Sequence[Any],244        info: ErrorInfo = None,245        encoding: str = "utf-8",246        pgconn: Optional[PGconn] = None,247    ):248        super().__init__(*args)249        self._info = info250        self._encoding = encoding251        self._pgconn = pgconn252 253        # Handle sqlstate codes for which we don't have a class.254        if not self.sqlstate and info:255            self.sqlstate = self.diag.sqlstate256 257    @property258    def pgconn(self) -> Optional[PGconn]:259        """The connection object, if the error was raised from a connection attempt.260 261        :rtype: Optional[psycopg.pq.PGconn]262        """263        return self._pgconn if self._pgconn else None264 265    @property266    def pgresult(self) -> Optional[PGresult]:267        """The result object, if the exception was raised after a failed query.268 269        :rtype: Optional[psycopg.pq.PGresult]270        """271        return self._info if _is_pgresult(self._info) else None272 273    @property274    def diag(self) -> "Diagnostic":275        """276        A `Diagnostic` object to inspect details of the errors from the database.277        """278        return Diagnostic(self._info, encoding=self._encoding)279 280    def __reduce__(self) -> Union[str, Tuple[Any, ...]]:281        res = super().__reduce__()282        if isinstance(res, tuple) and len(res) >= 3:283            # To make the exception picklable284            res[2]["_info"] = _info_to_dict(self._info)285            res[2]["_pgconn"] = None286 287        return res288 289 290class InterfaceError(Error):291    """292    An error related to the database interface rather than the database itself.293    """294 295    __module__ = "psycopg"296 297 298class DatabaseError(Error):299    """300    Exception raised for errors that are related to the database.301    """302 303    __module__ = "psycopg"304 305    def __init_subclass__(cls, code: Optional[str] = None, name: Optional[str] = None):306        if code:307            _sqlcodes[code] = cls308            cls.sqlstate = code309        if name:310            _sqlcodes[name] = cls311 312 313class DataError(DatabaseError):314    """315    An error caused by problems with the processed data.316 317    Examples may be division by zero, numeric value out of range, etc.318    """319 320    __module__ = "psycopg"321 322 323class OperationalError(DatabaseError):324    """325    An error related to the database's operation.326 327    These errors are not necessarily under the control of the programmer, e.g.328    an unexpected disconnect occurs, the data source name is not found, a329    transaction could not be processed, a memory allocation error occurred330    during processing, etc.331    """332 333    __module__ = "psycopg"334 335 336class IntegrityError(DatabaseError):337    """338    An error caused when the relational integrity of the database is affected.339 340    An example may be a foreign key check failed.341    """342 343    __module__ = "psycopg"344 345 346class InternalError(DatabaseError):347    """348    An error generated when the database encounters an internal error,349 350    Examples could be the cursor is not valid anymore, the transaction is out351    of sync, etc.352    """353 354    __module__ = "psycopg"355 356 357class ProgrammingError(DatabaseError):358    """359    Exception raised for programming errors360 361    Examples may be table not found or already exists, syntax error in the SQL362    statement, wrong number of parameters specified, etc.363    """364 365    __module__ = "psycopg"366 367 368class NotSupportedError(DatabaseError):369    """370    A method or database API was used which is not supported by the database.371    """372 373    __module__ = "psycopg"374 375 376class ConnectionTimeout(OperationalError):377    """378    Exception raised on timeout of the `~psycopg.Connection.connect()` method.379 380    The error is raised if the ``connect_timeout`` is specified and a381    connection is not obtained in useful time.382 383    Subclass of `~psycopg.OperationalError`.384    """385 386 387class PipelineAborted(OperationalError):388    """389    Raised when a operation fails because the current pipeline is in aborted state.390 391    Subclass of `~psycopg.OperationalError`.392    """393 394 395class Diagnostic:396    """Details from a database error report."""397 398    def __init__(self, info: ErrorInfo, encoding: str = "utf-8"):399        self._info = info400        self._encoding = encoding401 402    @property403    def severity(self) -> Optional[str]:404        return self._error_message(DiagnosticField.SEVERITY)405 406    @property407    def severity_nonlocalized(self) -> Optional[str]:408        return self._error_message(DiagnosticField.SEVERITY_NONLOCALIZED)409 410    @property411    def sqlstate(self) -> Optional[str]:412        return self._error_message(DiagnosticField.SQLSTATE)413 414    @property415    def message_primary(self) -> Optional[str]:416        return self._error_message(DiagnosticField.MESSAGE_PRIMARY)417 418    @property419    def message_detail(self) -> Optional[str]:420        return self._error_message(DiagnosticField.MESSAGE_DETAIL)421 422    @property423    def message_hint(self) -> Optional[str]:424        return self._error_message(DiagnosticField.MESSAGE_HINT)425 426    @property427    def statement_position(self) -> Optional[str]:428        return self._error_message(DiagnosticField.STATEMENT_POSITION)429 430    @property431    def internal_position(self) -> Optional[str]:432        return self._error_message(DiagnosticField.INTERNAL_POSITION)433 434    @property435    def internal_query(self) -> Optional[str]:436        return self._error_message(DiagnosticField.INTERNAL_QUERY)437 438    @property439    def context(self) -> Optional[str]:440        return self._error_message(DiagnosticField.CONTEXT)441 442    @property443    def schema_name(self) -> Optional[str]:444        return self._error_message(DiagnosticField.SCHEMA_NAME)445 446    @property447    def table_name(self) -> Optional[str]:448        return self._error_message(DiagnosticField.TABLE_NAME)449 450    @property451    def column_name(self) -> Optional[str]:452        return self._error_message(DiagnosticField.COLUMN_NAME)453 454    @property455    def datatype_name(self) -> Optional[str]:456        return self._error_message(DiagnosticField.DATATYPE_NAME)457 458    @property459    def constraint_name(self) -> Optional[str]:460        return self._error_message(DiagnosticField.CONSTRAINT_NAME)461 462    @property463    def source_file(self) -> Optional[str]:464        return self._error_message(DiagnosticField.SOURCE_FILE)465 466    @property467    def source_line(self) -> Optional[str]:468        return self._error_message(DiagnosticField.SOURCE_LINE)469 470    @property471    def source_function(self) -> Optional[str]:472        return self._error_message(DiagnosticField.SOURCE_FUNCTION)473 474    def _error_message(self, field: DiagnosticField) -> Optional[str]:475        if self._info:476            if isinstance(self._info, dict):477                val = self._info.get(field)478            else:479                val = self._info.error_field(field)480 481            if val is not None:482                return val.decode(self._encoding, "replace")483 484        return None485 486    def __reduce__(self) -> Union[str, Tuple[Any, ...]]:487        res = super().__reduce__()488        if isinstance(res, tuple) and len(res) >= 3:489            res[2]["_info"] = _info_to_dict(self._info)490 491        return res492 493 494def _info_to_dict(info: ErrorInfo) -> ErrorInfo:495    """496    Convert a PGresult to a dictionary to make the info picklable.497    """498    # PGresult is a protocol, can't use isinstance499    if _is_pgresult(info):500        return {v: info.error_field(v) for v in DiagnosticField}501    else:502        return info503 504 505def lookup(sqlstate: str) -> Type[Error]:506    """Lookup an error code or `constant name`__ and return its exception class.507 508    Raise `!KeyError` if the code is not found.509 510    .. __: https://www.postgresql.org/docs/current/errcodes-appendix.html511            #ERRCODES-TABLE512    """513    return _sqlcodes[sqlstate.upper()]514 515 516def error_from_result(result: PGresult, encoding: str = "utf-8") -> Error:517    from psycopg import pq518 519    state = result.error_field(DiagnosticField.SQLSTATE) or b""520    cls = _class_for_state(state.decode("ascii"))521    return cls(522        pq.error_message(result, encoding=encoding),523        info=result,524        encoding=encoding,525    )526 527 528def _is_pgresult(info: ErrorInfo) -> TypeGuard[PGresult]:529    """Return True if an ErrorInfo is a PGresult instance."""530    # PGresult is a protocol, can't use isinstance531    return hasattr(info, "error_field")532 533 534def _class_for_state(sqlstate: str) -> Type[Error]:535    try:536        return lookup(sqlstate)537    except KeyError:538        return get_base_exception(sqlstate)539 540 541def get_base_exception(sqlstate: str) -> Type[Error]:542    return (543        _base_exc_map.get(sqlstate[:2])544        or _base_exc_map.get(sqlstate[:1])545        or DatabaseError546    )547 548 549_base_exc_map = {550    "08": OperationalError,  # Connection Exception551    "0A": NotSupportedError,  # Feature Not Supported552    "20": ProgrammingError,  # Case Not Foud553    "21": ProgrammingError,  # Cardinality Violation554    "22": DataError,  # Data Exception555    "23": IntegrityError,  # Integrity Constraint Violation556    "24": InternalError,  # Invalid Cursor State557    "25": InternalError,  # Invalid Transaction State558    "26": ProgrammingError,  # Invalid SQL Statement Name *559    "27": OperationalError,  # Triggered Data Change Violation560    "28": OperationalError,  # Invalid Authorization Specification561    "2B": InternalError,  # Dependent Privilege Descriptors Still Exist562    "2D": InternalError,  # Invalid Transaction Termination563    "2F": OperationalError,  # SQL Routine Exception *564    "34": ProgrammingError,  # Invalid Cursor Name *565    "38": OperationalError,  # External Routine Exception *566    "39": OperationalError,  # External Routine Invocation Exception *567    "3B": OperationalError,  # Savepoint Exception *568    "3D": ProgrammingError,  # Invalid Catalog Name569    "3F": ProgrammingError,  # Invalid Schema Name570    "40": OperationalError,  # Transaction Rollback571    "42": ProgrammingError,  # Syntax Error or Access Rule Violation572    "44": ProgrammingError,  # WITH CHECK OPTION Violation573    "53": OperationalError,  # Insufficient Resources574    "54": OperationalError,  # Program Limit Exceeded575    "55": OperationalError,  # Object Not In Prerequisite State576    "57": OperationalError,  # Operator Intervention577    "58": OperationalError,  # System Error (errors external to PostgreSQL itself)578    "F": OperationalError,  # Configuration File Error579    "H": OperationalError,  # Foreign Data Wrapper Error (SQL/MED)580    "P": ProgrammingError,  # PL/pgSQL Error581    "X": InternalError,  # Internal Error582}583 584 585# Error classes generated by tools/update_errors.py586 587# fmt: off588# autogenerated: start589 590 591# Class 02 - No Data (this is also a warning class per the SQL standard)592 593class NoData(DatabaseError,594    code='02000', name='NO_DATA'):595    pass596 597class NoAdditionalDynamicResultSetsReturned(DatabaseError,598    code='02001', name='NO_ADDITIONAL_DYNAMIC_RESULT_SETS_RETURNED'):599    pass600 601 602# Class 03 - SQL Statement Not Yet Complete603 604class SqlStatementNotYetComplete(DatabaseError,605    code='03000', name='SQL_STATEMENT_NOT_YET_COMPLETE'):606    pass607 608 609# Class 08 - Connection Exception610 611class ConnectionException(OperationalError,612    code='08000', name='CONNECTION_EXCEPTION'):613    pass614 615class SqlclientUnableToEstablishSqlconnection(OperationalError,616    code='08001', name='SQLCLIENT_UNABLE_TO_ESTABLISH_SQLCONNECTION'):617    pass618 619class ConnectionDoesNotExist(OperationalError,620    code='08003', name='CONNECTION_DOES_NOT_EXIST'):621    pass622 623class SqlserverRejectedEstablishmentOfSqlconnection(OperationalError,624    code='08004', name='SQLSERVER_REJECTED_ESTABLISHMENT_OF_SQLCONNECTION'):625    pass626 627class ConnectionFailure(OperationalError,628    code='08006', name='CONNECTION_FAILURE'):629    pass630 631class TransactionResolutionUnknown(OperationalError,632    code='08007', name='TRANSACTION_RESOLUTION_UNKNOWN'):633    pass634 635class ProtocolViolation(OperationalError,636    code='08P01', name='PROTOCOL_VIOLATION'):637    pass638 639 640# Class 09 - Triggered Action Exception641 642class TriggeredActionException(DatabaseError,643    code='09000', name='TRIGGERED_ACTION_EXCEPTION'):644    pass645 646 647# Class 0A - Feature Not Supported648 649class FeatureNotSupported(NotSupportedError,650    code='0A000', name='FEATURE_NOT_SUPPORTED'):651    pass652 653 654# Class 0B - Invalid Transaction Initiation655 656class InvalidTransactionInitiation(DatabaseError,657    code='0B000', name='INVALID_TRANSACTION_INITIATION'):658    pass659 660 661# Class 0F - Locator Exception662 663class LocatorException(DatabaseError,664    code='0F000', name='LOCATOR_EXCEPTION'):665    pass666 667class InvalidLocatorSpecification(DatabaseError,668    code='0F001', name='INVALID_LOCATOR_SPECIFICATION'):669    pass670 671 672# Class 0L - Invalid Grantor673 674class InvalidGrantor(DatabaseError,675    code='0L000', name='INVALID_GRANTOR'):676    pass677 678class InvalidGrantOperation(DatabaseError,679    code='0LP01', name='INVALID_GRANT_OPERATION'):680    pass681 682 683# Class 0P - Invalid Role Specification684 685class InvalidRoleSpecification(DatabaseError,686    code='0P000', name='INVALID_ROLE_SPECIFICATION'):687    pass688 689 690# Class 0Z - Diagnostics Exception691 692class DiagnosticsException(DatabaseError,693    code='0Z000', name='DIAGNOSTICS_EXCEPTION'):694    pass695 696class StackedDiagnosticsAccessedWithoutActiveHandler(DatabaseError,697    code='0Z002', name='STACKED_DIAGNOSTICS_ACCESSED_WITHOUT_ACTIVE_HANDLER'):698    pass699 700 701# Class 20 - Case Not Found702 703class CaseNotFound(ProgrammingError,704    code='20000', name='CASE_NOT_FOUND'):705    pass706 707 708# Class 21 - Cardinality Violation709 710class CardinalityViolation(ProgrammingError,711    code='21000', name='CARDINALITY_VIOLATION'):712    pass713 714 715# Class 22 - Data Exception716 717class DataException(DataError,718    code='22000', name='DATA_EXCEPTION'):719    pass720 721class StringDataRightTruncation(DataError,722    code='22001', name='STRING_DATA_RIGHT_TRUNCATION'):723    pass724 725class NullValueNoIndicatorParameter(DataError,726    code='22002', name='NULL_VALUE_NO_INDICATOR_PARAMETER'):727    pass728 729class NumericValueOutOfRange(DataError,730    code='22003', name='NUMERIC_VALUE_OUT_OF_RANGE'):731    pass732 733class NullValueNotAllowed(DataError,734    code='22004', name='NULL_VALUE_NOT_ALLOWED'):735    pass736 737class ErrorInAssignment(DataError,738    code='22005', name='ERROR_IN_ASSIGNMENT'):739    pass740 741class InvalidDatetimeFormat(DataError,742    code='22007', name='INVALID_DATETIME_FORMAT'):743    pass744 745class DatetimeFieldOverflow(DataError,746    code='22008', name='DATETIME_FIELD_OVERFLOW'):747    pass748 749class InvalidTimeZoneDisplacementValue(DataError,750    code='22009', name='INVALID_TIME_ZONE_DISPLACEMENT_VALUE'):751    pass752 753class EscapeCharacterConflict(DataError,754    code='2200B', name='ESCAPE_CHARACTER_CONFLICT'):755    pass756 757class InvalidUseOfEscapeCharacter(DataError,758    code='2200C', name='INVALID_USE_OF_ESCAPE_CHARACTER'):759    pass760 761class InvalidEscapeOctet(DataError,762    code='2200D', name='INVALID_ESCAPE_OCTET'):763    pass764 765class ZeroLengthCharacterString(DataError,766    code='2200F', name='ZERO_LENGTH_CHARACTER_STRING'):767    pass768 769class MostSpecificTypeMismatch(DataError,770    code='2200G', name='MOST_SPECIFIC_TYPE_MISMATCH'):771    pass772 773class SequenceGeneratorLimitExceeded(DataError,774    code='2200H', name='SEQUENCE_GENERATOR_LIMIT_EXCEEDED'):775    pass776 777class NotAnXmlDocument(DataError,778    code='2200L', name='NOT_AN_XML_DOCUMENT'):779    pass780 781class InvalidXmlDocument(DataError,782    code='2200M', name='INVALID_XML_DOCUMENT'):783    pass784 785class InvalidXmlContent(DataError,786    code='2200N', name='INVALID_XML_CONTENT'):787    pass788 789class InvalidXmlComment(DataError,790    code='2200S', name='INVALID_XML_COMMENT'):791    pass792 793class InvalidXmlProcessingInstruction(DataError,794    code='2200T', name='INVALID_XML_PROCESSING_INSTRUCTION'):795    pass796 797class InvalidIndicatorParameterValue(DataError,798    code='22010', name='INVALID_INDICATOR_PARAMETER_VALUE'):799    pass800 801class SubstringError(DataError,802    code='22011', name='SUBSTRING_ERROR'):803    pass804 805class DivisionByZero(DataError,806    code='22012', name='DIVISION_BY_ZERO'):807    pass808 809class InvalidPrecedingOrFollowingSize(DataError,810    code='22013', name='INVALID_PRECEDING_OR_FOLLOWING_SIZE'):811    pass812 813class InvalidArgumentForNtileFunction(DataError,814    code='22014', name='INVALID_ARGUMENT_FOR_NTILE_FUNCTION'):815    pass816 817class IntervalFieldOverflow(DataError,818    code='22015', name='INTERVAL_FIELD_OVERFLOW'):819    pass820 821class InvalidArgumentForNthValueFunction(DataError,822    code='22016', name='INVALID_ARGUMENT_FOR_NTH_VALUE_FUNCTION'):823    pass824 825class InvalidCharacterValueForCast(DataError,826    code='22018', name='INVALID_CHARACTER_VALUE_FOR_CAST'):827    pass828 829class InvalidEscapeCharacter(DataError,830    code='22019', name='INVALID_ESCAPE_CHARACTER'):831    pass832 833class InvalidRegularExpression(DataError,834    code='2201B', name='INVALID_REGULAR_EXPRESSION'):835    pass836 837class InvalidArgumentForLogarithm(DataError,838    code='2201E', name='INVALID_ARGUMENT_FOR_LOGARITHM'):839    pass840 841class InvalidArgumentForPowerFunction(DataError,842    code='2201F', name='INVALID_ARGUMENT_FOR_POWER_FUNCTION'):843    pass844 845class InvalidArgumentForWidthBucketFunction(DataError,846    code='2201G', name='INVALID_ARGUMENT_FOR_WIDTH_BUCKET_FUNCTION'):847    pass848 849class InvalidRowCountInLimitClause(DataError,850    code='2201W', name='INVALID_ROW_COUNT_IN_LIMIT_CLAUSE'):851    pass852 853class InvalidRowCountInResultOffsetClause(DataError,854    code='2201X', name='INVALID_ROW_COUNT_IN_RESULT_OFFSET_CLAUSE'):855    pass856 857class CharacterNotInRepertoire(DataError,858    code='22021', name='CHARACTER_NOT_IN_REPERTOIRE'):859    pass860 861class IndicatorOverflow(DataError,862    code='22022', name='INDICATOR_OVERFLOW'):863    pass864 865class InvalidParameterValue(DataError,866    code='22023', name='INVALID_PARAMETER_VALUE'):867    pass868 869class UnterminatedCString(DataError,870    code='22024', name='UNTERMINATED_C_STRING'):871    pass872 873class InvalidEscapeSequence(DataError,874    code='22025', name='INVALID_ESCAPE_SEQUENCE'):875    pass876 877class StringDataLengthMismatch(DataError,878    code='22026', name='STRING_DATA_LENGTH_MISMATCH'):879    pass880 881class TrimError(DataError,882    code='22027', name='TRIM_ERROR'):883    pass884 885class ArraySubscriptError(DataError,886    code='2202E', name='ARRAY_SUBSCRIPT_ERROR'):887    pass888 889class InvalidTablesampleRepeat(DataError,890    code='2202G', name='INVALID_TABLESAMPLE_REPEAT'):891    pass892 893class InvalidTablesampleArgument(DataError,894    code='2202H', name='INVALID_TABLESAMPLE_ARGUMENT'):895    pass896 897class DuplicateJsonObjectKeyValue(DataError,898    code='22030', name='DUPLICATE_JSON_OBJECT_KEY_VALUE'):899    pass900 901class InvalidArgumentForSqlJsonDatetimeFunction(DataError,902    code='22031', name='INVALID_ARGUMENT_FOR_SQL_JSON_DATETIME_FUNCTION'):903    pass904 905class InvalidJsonText(DataError,906    code='22032', name='INVALID_JSON_TEXT'):907    pass908 909class InvalidSqlJsonSubscript(DataError,910    code='22033', name='INVALID_SQL_JSON_SUBSCRIPT'):911    pass912 913class MoreThanOneSqlJsonItem(DataError,914    code='22034', name='MORE_THAN_ONE_SQL_JSON_ITEM'):915    pass916 917class NoSqlJsonItem(DataError,918    code='22035', name='NO_SQL_JSON_ITEM'):919    pass920 921class NonNumericSqlJsonItem(DataError,922    code='22036', name='NON_NUMERIC_SQL_JSON_ITEM'):923    pass924 925class NonUniqueKeysInAJsonObject(DataError,926    code='22037', name='NON_UNIQUE_KEYS_IN_A_JSON_OBJECT'):927    pass928 929class SingletonSqlJsonItemRequired(DataError,930    code='22038', name='SINGLETON_SQL_JSON_ITEM_REQUIRED'):931    pass932 933class SqlJsonArrayNotFound(DataError,934    code='22039', name='SQL_JSON_ARRAY_NOT_FOUND'):935    pass936 937class SqlJsonMemberNotFound(DataError,938    code='2203A', name='SQL_JSON_MEMBER_NOT_FOUND'):939    pass940 941class SqlJsonNumberNotFound(DataError,942    code='2203B', name='SQL_JSON_NUMBER_NOT_FOUND'):943    pass944 945class SqlJsonObjectNotFound(DataError,946    code='2203C', name='SQL_JSON_OBJECT_NOT_FOUND'):947    pass948 949class TooManyJsonArrayElements(DataError,950    code='2203D', name='TOO_MANY_JSON_ARRAY_ELEMENTS'):951    pass952 953class TooManyJsonObjectMembers(DataError,954    code='2203E', name='TOO_MANY_JSON_OBJECT_MEMBERS'):955    pass956 957class SqlJsonScalarRequired(DataError,958    code='2203F', name='SQL_JSON_SCALAR_REQUIRED'):959    pass960 961class SqlJsonItemCannotBeCastToTargetType(DataError,962    code='2203G', name='SQL_JSON_ITEM_CANNOT_BE_CAST_TO_TARGET_TYPE'):963    pass964 965class FloatingPointException(DataError,966    code='22P01', name='FLOATING_POINT_EXCEPTION'):967    pass968 969class InvalidTextRepresentation(DataError,970    code='22P02', name='INVALID_TEXT_REPRESENTATION'):971    pass972 973class InvalidBinaryRepresentation(DataError,974    code='22P03', name='INVALID_BINARY_REPRESENTATION'):975    pass976 977class BadCopyFileFormat(DataError,978    code='22P04', name='BAD_COPY_FILE_FORMAT'):979    pass980 981class UntranslatableCharacter(DataError,982    code='22P05', name='UNTRANSLATABLE_CHARACTER'):983    pass984 985class NonstandardUseOfEscapeCharacter(DataError,986    code='22P06', name='NONSTANDARD_USE_OF_ESCAPE_CHARACTER'):987    pass988 989 990# Class 23 - Integrity Constraint Violation991 992class IntegrityConstraintViolation(IntegrityError,993    code='23000', name='INTEGRITY_CONSTRAINT_VIOLATION'):994    pass995 996class RestrictViolation(IntegrityError,997    code='23001', name='RESTRICT_VIOLATION'):998    pass999 1000class NotNullViolation(IntegrityError,1001    code='23502', name='NOT_NULL_VIOLATION'):1002    pass1003 1004class ForeignKeyViolation(IntegrityError,1005    code='23503', name='FOREIGN_KEY_VIOLATION'):1006    pass1007 1008class UniqueViolation(IntegrityError,1009    code='23505', name='UNIQUE_VIOLATION'):1010    pass1011 1012class CheckViolation(IntegrityError,1013    code='23514', name='CHECK_VIOLATION'):1014    pass1015 1016class ExclusionViolation(IntegrityError,1017    code='23P01', name='EXCLUSION_VIOLATION'):1018    pass1019 1020 1021# Class 24 - Invalid Cursor State1022 1023class InvalidCursorState(InternalError,1024    code='24000', name='INVALID_CURSOR_STATE'):1025    pass1026 1027 1028# Class 25 - Invalid Transaction State1029 1030class InvalidTransactionState(InternalError,1031    code='25000', name='INVALID_TRANSACTION_STATE'):1032    pass1033 1034class ActiveSqlTransaction(InternalError,1035    code='25001', name='ACTIVE_SQL_TRANSACTION'):1036    pass1037 1038class BranchTransactionAlreadyActive(InternalError,1039    code='25002', name='BRANCH_TRANSACTION_ALREADY_ACTIVE'):1040    pass1041 1042class InappropriateAccessModeForBranchTransaction(InternalError,1043    code='25003', name='INAPPROPRIATE_ACCESS_MODE_FOR_BRANCH_TRANSACTION'):1044    pass1045 1046class InappropriateIsolationLevelForBranchTransaction(InternalError,1047    code='25004', name='INAPPROPRIATE_ISOLATION_LEVEL_FOR_BRANCH_TRANSACTION'):1048    pass1049 1050class NoActiveSqlTransactionForBranchTransaction(InternalError,1051    code='25005', name='NO_ACTIVE_SQL_TRANSACTION_FOR_BRANCH_TRANSACTION'):1052    pass1053 1054class ReadOnlySqlTransaction(InternalError,1055    code='25006', name='READ_ONLY_SQL_TRANSACTION'):1056    pass1057 1058class SchemaAndDataStatementMixingNotSupported(InternalError,1059    code='25007', name='SCHEMA_AND_DATA_STATEMENT_MIXING_NOT_SUPPORTED'):1060    pass1061 1062class HeldCursorRequiresSameIsolationLevel(InternalError,1063    code='25008', name='HELD_CURSOR_REQUIRES_SAME_ISOLATION_LEVEL'):1064    pass1065 1066class NoActiveSqlTransaction(InternalError,1067    code='25P01', name='NO_ACTIVE_SQL_TRANSACTION'):1068    pass1069 1070class InFailedSqlTransaction(InternalError,1071    code='25P02', name='IN_FAILED_SQL_TRANSACTION'):1072    pass1073 1074class IdleInTransactionSessionTimeout(InternalError,1075    code='25P03', name='IDLE_IN_TRANSACTION_SESSION_TIMEOUT'):1076    pass1077 1078 1079# Class 26 - Invalid SQL Statement Name1080 1081class InvalidSqlStatementName(ProgrammingError,1082    code='26000', name='INVALID_SQL_STATEMENT_NAME'):1083    pass1084 1085 1086# Class 27 - Triggered Data Change Violation1087 1088class TriggeredDataChangeViolation(OperationalError,1089    code='27000', name='TRIGGERED_DATA_CHANGE_VIOLATION'):1090    pass1091 1092 1093# Class 28 - Invalid Authorization Specification1094 1095class InvalidAuthorizationSpecification(OperationalError,1096    code='28000', name='INVALID_AUTHORIZATION_SPECIFICATION'):1097    pass1098 1099class InvalidPassword(OperationalError,1100    code='28P01', name='INVALID_PASSWORD'):1101    pass1102 1103 1104# Class 2B - Dependent Privilege Descriptors Still Exist1105 1106class DependentPrivilegeDescriptorsStillExist(InternalError,1107    code='2B000', name='DEPENDENT_PRIVILEGE_DESCRIPTORS_STILL_EXIST'):1108    pass1109 1110class DependentObjectsStillExist(InternalError,1111    code='2BP01', name='DEPENDENT_OBJECTS_STILL_EXIST'):1112    pass1113 1114 1115# Class 2D - Invalid Transaction Termination1116 1117class InvalidTransactionTermination(InternalError,1118    code='2D000', name='INVALID_TRANSACTION_TERMINATION'):1119    pass1120 1121 1122# Class 2F - SQL Routine Exception1123 1124class SqlRoutineException(OperationalError,1125    code='2F000', name='SQL_ROUTINE_EXCEPTION'):1126    pass1127 1128class ModifyingSqlDataNotPermitted(OperationalError,1129    code='2F002', name='MODIFYING_SQL_DATA_NOT_PERMITTED'):1130    pass1131 1132class ProhibitedSqlStatementAttempted(OperationalError,1133    code='2F003', name='PROHIBITED_SQL_STATEMENT_ATTEMPTED'):1134    pass1135 1136class ReadingSqlDataNotPermitted(OperationalError,1137    code='2F004', name='READING_SQL_DATA_NOT_PERMITTED'):1138    pass1139 1140class FunctionExecutedNoReturnStatement(OperationalError,1141    code='2F005', name='FUNCTION_EXECUTED_NO_RETURN_STATEMENT'):1142    pass1143 1144 1145# Class 34 - Invalid Cursor Name1146 1147class InvalidCursorName(ProgrammingError,1148    code='34000', name='INVALID_CURSOR_NAME'):1149    pass1150 1151 1152# Class 38 - External Routine Exception1153 1154class ExternalRoutineException(OperationalError,1155    code='38000', name='EXTERNAL_ROUTINE_EXCEPTION'):1156    pass1157 1158class ContainingSqlNotPermitted(OperationalError,1159    code='38001', name='CONTAINING_SQL_NOT_PERMITTED'):1160    pass1161 1162class ModifyingSqlDataNotPermittedExt(OperationalError,1163    code='38002', name='MODIFYING_SQL_DATA_NOT_PERMITTED'):1164    pass1165 1166class ProhibitedSqlStatementAttemptedExt(OperationalError,1167    code='38003', name='PROHIBITED_SQL_STATEMENT_ATTEMPTED'):1168    pass1169 1170class ReadingSqlDataNotPermittedExt(OperationalError,1171    code='38004', name='READING_SQL_DATA_NOT_PERMITTED'):1172    pass1173 1174 1175# Class 39 - External Routine Invocation Exception1176 1177class ExternalRoutineInvocationException(OperationalError,1178    code='39000', name='EXTERNAL_ROUTINE_INVOCATION_EXCEPTION'):1179    pass1180 1181class InvalidSqlstateReturned(OperationalError,1182    code='39001', name='INVALID_SQLSTATE_RETURNED'):1183    pass1184 1185class NullValueNotAllowedExt(OperationalError,1186    code='39004', name='NULL_VALUE_NOT_ALLOWED'):1187    pass1188 1189class TriggerProtocolViolated(OperationalError,1190    code='39P01', name='TRIGGER_PROTOCOL_VIOLATED'):1191    pass1192 1193class SrfProtocolViolated(OperationalError,1194    code='39P02', name='SRF_PROTOCOL_VIOLATED'):1195    pass1196 1197class EventTriggerProtocolViolated(OperationalError,1198    code='39P03', name='EVENT_TRIGGER_PROTOCOL_VIOLATED'):1199    pass1200 

Showing the first 1,200 of 1728 lines. Download the file for the rest.

codekingpro/portable-devtools · Team Ai