Tatsuo Ishii <is...@postgresql.org> writes: > When extended query protocol message is used, statement timeout is not > checked until a sync message is received (more precisely, statement > timeout timer is canceled while processing the sync message, and > actual checking timeout is done in CHECK_FOR_INTERRUPTS). Example:
> parse(statement1) > bind(statement1, portal1) > execute(portal1) > parse(statement2) > bind(statement2, portal2) > execute(portal2) > sync > Suppose statement_timeout = 2s. If execute(portal1) takes 3 seconds, > and execute(portal2) takes 1 second, the statement timeout is reported > at the time when the sync message is processed which is right after > execute(portal2). Really? It should get reported at some execution of CHECK_FOR_INTERRUPTS after we pass the 2-second mark in execute(portal1). If that's not what you're observing, maybe you've found a code path that's missing some CHECK_FOR_INTERRUPTS call(s). regards, tom lane -- Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-hackers