]> git.ipfire.org Git - thirdparty/psycopg.git/commitdiff
Dropped unknown loader, using text/bytea ones
authorDaniele Varrazzo <daniele.varrazzo@gmail.com>
Sun, 10 May 2020 16:23:55 +0000 (04:23 +1200)
committerDaniele Varrazzo <daniele.varrazzo@gmail.com>
Sun, 10 May 2020 16:23:55 +0000 (04:23 +1200)
psycopg3/adapt.py
psycopg3/adapt.pyx
psycopg3/types/text.pxd
psycopg3/types/text.py
psycopg3/types/text.pyx

index 2af9a6263f85052ec6ae2566545335f53bec2687..836a7d79c3caa547ab29139910fed28b22932614 100644 (file)
@@ -13,7 +13,6 @@ from . import pq
 from .cursor import BaseCursor
 from .types.oids import builtins, INVALID_OID
 from .connection import BaseConnection
-from .utils.typing import DecodeFunc
 
 TEXT_OID = builtins["text"].oid
 
@@ -371,29 +370,6 @@ class Transformer:
         return Loader.globals[INVALID_OID, format]
 
 
-@Loader.text(INVALID_OID)
-class UnknownLoader(Loader):
-    """
-    Fallback object to convert unknown types to Python
-    """
-
-    def __init__(self, oid: int, context: AdaptContext):
-        super().__init__(oid, context)
-        self.decode: DecodeFunc
-        if self.connection is not None:
-            self.decode = self.connection.codec.decode
-        else:
-            self.decode = codecs.lookup("utf8").decode
-
-    def load(self, data: bytes) -> str:
-        return self.decode(data)[0]
-
-
-@Loader.binary(INVALID_OID)
-def load_unknown_binary(data: bytes) -> bytes:
-    return data
-
-
 def _connection_from_context(
     context: AdaptContext,
 ) -> Optional[BaseConnection]:
index c712553474607b396cf404c9e723c1abb92d954e..4a28a5d8bbc10c49f702294716b44749e33fdca0 100644 (file)
@@ -36,7 +36,6 @@ cdef void register_c_loader(
 cdef void fill_row_loader(RowLoader *loader, object pyloader):
     loader.pyloader = <PyObject *>pyloader
 
-    print(pyloader)
     cdef CLoader cloader
     cloader = cloaders.get(pyloader)
     if cloader is not None:
@@ -74,8 +73,6 @@ cdef void register_text_c_loaders():
     from psycopg3 import adapt
     from psycopg3.types import text
     register_c_loader(text.StringLoader.load, load_text, get_context_text)
-    register_c_loader(text.NameLoader.load, load_text, get_context_text)
+    register_c_loader(text.UnknownLoader.load, load_text, get_context_text)
     register_c_loader(text.load_bytea_text, load_bytea_text)
     register_c_loader(text.load_bytea_binary, load_bytea_binary)
-    register_c_loader(adapt.UnknownLoader.load, load_unknown_text)
-    register_c_loader(adapt.load_unknown_binary, load_unknown_binary)
index 81b0425ee8cf5a5e6409f919908b2a5f453d675e..b2693bc64023bfbbc14536917bc6338853cc97e0 100644 (file)
@@ -1,4 +1,2 @@
 cdef object load_text(const char *data, size_t length, void *context)
 cdef void *get_context_text(object loader)
-cdef object load_unknown_text(const char *data, size_t length, void *context)
-cdef object load_unknown_binary(const char *data, size_t length, void *context)
index f36ae9e750ba01598fdaaf33ccd52b705fd316ee..8600536c45681f7507fcf931dbd8cda3f32c944a 100644 (file)
@@ -10,7 +10,7 @@ from typing import Optional, Tuple, Union
 from ..adapt import Dumper, Loader, AdaptContext
 from ..utils.typing import EncodeFunc, DecodeFunc
 from ..pq import Escaping
-from .oids import builtins
+from .oids import builtins, INVALID_OID
 
 TEXT_OID = builtins["text"].oid
 BYTEA_OID = builtins["bytea"].oid
@@ -39,6 +39,7 @@ class StringDumper(Dumper):
 @Loader.binary(builtins["text"].oid)
 @Loader.text(builtins["varchar"].oid)
 @Loader.binary(builtins["varchar"].oid)
+@Loader.text(INVALID_OID)
 class StringLoader(Loader):
 
     decode: Optional[DecodeFunc]
@@ -66,7 +67,7 @@ class StringLoader(Loader):
 @Loader.binary(builtins["name"].oid)
 @Loader.text(builtins["bpchar"].oid)
 @Loader.binary(builtins["bpchar"].oid)
-class NameLoader(Loader):
+class UnknownLoader(Loader):
     def __init__(self, oid: int, context: AdaptContext):
         super().__init__(oid, context)
 
@@ -103,5 +104,6 @@ def load_bytea_text(data: bytes) -> bytes:
 
 
 @Loader.binary(builtins["bytea"].oid)
+@Loader.binary(INVALID_OID)
 def load_bytea_binary(data: bytes) -> bytes:
     return data
index dc9b77c98c82a9f6ac22bcfd614fd629ab4e376e..1b73324e56abb405e950833b43cc5742f4b7659a 100644 (file)
@@ -37,12 +37,3 @@ cdef object load_bytea_text(const char *data, size_t length, void *context):
 
 cdef object load_bytea_binary(const char *data, size_t length, void *context):
     return data[:length]
-
-
-cdef object load_unknown_text(const char *data, size_t length, void *context):
-    # TODO: codec
-    return PyUnicode_DecodeUTF8(data, length, NULL)
-
-
-cdef object load_unknown_binary(const char *data, size_t length, void *context):
-    return PyBytes_FromStringAndSize(data, length)