Howdy Michael,
Thanks for the help. I 'm presently using 8.0-beta2 on Windows. I
will upgrade that to 8.0 release today. However, my production server
is 7.4.2 (on Linux), and I'm somewhat reticent to migrate to 8.0 because
it is still pretty new. I belive I came across a message that indicated
that you could do such a thing in TCL. Do you know if this is true?
Can TCL in 7.4.2 get a field from a rowtype varaible like this?
What you outline with Perl is exactly the approach I would take, and
that's what led to crashing the server process. Perhaps PL/PERL is not
totally stable on Windows yet? If that's the case I will indeed submit
a bug report with a test case.
Many thanks,
Eric
Michael Fuhr wrote:
>On Tue, Jan 18, 2005 at 04:21:51PM -0500, Eric E wrote:
>
>
>
>> I'm tearing my hair out trying to solve the following problem. I
>>want to be able to retrieve the value of the primary key in a trigger
>>function. I have tried using PL/PGSQL and PL/PERL, but a PL/PERL
>>trigger function crashes the postgress process.
>>
>>
>
>What versions of PostgreSQL and Perl are you using? If the backend
>is crashing then check to see if the bug has been fixed in a newer
>version of PostgreSQL. If not then please submit a bug report with
>a repeatable test case.
>
>I wrote a simple PL/Perl trigger in 8.0.0 and was able to access
>$_TD->{new}{$pk}, where $pk held the name of a column. Maybe the
>bug has been fixed in the latest code.
>
>
>
>>In other words, I want:
>>
>>NEW.pkName, where pkName is a variable holding the name of my primary key.
>>
>>
>
>I'm not aware of a way to do this in a PL/pgSQL trigger. I didn't
>think EXECUTE would work and indeed it doesn't, at least not the
>way I tried:
>
>ERROR: NEW used in query that is not in a rule
>
>
>