Re: BUG #14964: statement_timeout cann't set in plpgsql

From: "David G(dot) Johnston" <david(dot)g(dot)johnston(at)gmail(dot)com>
To: 德哥 <digoal(at)126(dot)com>
Cc: "pgsql-bugs(at)postgresql(dot)org" <pgsql-bugs(at)postgresql(dot)org>
Subject: Re: BUG #14964: statement_timeout cann't set in plpgsql
Date: 2017-12-11 14:44:53
Message-ID: CAKFQuwaDcCKhf-TPrVV=MvfwCUYYamMFfS-5u7vYJyO2snxuFw@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-bugs

On Mon, Dec 11, 2017 at 7:29 AM, <digoal(at)126(dot)com> wrote:

> The following bug has been logged on the website:
>
> Bug reference: 14964
> Logged by: Zhou Digoal
> Email address: digoal(at)126(dot)com
> PostgreSQL version: 10.1
> Operating system: centos 7.4 x64
> Description:
>
> ```
> create or replace function f1(int) returns setof record as $$
> declare
> begin
> set local statement_timeout='1ms';
> return query select count(*) as cnt, id from a where id<$1 group by id;
> end;
> $$ language plpgsql strict ;
> ```
>
> but it can execute every time, which when the query run more than 1ms.
>
>
​A quick Google search turns up the response that this is working as
designed. In short, the timeout applies to statements sent by the client.
Once changed the next statement the client sends to the server will use the
new setting. Since a server function invocation is a single statement as
far as the client-server relationship goes a timeout set within a function
will not apply until the statement the invoked the function ends and a new
statement is sent from the client to the server.

David J.

In response to

Responses

Browse pgsql-bugs by date

  From Date Subject
Next Message 德哥 2017-12-11 15:55:35 Re:Re: BUG #14964: statement_timeout cann't set in plpgsql
Previous Message David G. Johnston 2017-12-11 14:36:15 Re: BUG #14963: Number of wal files are keep on increasing