]> granicus.if.org Git - postgresql/commit
Rearm statement_timeout after each executed query.
authorAndres Freund <andres@anarazel.de>
Tue, 19 Sep 2017 02:36:44 +0000 (19:36 -0700)
committerAndres Freund <andres@anarazel.de>
Tue, 19 Sep 2017 02:36:44 +0000 (19:36 -0700)
commitf8e5f156b30efee5d0038b03e38735773abcb7ed
treea6d4618f1f97b7f4f6d4ed0855a29c402092a5f5
parent0fb9e4ace5ce4d479d839a720f32b99fdc87f455
Rearm statement_timeout after each executed query.

Previously statement_timeout, in the extended protocol, affected all
messages till a Sync message.  For clients that pipeline/batch query
execution that's problematic.

Instead disable timeout after each Execute message, and enable, if
necessary, the timer in start_xact_command(). As that's done only for
Execute and not Parse / Bind, pipelining the latter two could still
cause undesirable timeouts. But a survey of protocol implementations
shows that all drivers issue Sync messages when preparing, and adding
timeout rearming to both is fairly expensive for the common parse /
bind / execute sequence.

Author: Tatsuo Ishii, editorialized by Andres Freund
Reviewed-By: Takayuki Tsunakawa, Andres Freund
Discussion: https://postgr.es/m/20170222.115044.1665674502985097185.t-ishii@sraoss.co.jp
src/backend/tcop/postgres.c