BUG #16035: STATEMENT_TIMEOUT not working when we have single quote usage inside CTE which is used in inner sql

From: PG Bug reporting form <noreply(at)postgresql(dot)org>
To: pgsql-bugs(at)lists(dot)postgresql(dot)org
Cc: rmohite(at)xento(dot)com
Subject: BUG #16035: STATEMENT_TIMEOUT not working when we have single quote usage inside CTE which is used in inner sql
Date: 2019-10-03 06:38:33
Message-ID: 16035-456e6e69ebfd4374@postgresql.org
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-bugs

The following bug has been logged on the website:

Bug reference: 16035
Logged by: Raj Mohite
Email address: rmohite(at)xento(dot)com
PostgreSQL version: 10.8
Operating system: Windows 10
Description:

I have created a simple sql where I have added STATEMENT_TIMEOUT = 1 seconds
and added explicit delay(pg_sleep(5) ) of 5 seconds inside CTE. 

Below sql should get killed after 1 second but looks like it is running for
5 seconds.

SET STATEMENT_TIMEOUT = '1s';SELECT * FROM ( WITH test AS ( SELECT
pg_sleep(5), 'Billy' as emp_name ) SELECT 1 FROM test ) AS sub;

Note: If we remove the quoted string 'Billy' AS emp_name  from above sql
then proper timeout is getting applied. If we keep quoted string -- 'Billy'
AS emp_name in the comment then also it doesn't work.

Solution: We are still finding the root cause for the above behavior but I
found that if we will put the SET STATEMENT_TIMEOUT before and after the sql
then it working fine.

Example:
SET STATEMENT_TIMEOUT = '3s';SELECT * FROM ( WITH test AS ( SELECT
pg_sleep(5), 'Billy' as emp_name ) SELECT 1 FROM test ) AS sub;SET
STATEMENT_TIMEOUT = '1s';  

Above example will timeout after 3 seconds i.e. it will consider the 1st
timeout value.

Can you please help us to know why STATEMENT_TIMEOUT is not working in first
example?

Responses

Browse pgsql-bugs by date

  From Date Subject
Next Message Pavlo Golub 2019-10-03 14:08:34 Re: BUG #16034: `\set ECHO all` doesn't work for \e command
Previous Message David Raymond 2019-10-02 18:36:33 RE: BUG #16031: Group by returns duplicate groups