Re: BUG #1314: STATEMENT_TIMEOUT DOES NOT WORK PROPERLY
Tom Lane <tgl@sss.pgh.pa.us>
From: Tom Lane <tgl@sss.pgh.pa.us>
To: "Adnan DURSUN" <adursun@hvkk.mil.tr>
Cc: pgsql-bugs@postgresql.org
Date: 2004-11-11T22:53:08Z
Lists: pgsql-bugs
"PostgreSQL Bugs List" <pgsql-bugs@postgresql.org> writes: > CREATE OR REPLACE FUNCTION fn_test() > RETURNS "varchar" AS > $BODY$ > DECLARE > c refcursor; > r record; > BEGIN > SET SESSION STATEMENT_TIMEOUT = 1000; > OPEN C FOR SELECT * FROM T_KULLANICILAR FOR UPDATE; > FETCH C INTO R; > RESET STATEMENT_TIMEOUT; > RETURN '1'; > EXCEPTION > WHEN QUERY_CANCELED THEN > RAISE EXCEPTION 'UNABLE TO OBTAIN LOCK... :%'; > END; > $BODY$ statement_timeout limits the time taken for an *interactive* command, not the time for an individual command inside a function. What this means is you can't change it around inside a function and expect anything to happen --- the timeout, or lack of it, for the current interactive command was determined long before your function got called. regards, tom lane