]> git.ipfire.org Git - thirdparty/psycopg.git/commitdiff
Really update types on PostgresQuery.dump
authorDaniele Varrazzo <daniele.varrazzo@gmail.com>
Fri, 13 Nov 2020 20:05:30 +0000 (20:05 +0000)
committerDaniele Varrazzo <daniele.varrazzo@gmail.com>
Fri, 13 Nov 2020 20:05:30 +0000 (20:05 +0000)
Let's do what it says on the tin, before micro-optimising.

psycopg3/psycopg3/utils/queries.py

index a20273dbc9e79e3b26bae4bcb3cd59d71222b74e..2d8bf6f60319f92850b209447a4b4d2570ce6adc 100644 (file)
@@ -75,26 +75,18 @@ class PostgresQuery:
             params = _validate_and_reorder_params(
                 self._parts, vars, self._order
             )
-            self.params = []
             assert self.formats is not None
-
-            if self.types is None:
-                self.types = []
-                for i, param in enumerate(params):
-                    if param is not None:
-                        dumper = self._tx.get_dumper(param, self.formats[i])
-                        self.params.append(dumper.dump(param))
-                        self.types.append(dumper.oid)
-                    else:
-                        self.params.append(None)
-                        self.types.append(UNKNOWN_OID)
-            else:
-                for i, param in enumerate(params):
-                    if param is not None:
-                        dumper = self._tx.get_dumper(param, self.formats[i])
-                        self.params.append(dumper.dump(param))
-                    else:
-                        self.params.append(None)
+            ps = self.params = []
+            ts = self.types = []
+            for i in range(len(params)):
+                param = params[i]
+                if param is not None:
+                    dumper = self._tx.get_dumper(param, self.formats[i])
+                    ps.append(dumper.dump(param))
+                    ts.append(dumper.oid)
+                else:
+                    ps.append(None)
+                    ts.append(UNKNOWN_OID)
         else:
             self.params = self.types = None