diff options
author | Bruce Momjian <bruce@momjian.us> | 2001-09-12 03:03:25 +0000 |
---|---|---|
committer | Bruce Momjian <bruce@momjian.us> | 2001-09-12 03:03:25 +0000 |
commit | 148f94b98f0e330dc2b64fe9c0739efb9e18e2e5 (patch) | |
tree | ba12cf4e27d72a4f5e80e04670420a4ab7482c9c | |
parent | 3b99f74d95add9592462d33403a7855a48378b44 (diff) | |
download | postgresql-148f94b98f0e330dc2b64fe9c0739efb9e18e2e5.tar.gz postgresql-148f94b98f0e330dc2b64fe9c0739efb9e18e2e5.zip |
I noticed that plpython does not make the relid available inside
a trigger the way that pltcl does.
Here's a little patch that adds it in.
-Brad McLean
-rw-r--r-- | src/pl/plpython/plpython.c | 14 |
1 files changed, 12 insertions, 2 deletions
diff --git a/src/pl/plpython/plpython.c b/src/pl/plpython/plpython.c index ea0b7d5ed91..df9b4e1080a 100644 --- a/src/pl/plpython/plpython.c +++ b/src/pl/plpython/plpython.c @@ -29,7 +29,7 @@ * MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. * * IDENTIFICATION - * $Header: /cvsroot/pgsql/src/pl/plpython/plpython.c,v 1.4 2001/06/01 18:17:44 tgl Exp $ + * $Header: /cvsroot/pgsql/src/pl/plpython/plpython.c,v 1.5 2001/09/12 03:03:25 momjian Exp $ * ********************************************************************* */ @@ -595,9 +595,10 @@ PLy_trigger_build_args(PG_FUNCTION_ARGS, PLyProcedure *proc, HeapTuple *rv) { DECLARE_EXC(); TriggerData *tdata; - PyObject *pltname, *pltevent, *pltwhen, *pltlevel; + PyObject *pltname, *pltevent, *pltwhen, *pltlevel, *pltrelid; PyObject *pltargs, *pytnew, *pytold; PyObject *pltdata = NULL; + char *stroid; enter(); @@ -621,6 +622,15 @@ PLy_trigger_build_args(PG_FUNCTION_ARGS, PLyProcedure *proc, HeapTuple *rv) PyDict_SetItemString(pltdata, "name", pltname); Py_DECREF(pltname); + stroid = DatumGetCString(DirectFunctionCall1(oidout, + ObjectIdGetDatum(tdata->tg_relation->rd_id))); + pltrelid = PyString_FromString(stroid); + PyDict_SetItemString(pltdata, "relid", pltrelid); + Py_DECREF(pltrelid); + pfree(stroid); + + + if (TRIGGER_FIRED_BEFORE(tdata->tg_event)) pltwhen = PyString_FromString("BEFORE"); else if (TRIGGER_FIRED_AFTER(tdata->tg_event)) |