]> git.ipfire.org Git - thirdparty/psycopg.git/commitdiff
fix(copy): fix dumping by oid in text mode
authorDaniele Varrazzo <daniele.varrazzo@gmail.com>
Fri, 13 Jan 2023 01:30:05 +0000 (01:30 +0000)
committerDaniele Varrazzo <daniele.varrazzo@gmail.com>
Sat, 5 Aug 2023 14:21:30 +0000 (15:21 +0100)
It is less useful than in binary mode, but it was being pretty much
ignored.

psycopg/psycopg/copy.py

index df2975f6e1498b3163c2701fefb572626e335868..ec022de0bbc1e211cac37ea4af49e723857217ba 100644 (file)
@@ -811,13 +811,9 @@ def _format_row_text(
         out += b"\n"
         return out
 
-    for item in row:
-        if item is not None:
-            dumper = tx.get_dumper(item, PY_TEXT)
-            b = dumper.dump(item)
-            out += _dump_re.sub(_dump_sub, b)
-        else:
-            out += rb"\N"
+    adapted = tx.dump_sequence(row, [PY_TEXT] * len(row))
+    for b in adapted:
+        out += _dump_re.sub(_dump_sub, b) if b is not None else rb"\N"
         out += b"\t"
 
     out[-1:] = b"\n"