]> git.ipfire.org Git - thirdparty/psycopg.git/commitdiff
perf(composite): drop an if and a tuple() call
authorDaniele Varrazzo <daniele.varrazzo@gmail.com>
Wed, 26 Mar 2025 18:56:32 +0000 (19:56 +0100)
committerDaniele Varrazzo <daniele.varrazzo@gmail.com>
Wed, 26 Mar 2025 20:19:42 +0000 (21:19 +0100)
psycopg/psycopg/types/composite.py

index a2bf8c1466e2c78cab53723c76a41c3096ef177e..1c0f747dae7750c0b3755eaa4884756428824234 100644 (file)
@@ -219,14 +219,16 @@ class RecordBinaryLoader(Loader):
         nfields = unpack_len(data, 0)[0]
         offset = 4
         oids = []
-        record = []
+        record: list[Buffer | None] = []
         for _ in range(nfields):
             oid, length = _unpack_oidlen(data, offset)
             offset += 8
-            record.append(data[offset : offset + length] if length != -1 else None)
             oids.append(oid)
             if length >= 0:
+                record.append(data[offset : offset + length])
                 offset += length
+            else:
+                record.append(None)
 
         key = tuple(oids)
         try:
@@ -235,7 +237,7 @@ class RecordBinaryLoader(Loader):
             tx = self._txs[key] = Transformer(self._ctx)
             tx.set_loader_types(oids, self.format)
 
-        return tx.load_sequence(tuple(record))
+        return tx.load_sequence(record)
 
 
 class CompositeLoader(RecordLoader):