Commit dcfecaae authored by Robert Haas's avatar Robert Haas

Fix parallel query on standby servers.

Without this fix, it inevitably bombs out with "ERROR:  failed to
initialize transaction_read_only to 0".  Repair.

Ashutosh Sharma; comments adjusted by me.
parent 070140ee
......@@ -482,11 +482,13 @@ show_log_timezone(void)
* nothing since XactReadOnly will be reset by the next StartTransaction().
* The IsTransactionState() test protects us against trying to check
* RecoveryInProgress() in contexts where shared memory is not accessible.
* (Similarly, if we're restoring state in a parallel worker, just allow
* the change.)
*/
bool
check_transaction_read_only(bool *newval, void **extra, GucSource source)
{
if (*newval == false && XactReadOnly && IsTransactionState())
if (*newval == false && XactReadOnly && IsTransactionState() && !InitializingParallelWorker)
{
/* Can't go to r/w mode inside a r/o transaction */
if (IsSubTransaction())
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment