Improve support for composite types in PL/Python.
Tom Lane <tgl@sss.pgh.pa.us>
Improve support for composite types in PL/Python. Allow PL/Python functions to return arrays of composite types. Also, fix the restriction that plpy.prepare/plpy.execute couldn't handle query parameters or result columns of composite types. In passing, adopt a saner arrangement for where to release the tupledesc reference counts acquired via lookup_rowtype_tupdesc. The callers of PLyObject_ToCompositeDatum were doing the lookups, but then the releases happened somewhere down inside subroutines of PLyObject_ToCompositeDatum, which is bizarre and bug-prone. Instead release in the same function that acquires the refcount. Ed Behn and Ronan Dunklau, reviewed by Abhijit Menon-Sen
Files
| Path | Change | +/− |
|---|---|---|
| doc/src/sgml/plpython.sgml | modified | +0 −7 |
| src/pl/plpython/expected/plpython_composite.out | modified | +8 −4 |
| src/pl/plpython/expected/plpython_spi.out | modified | +15 −0 |
| src/pl/plpython/expected/plpython_types_3.out | modified | +6 −7 |
| src/pl/plpython/expected/plpython_types.out | modified | +6 −7 |
| src/pl/plpython/plpy_exec.c | modified | +2 −0 |
| src/pl/plpython/plpy_spi.c | modified | +1 −6 |
| src/pl/plpython/plpy_typeio.c | modified | +18 −17 |
| src/pl/plpython/sql/plpython_composite.sql | modified | +1 −1 |
| src/pl/plpython/sql/plpython_spi.sql | modified | +12 −0 |
| src/pl/plpython/sql/plpython_types.sql | modified | +1 −1 |