SELECT). This will prevent kind mismatch errors when query plan are different among servers.
controls the behavior when write to backend socket fails. Also add pool_log when postmaster administrative shutdown detected.
to wait for master returning a response before sending a query to the other nodes.
Also refactor pool_process_query.c to remove process_reporting() and make a new source file "pool_process_reporting.c" to hold the funtcion. Main reason for this is, process_reporting() is now big enough to have a separate C source file.
master/slave mode. If it's inside transaction, enable master_slave_dml, which means execute parse on master only. This will prevent unwanted parase executed on slave, which holds at least AccessShareLock on tables until transaction commits. It seems unamed statement does not release the lock until execute. Please note that, even with this fix, bind state will remain on slave if JDBC issues parse with autocommit off. This is because BEGIN parsed, bind on both master and slave but execute only on master. However, this is not harmfull since parse/bind does not hold any locks on tables. Also add some logging statemets.
Close() should not allowed since hold cursor + update may cause data inconsistency.
…hout linking to libcrypt by some reasons which I don't know.
abnormaly, some global state variables are not reset. For this purpose, new function reset_variables() added. Remove unnecessary argument of end_load_balance().
This is almost same algorithm as PostgreSQL. I hope pgpool-II does not consume so much system resource any more...
happen if SELECT now() is called inside an aborted transaction. Fix SimpleForwardToBackend free rewrite_msg too early.
rather than unhelpfull "server closed the connection unexpectedly" message. Patch provided by Glyn Astill with minor tweak by Tatsuo Ishii.
to frontend. Also add info to the message if it was backend or frontend to avoid confusion.