Re: [HACKERS] statement_timeout doesnt work within plpgsql by design?
On Tuesday 20 February 2007 12:50, Tom Lane wrote: > Robert Treat <[EMAIL PROTECTED]> writes: > > pagila=# create or replace function test() returns bool as $$ begin set > > statement_timeout = 3000; perform pg_sleep(4) ; return true; end $$ > > language plpgsql; > > CREATE FUNCTION > > statement_timeout is measured across an entire interactive command, not > individual commands within a function; and the timeout that applies to > an interactive command is determined at its beginning. So the above > doesn't do what you think. > Well, I'd be happy if it caused the entire function to bail out or if it caused individual statements within a function to bail out, but it does neither. I can see how that would be a bit tricky to implement though. -- Robert Treat Build A Brighter LAMP :: Linux Apache {middleware} PostgreSQL ---(end of broadcast)--- TIP 2: Don't 'kill -9' the postmaster
Re: [HACKERS] statement_timeout doesnt work within plpgsql by design?
Robert Treat <[EMAIL PROTECTED]> writes: > pagila=# create or replace function test() returns bool as $$ begin set > statement_timeout = 3000; perform pg_sleep(4) ; return true; end $$ language > plpgsql; > CREATE FUNCTION statement_timeout is measured across an entire interactive command, not individual commands within a function; and the timeout that applies to an interactive command is determined at its beginning. So the above doesn't do what you think. regards, tom lane ---(end of broadcast)--- TIP 9: In versions below 8.0, the planner will ignore your desire to choose an index scan if your joining column's datatypes do not match
[HACKERS] statement_timeout doesnt work within plpgsql by design?
pagila=# select version(); version - PostgreSQL 8.2.3 on i386-pc-solaris2.10, compiled by cc -Xa (1 row) pagila=# create or replace function test() returns bool as $$ begin set statement_timeout = 3000; perform pg_sleep(4) ; return true; end $$ language plpgsql; CREATE FUNCTION pagila=# select test(); test -- t (1 row) pagila=# select test(); ERROR: canceling statement due to statement timeout CONTEXT: SQL statement "SELECT pg_sleep(4)" PL/pgSQL function "test" line 1 at perform is this behavior by design? if so why would you design it that way? :-) -- Robert Treat Build A Brighter LAMP :: Linux Apache {middleware} PostgreSQL ---(end of broadcast)--- TIP 6: explain analyze is your friend