]> granicus.if.org Git - postgresql/commit
Improve support for composite types in PL/Python.
authorTom Lane <tgl@sss.pgh.pa.us>
Thu, 3 Jul 2014 20:10:50 +0000 (16:10 -0400)
committerTom Lane <tgl@sss.pgh.pa.us>
Thu, 3 Jul 2014 20:10:50 +0000 (16:10 -0400)
commit8b6010b8350a1756cd85595705971df81b5ffc07
treeeda51b5b21c1030a24f0be7bb3a11b770aba5c7a
parentf545d233ebce6971b6f9847680e48b679e707d22
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
doc/src/sgml/plpython.sgml
src/pl/plpython/expected/plpython_composite.out
src/pl/plpython/expected/plpython_spi.out
src/pl/plpython/expected/plpython_types.out
src/pl/plpython/expected/plpython_types_3.out
src/pl/plpython/plpy_exec.c
src/pl/plpython/plpy_spi.c
src/pl/plpython/plpy_typeio.c
src/pl/plpython/sql/plpython_composite.sql
src/pl/plpython/sql/plpython_spi.sql
src/pl/plpython/sql/plpython_types.sql