"PostgreSQL Bugs List" <[EMAIL PROTECTED]> 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 ---------------------------(end of broadcast)--------------------------- TIP 7: don't forget to increase your free space map settings