diff --git a/google/cloud/spanner_dbapi/connection.py b/google/cloud/spanner_dbapi/connection.py index 869586e363..af3afa7da1 100644 --- a/google/cloud/spanner_dbapi/connection.py +++ b/google/cloud/spanner_dbapi/connection.py @@ -38,9 +38,8 @@ def _raise_if_closed(self): raise InterfaceError("connection is already closed") def __handle_update_ddl(self, ddl_statements): - """ - Run the list of Data Definition Language (DDL) statements on the underlying - database. Each DDL statement MUST NOT contain a semicolon. + """Run the list of Data Definition Language (DDL) statements on the + underlying database. Each DDL statement MUST NOT contain a semicolon. Args: ddl_statements: a list of DDL statements, each without a semicolon. Returns: diff --git a/google/cloud/spanner_dbapi/exceptions.py b/google/cloud/spanner_dbapi/exceptions.py index a4e973b873..d285caad8f 100644 --- a/google/cloud/spanner_dbapi/exceptions.py +++ b/google/cloud/spanner_dbapi/exceptions.py @@ -4,42 +4,82 @@ # license that can be found in the LICENSE file or at # https://developers.google.com/open-source/licenses/bsd +"""Spanner DB API exceptions listed in PEP-249.""" + class Warning(Exception): + """Important DB API warning.""" + pass class Error(Exception): + """The base class for all the DB API exceptions. + + Does not include :class:`Warning`. + """ + pass class InterfaceError(Error): + """Error related to the database interface + rather than the database itself. + """ + pass class DatabaseError(Error): + """Error related to the database.""" + pass class DataError(DatabaseError): + """Error due to problems with the processed data like + division by zero, numeric value out of range, etc. + """ + pass class OperationalError(DatabaseError): + """Error related to the database's operation, e.g. an unexpected + disconnect, the data source name is not found, a transaction could not + be processed, a memory allocation error, etc. + """ + pass class IntegrityError(DatabaseError): + """Error for cases of relational integrity of the database + is affected, e.g. a foreign key check fails. + """ + pass class InternalError(DatabaseError): + """Internal database error, e.g. the cursor is not valid + anymore, the transaction is out of sync, etc. + """ + pass class ProgrammingError(DatabaseError): + """Programming error, e.g. table not found or already exists, syntax + error in the SQL statement, wrong number of parameters specified, etc. + """ + pass class NotSupportedError(DatabaseError): + """Error for case of a method or database API not + supported by the database was used. + """ + pass