def _rollback(cls, connection: Connection) -> None: """Roll back the given connection.""" if dbt.flags.STRICT_MODE: if not isinstance(connection, Connection): raise dbt.exceptions.CompilerException( f'In _rollback, got {connection} - not a Connection!') if connection.transaction_open is False: raise dbt.exceptions.InternalException( 'Tried to rollback transaction on connection "{}", but ' 'it does not have one open!'.format(connection.name)) logger.debug('On {}: ROLLBACK'.format(connection.name)) cls._rollback_handle(connection) connection.transaction_open = False
def close(cls, connection: Connection) -> Connection: if dbt.flags.STRICT_MODE: if not isinstance(connection, Connection): raise dbt.exceptions.CompilerException( f'In close, got {connection} - not a Connection!') # if the connection is in closed or init, there's nothing to do if connection.state in {ConnectionState.CLOSED, ConnectionState.INIT}: return connection if connection.transaction_open and connection.handle: cls._rollback_handle(connection) connection.transaction_open = False cls._close_handle(connection) connection.state = ConnectionState.CLOSED return connection