Tom Lane wrote:

Joe Conway <[EMAIL PROTECTED]> writes:

For triggers, I was previously building up the arguments thus:
    slot = TupleDescGetSlot(tupdesc);
    slot->val = trigdata->tg_trigtuple;
    arg[7] = PointerGetDatum(slot);


I suppose now I should do this instead?
    arg[7] = PointerGetDatum(trigdata->tg_trigtuple->t_data);


Hm, no, that won't work because a tuple being passed to a trigger
probably isn't going to contain valid type information.  The API for
calling triggers is different from calling ordinary functions, so
I never thought about trying to make it look the same.  At what point
are you trying to do the above, anyway?

That's a shame -- it used to work fine -- done this way so the same function could handle tuple arguments to regular functions, and old/new tuples to trigger functions. It is in plr_trigger_handler(); vaguely similar to pltcl_trigger_handler(). I'll have to figure out a workaround I guess.


Joe


---------------------------(end of broadcast)--------------------------- TIP 5: Have you checked our extensive FAQ?

http://www.postgresql.org/docs/faqs/FAQ.html

Reply via email to