Re: stack depth limit exceeded

From: Jamie Deppeler <jamie(at)doitonce(dot)net(dot)au>
To: PostgreSQL General <pgsql-general(at)postgresql(dot)org>
Subject: Re: stack depth limit exceeded
Date: 2005-08-29 03:45:32
Message-ID: 431284DC.5000306@doitonce.net.au
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general

What i am trying to do is update the field contact with field values in
firstname and lastname

Trigger

CREATE TRIGGER "updateContact" AFTER INSERT OR UPDATE
ON FOR EACH ROW
EXECUTE PROCEDURE "contacts"."addContactField"();

Procedure

CREATE OR REPLACE FUNCTION "contacts"."addContactField" () RETURNS
trigger AS
$body$
begin
update contacts.person
set "contact" = new.firstname
where person."primary" = new."primary";
return null;
end;
$body$
LANGUAGE 'plpgsql' VOLATILE CALLED ON NULL INPUT SECURITY INVOKER;

Tom Lane wrote:

>Jamie Deppeler <jamie(at)doitonce(dot)net(dot)au> writes:
>
>
>>At the moment i am trying to execute a very simple function but i am
>>getting the following error stack depth limit exceeded
>>
>>
>
>You didn't really show the complete context, but seeing that this is a
>trigger and it's trying to do an "UPDATE person" internally, I'll bet
>a nickel that the trigger itself is on update events on person, and
>therefore that you've written an infinite recursion.
>
>Had you shown more context, I could have given some advice on a better
>way to do it. If you're trying to alter the row that's about to be
>stored, you just have to assign to field(s) of the NEW row within the
>trigger. If you want to do something else, you need to explain what.
>
> regards, tom lane
>
>---------------------------(end of broadcast)---------------------------
>TIP 4: Have you searched our list archives?
>
> http://archives.postgresql.org
>
>
>
>
>

In response to

Responses

Browse pgsql-general by date

  From Date Subject
Next Message Surabhi Ahuja 2005-08-29 07:43:00 Re: regarding threads and transactions - problem 2
Previous Message John D. Burger 2005-08-29 03:10:02 Re: About "ERROR: must be *superuser* to COPY to or from a file"