]> git.ipfire.org Git - thirdparty/psycopg.git/commitdiff
fix: add C Float4 dumper
authorDaniele Varrazzo <daniele.varrazzo@gmail.com>
Thu, 8 Dec 2022 14:11:00 +0000 (14:11 +0000)
committerDaniele Varrazzo <daniele.varrazzo@gmail.com>
Sat, 10 Dec 2022 13:11:38 +0000 (13:11 +0000)
It would be used when looked up by oid. At the moment there is only a
Python version for it.

psycopg_c/psycopg_c/types/numeric.pyx

index ba1a0dbe9391268359a47a575cf6a6ff207855d0..893bdc2adab983dc8f328f447dd994932336f78f 100644 (file)
@@ -296,11 +296,9 @@ cdef class OidBinaryLoader(CLoader):
         return PyLong_FromUnsignedLong(endian.be32toh((<uint32_t *>data)[0]))
 
 
-@cython.final
-cdef class FloatDumper(CDumper):
+cdef class _FloatDumper(CDumper):
 
     format = PQ_TEXT
-    oid = oids.FLOAT8_OID
 
     cdef Py_ssize_t cdump(self, obj, bytearray rv, Py_ssize_t offset) except -1:
         cdef double d = PyFloat_AsDouble(obj)
@@ -327,6 +325,18 @@ cdef dict _special_float = {
 }
 
 
+@cython.final
+cdef class FloatDumper(_FloatDumper):
+
+    oid = oids.FLOAT8_OID
+
+
+@cython.final
+cdef class Float4Dumper(_FloatDumper):
+
+    oid = oids.FLOAT4_OID
+
+
 @cython.final
 cdef class FloatBinaryDumper(CDumper):