]> granicus.if.org Git - postgresql/commitdiff
PL/Python: Simplify PLyLong_FromInt64
authorPeter Eisentraut <peter_e@gmx.net>
Fri, 19 Jan 2018 22:22:38 +0000 (17:22 -0500)
committerPeter Eisentraut <peter_e@gmx.net>
Fri, 19 Jan 2018 22:22:38 +0000 (17:22 -0500)
We don't actually need two code paths, one for 32 bits and one for 64
bits.  Since the existing code already assumed that "long long" is
available, we can just use PyLong_FromLongLong() for 64 bits as well.
In Python 2.5 and later, PyLong_FromLong() and PyLong_FromLongLong() use
the same code, so there will be no difference for 64-bit platforms.  In
Python 2.4, the code is different, but performance testing showed no
noticeable difference in PL/Python, and that Python version is ancient
anyway.

Discussion: https://www.postgresql.org/message-id/0a02203c-e157-55b2-464e-6087066a1849@2ndquadrant.com

src/pl/plpython/plpy_typeio.c

index c48e8fd5f3b67ede264da76c609d6cee6c7eae5d..6c6b16f4d75484f5c650193f5e22d083f59dcb02 100644 (file)
@@ -618,11 +618,7 @@ PLyInt_FromInt32(PLyDatumToOb *arg, Datum d)
 static PyObject *
 PLyLong_FromInt64(PLyDatumToOb *arg, Datum d)
 {
-       /* on 32 bit platforms "long" may be too small */
-       if (sizeof(int64) > sizeof(long))
-               return PyLong_FromLongLong(DatumGetInt64(d));
-       else
-               return PyLong_FromLong(DatumGetInt64(d));
+       return PyLong_FromLongLong(DatumGetInt64(d));
 }
 
 static PyObject *