diff --git a/asyncdb/drivers/pg.py b/asyncdb/drivers/pg.py index 97a5ee54..c05eac16 100644 --- a/asyncdb/drivers/pg.py +++ b/asyncdb/drivers/pg.py @@ -28,6 +28,9 @@ UndefinedColumnError, UndefinedTableError, UniqueViolationError, + ForeignKeyViolationError, + NotNullViolationError, + QueryCanceledError ) from asyncpg.pgproto import pgproto from ..exceptions import ( @@ -414,10 +417,25 @@ async def execute(self, sentence, *args): """ try: return await self._pool.execute(sentence, *args) + except ( + QueryCanceledError, + StatementError, + UniqueViolationError, + ForeignKeyViolationError, + NotNullViolationError + ) as err: + self._logger.warning( + f"AsyncPg: {err}" + ) + raise except InterfaceError as err: - raise ProviderError(f"Execute Interface Error: {err}") from err + raise ProviderError( + f"Execute Interface Error: {err}" + ) from err except Exception as err: - raise ProviderError(f"Execute Error: {err}") from err + raise ProviderError( + f"Execute Error: {err}" + ) from err class pgCursor(SQLCursor): @@ -795,8 +813,24 @@ async def execute(self, sentence: Any, *args, **kwargs) -> Optional[Any]: await self.valid_operation(sentence) try: self._result = await self._connection.execute(sentence, *args, **kwargs) - except (InvalidSQLStatementNameError, PostgresSyntaxError, UndefinedColumnError, UndefinedTableError) as err: - error = f"Sentence Error: {err}" + except ( + QueryCanceledError, + StatementError, + UniqueViolationError, + ForeignKeyViolationError, + NotNullViolationError + ) as err: + self._logger.warning( + f"AsyncPg: {err}" + ) + raise + except ( + InvalidSQLStatementNameError, + PostgresSyntaxError, + UndefinedColumnError, + UndefinedTableError + ) as err: + error = err except DuplicateTableError as err: error = f"Duplicated table: {err}" except PostgresError as err: @@ -813,10 +847,26 @@ async def execute_many(self, sentence: str, *args): await self.valid_operation(sentence) try: self._result = await self._connection.executemany(sentence, *args) + except ( + QueryCanceledError, + StatementError, + UniqueViolationError, + ForeignKeyViolationError, + NotNullViolationError + ) as err: + self._logger.warning( + f"AsyncPg: {err}" + ) + raise except InterfaceWarning as err: error = f"Interface Warning: {err}" - except (InvalidSQLStatementNameError, PostgresSyntaxError, UndefinedColumnError, UndefinedTableError) as err: - error = f"Sentence Error: {err}" + except ( + InvalidSQLStatementNameError, + PostgresSyntaxError, + UndefinedColumnError, + UndefinedTableError + ) as err: + error = err except DuplicateTableError as err: error = f"Duplicated table: {err}" except PostgresError as err: diff --git a/asyncdb/version.py b/asyncdb/version.py index 80cf7b19..786a3761 100644 --- a/asyncdb/version.py +++ b/asyncdb/version.py @@ -3,7 +3,7 @@ __title__ = "asyncdb" __description__ = "Library for Asynchronous data source connections \ Collection of asyncio drivers." -__version__ = "2.9.3" +__version__ = "2.9.4" __author__ = "Jesus Lara" __author_email__ = "jesuslarag@gmail.com" __license__ = "BSD"