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.
This commit is contained in:
parent
070140ee48
commit
dcfecaae9e
@ -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())
|
||||
|
Loading…
x
Reference in New Issue
Block a user