Re: storing intermediate results in recursive plpgsql functions - Mailing list pgsql-general

From Tom Lane
Subject Re: storing intermediate results in recursive plpgsql functions
Date
Msg-id 16694.1015349838@sss.pgh.pa.us
Whole thread Raw
In response to Re: storing intermediate results in recursive plpgsql  (Vince Vielhaber <vev@michvhf.com>)
List pgsql-general
Vince Vielhaber <vev@michvhf.com> writes:
> So if the function is executed in a transaction and the transaction
> ends when the function does, doesn't that mean the lock is released
> when the function ends?

But the transaction *doesn't* end when the function does.

The function must have been called from some SQL query (eg, a SELECT)
and there is an explicit or implicit transaction wrapped around every
query issued by an application.  The earliest the lock can possibly be
released is when the current application-given query ends.  If the query
is inside an explicit BEGIN/COMMIT block then the lock will be held till
you COMMIT or ROLLBACK.

Feel free to propose better wording for that part of the plpgsql docs...

            regards, tom lane

pgsql-general by date:

Previous
From: Jean-Michel POURE
Date:
Subject: Re: database problem..
Next
From: "Pirtea Calin"
Date:
Subject: Re: descending index