]> git.ipfire.org Git - thirdparty/psycopg.git/commitdiff
Fixed tiny diffreences in behaviour between sync and async code
authorDaniele Varrazzo <daniele.varrazzo@gmail.com>
Mon, 23 Nov 2020 15:11:44 +0000 (15:11 +0000)
committerDaniele Varrazzo <daniele.varrazzo@gmail.com>
Mon, 23 Nov 2020 15:17:08 +0000 (15:17 +0000)
psycopg3/psycopg3/connection.py
psycopg3/psycopg3/cursor.py

index df6f264ca28d8cdbcf03b1ca7ec9fa5a26111cf9..2d822fb731706ea38041506762f5b4c5d841f37d 100644 (file)
@@ -328,7 +328,6 @@ class Connection(BaseConnection):
         elif isinstance(command, Composable):
             command = command.as_string(self).encode(self.client_encoding)
 
-        logger.debug(f"{self}: {command!r}")
         self.pgconn.send_query(command)
         results = self.wait(execute(self.pgconn))
         if results[-1].status != ExecStatus.COMMAND_OK:
@@ -455,26 +454,26 @@ class AsyncConnection(BaseConnection):
 
     async def commit(self) -> None:
         async with self.lock:
-            if self.pgconn.transaction_status == TransactionStatus.IDLE:
-                return
             if self._savepoints:
                 raise e.ProgrammingError(
                     "Explicit commit() forbidden within a Transaction "
                     "context. (Transaction will be automatically committed "
                     "on successful exit from context.)"
                 )
+            if self.pgconn.transaction_status == TransactionStatus.IDLE:
+                return
             await self._exec_command(b"commit")
 
     async def rollback(self) -> None:
         async with self.lock:
-            if self.pgconn.transaction_status == TransactionStatus.IDLE:
-                return
             if self._savepoints:
                 raise e.ProgrammingError(
                     "Explicit rollback() forbidden within a Transaction "
                     "context. (Either raise Rollback() or allow "
                     "an exception to propagate out of the context.)"
                 )
+            if self.pgconn.transaction_status == TransactionStatus.IDLE:
+                return
             await self._exec_command(b"rollback")
 
     async def _exec_command(self, command: Query) -> None:
@@ -521,7 +520,7 @@ class AsyncConnection(BaseConnection):
         async with self.lock:
             self.pgconn.send_query_params(
                 b"select set_config('client_encoding', $1, false)",
-                [name.encode("utf-8")],
+                [encodings.py2pg(name)],
             )
             gen = execute(self.pgconn)
             (result,) = await self.wait(gen)
index 8cf5b68878afcc9241cbe53089004f426723e9fe..c35d71d14a48feed1e6052c3c468f72245618ef0 100644 (file)
@@ -485,9 +485,9 @@ class Cursor(BaseCursor["Connection"]):
         if not size:
             size = self.arraysize
 
-        rv: List[Sequence[Any]] = []
         pos = self._pos
         load = self._transformer.load_row
+        rv: List[Sequence[Any]] = []
 
         for _ in range(size):
             row = load(pos)
@@ -610,7 +610,7 @@ class AsyncCursor(BaseCursor["AsyncConnection"]):
         load = self._transformer.load_row
         rv: List[Sequence[Any]] = []
 
-        for i in range(size):
+        for _ in range(size):
             row = load(pos)
             if row is None:
                 break