[pgpool-committers: 674] pgpool: Fix long standing problem with do_query(). When 1) extended pro
Tatsuo Ishii
ishii at postgresql.org
Tue Oct 2 09:44:04 JST 2012
Fix long standing problem with do_query(). When 1) extended protocol
used and 2)unnamed portal is used and 3) no explicit transaction is
used, user's unnamed portal is removed by Sync message. This is
because Sync message closes transaction and unnamed portal is
removed. This leads to "portal "" does not exist" error.
Fix is, use "Flush" message instead of Sync. Main difference between
using Sync and Flush is, Flush does not return Ready for Query
message. So do_query() does not return until all expected responses
are returned. It seems the order of messages returned from backend is
random, and do_query() manages it by using state bits.
Branch
------
master
Details
-------
http://git.postgresql.org/gitweb?p=pgpool2.git;a=commitdiff;h=fdee24870b548c7091561cdff15ea41547eeb942
Modified Files
--------------
pool_process_query.c | 57 +++++++++++++++++++++++++++++++++++++++++++++----
1 files changed, 52 insertions(+), 5 deletions(-)
More information about the pgpool-committers
mailing list