]> granicus.if.org Git - postgresql/commit
Use HTABs instead of Python dictionary objects to cache procedures
authorPeter Eisentraut <peter_e@gmx.net>
Mon, 17 Jan 2011 19:46:36 +0000 (21:46 +0200)
committerPeter Eisentraut <peter_e@gmx.net>
Mon, 17 Jan 2011 19:46:36 +0000 (21:46 +0200)
commit46211da1b84bc3537e799ee1126098e71c2428e8
tree98093d9e582ab234f085613c029c1a1612bb58a0
parentbdd8ed973da9ab48aba2292b01f71d2f9968b82c
Use HTABs instead of Python dictionary objects to cache procedures

Two separate hash tables are used for regular procedures and for
trigger procedures, since the way trigger procedures work is quite
different from normal stored procedures.  Change the signatures of
PLy_procedure_{get,create} to accept the function OID and a Boolean
flag indicating whether it's a trigger.  This should make implementing
a PL/Python validator easier.

Using HTABs instead of Python dictionaries makes error recovery
easier, and allows for procedures to be cached based on their OIDs,
not their names.  It also allows getting rid of the PyCObject field
that used to hold a pointer to PLyProcedure, since PyCObjects are
deprecated in Python 2.7 and replaced by Capsules in Python 3.

Jan UrbaƄski
src/pl/plpython/plpython.c