From cfd9c87a54b0d414a59a912710c6633313174e51 Mon Sep 17 00:00:00 2001 From: Heikki Linnakangas Date: Wed, 26 Oct 2016 14:44:55 +0300 Subject: [PATCH] Only treat Python Lists as array dimensions. Instead of treating all python sequence types as array dimensions, except for tuples and various kinds of strings, only treat Python lists as dimensions. The PyBytes_Check() function used previously is only available on Python 2.6 and newer, and it was a bit fiddly anyway. The list of exceptions would require adjustment if Python got a new kind of a sequence similar to bytes/unicodes/strings, so only checking for Lists seems more future-proof. The documentation only mentioned using Lists, so this is closer to what was documented, anyway. This should fix the buildfarm failures on systems building with Python 2.5, although I don't have Python 2.5 installed myself to test with. --- src/pl/plpython/plpy_typeio.c | 10 +--------- 1 file changed, 1 insertion(+), 9 deletions(-) diff --git a/src/pl/plpython/plpy_typeio.c b/src/pl/plpython/plpy_typeio.c index d346e22591..b9c6d64baa 100644 --- a/src/pl/plpython/plpy_typeio.c +++ b/src/pl/plpython/plpy_typeio.c @@ -999,15 +999,7 @@ PLySequence_ToArray(PLyObToDatum *arg, int32 typmod, PyObject *plrv, bool inarra for (;;) { - if (!PySequence_Check(pyptr)) - break; - - /* composite type */ - if (PyTuple_Check(pyptr)) - break; - - /* string */ - if (PyString_Check(pyptr) || PyBytes_Check(pyptr) || PyUnicode_Check(pyptr)) + if (!PyList_Check(pyptr)) break; if (ndim == MAXDIM)