]> git.ipfire.org Git - thirdparty/psycopg.git/commitdiff
refactor: restrict Query alias to use Composed or SQL instead of Composable
authorDaniele Varrazzo <daniele.varrazzo@gmail.com>
Mon, 27 Jun 2022 21:09:19 +0000 (22:09 +0100)
committerDaniele Varrazzo <daniele.varrazzo@gmail.com>
Sun, 3 Jul 2022 02:52:59 +0000 (03:52 +0100)
Other Composable subclasses (Identifier, Literal, Placeholder...) don't
make sense as a complete query.

psycopg/psycopg/abc.py
psycopg/psycopg/server_cursor.py

index e6ff7607ec6e6ece9847248a7bbe80c5e77e4248..0da76e4d08f4a2385ddd49664bc2045e11c08adc 100644 (file)
@@ -13,7 +13,7 @@ from ._enums import PyFormat as PyFormat
 from ._compat import Protocol, TypeAlias, LiteralString
 
 if TYPE_CHECKING:
-    from .sql import Composable
+    from . import sql
     from .rows import Row, RowMaker
     from .pq.abc import PGresult
     from .waiting import Wait, Ready
@@ -23,7 +23,7 @@ if TYPE_CHECKING:
 # An object implementing the buffer protocol
 Buffer: TypeAlias = Union[bytes, bytearray, memoryview]
 
-Query: TypeAlias = Union[LiteralString, bytes, "Composable"]
+Query: TypeAlias = Union[LiteralString, bytes, "sql.SQL", "sql.Composed"]
 Params: TypeAlias = Union[Sequence[Any], Mapping[str, Any]]
 ConnectionType = TypeVar("ConnectionType", bound="BaseConnection[Any]")
 PipelineCommand: TypeAlias = Callable[[], None]
index 564392639f8a4fe9aee17aeb48e0784fb163c875..0e77a6fdda9b82b567981b52fe5a119c3bd1acf3 100644 (file)
@@ -172,7 +172,7 @@ class ServerCursorMixin(BaseCursor[ConnectionType, Row]):
         )
         yield from self._conn._exec_command(query)
 
-    def _make_declare_statement(self, query: Query) -> sql.Composable:
+    def _make_declare_statement(self, query: Query) -> sql.Composed:
 
         if isinstance(query, bytes):
             query = query.decode(self._encoding)