From: Denis Laxalde Date: Tue, 24 Jan 2023 15:18:24 +0000 (+0100) Subject: refactor: set cursor result in _maybe_prepare_gen() X-Git-Tag: pool-3.2.0~125^2 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=refs%2Fpull%2F480%2Fhead;p=thirdparty%2Fpsycopg.git refactor: set cursor result in _maybe_prepare_gen() When not in pipeline mode, we can actually set the results on the cursor directly in this method instead of letting the caller handle this. --- diff --git a/psycopg/psycopg/cursor.py b/psycopg/psycopg/cursor.py index d65be6ae8..83460c01c 100644 --- a/psycopg/psycopg/cursor.py +++ b/psycopg/psycopg/cursor.py @@ -193,15 +193,9 @@ class BaseCursor(Generic[ConnectionType, Row]): """Generator implementing `Cursor.execute()`.""" yield from self._start_query(query) pgq = self._convert_query(query, params) - results = yield from self._maybe_prepare_gen( - pgq, prepare=prepare, binary=binary - ) + yield from self._maybe_prepare_gen(pgq, prepare=prepare, binary=binary) if self._conn._pipeline: yield from self._conn._pipeline._communicate_gen() - else: - assert results is not None - self._check_results(results) - self._set_results(results) self._last_query = query @@ -266,10 +260,7 @@ class BaseCursor(Generic[ConnectionType, Row]): else: pgq.dump(params) - results = yield from self._maybe_prepare_gen(pgq, prepare=True) - assert results is not None - self._check_results(results) - self._set_results(results) + yield from self._maybe_prepare_gen(pgq, prepare=True) self._last_query = query @@ -282,7 +273,7 @@ class BaseCursor(Generic[ConnectionType, Row]): *, prepare: Optional[bool] = None, binary: Optional[bool] = None, - ) -> PQGen[Optional[List["PGresult"]]]: + ) -> PQGen[None]: # Check if the query is prepared or needs preparing prep, name = self._get_prepared(pgq, prepare) if prep is Prepare.NO: @@ -309,7 +300,7 @@ class BaseCursor(Generic[ConnectionType, Row]): if key is not None: queued = (key, prep, name) self._conn._pipeline.result_queue.append((self, queued)) - return None + return # run the query results = yield from execute(self._pgconn) @@ -317,7 +308,8 @@ class BaseCursor(Generic[ConnectionType, Row]): if key is not None: self._conn._prepared.validate(key, prep, name, results) - return results + self._check_results(results) + self._set_results(results) def _get_prepared( self, pgq: PostgresQuery, prepare: Optional[bool] = None