mirror of
https://github.com/postgres/postgres.git
synced 2025-11-10 17:42:29 +03:00
Revert "Enable parallel SELECT for "INSERT INTO ... SELECT ..."."
To allow inserts in parallel-mode this feature has to ensure that all the constraints, triggers, etc. are parallel-safe for the partition hierarchy which is costly and we need to find a better way to do that. Additionally, we could have used existing cached information in some cases like indexes, domains, etc. to determine the parallel-safety. List of commits reverted, in reverse chronological order:ed62d3737cDoc: Update description for parallel insert reloption.c8f78b6161Add a new GUC and a reloption to enable inserts in parallel-mode.c5be48f092Improve FK trigger parallel-safety check added by05c8482f7f.e2cda3c20aFix use of relcache TriggerDesc field introduced by commit05c8482f7f.e4e87a32ccFix valgrind issue in commit05c8482f7f.05c8482f7fEnable parallel SELECT for "INSERT INTO ... SELECT ...". Discussion: https://postgr.es/m/E1lMiB9-0001c3-SY@gemulon.postgresql.org
This commit is contained in:
@@ -1014,32 +1014,6 @@ IsInParallelMode(void)
|
||||
return CurrentTransactionState->parallelModeLevel != 0;
|
||||
}
|
||||
|
||||
/*
|
||||
* PrepareParallelModePlanExec
|
||||
*
|
||||
* Prepare for entering parallel mode plan execution, based on command-type.
|
||||
*/
|
||||
void
|
||||
PrepareParallelModePlanExec(CmdType commandType)
|
||||
{
|
||||
if (IsModifySupportedInParallelMode(commandType))
|
||||
{
|
||||
Assert(!IsInParallelMode());
|
||||
|
||||
/*
|
||||
* Prepare for entering parallel mode by assigning a TransactionId.
|
||||
* Failure to do this now would result in heap_insert() subsequently
|
||||
* attempting to assign a TransactionId whilst in parallel-mode, which
|
||||
* is not allowed.
|
||||
*
|
||||
* This approach has a disadvantage in that if the underlying SELECT
|
||||
* does not return any rows, then the TransactionId is not used,
|
||||
* however that shouldn't happen in practice in many cases.
|
||||
*/
|
||||
(void) GetCurrentTransactionId();
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* CommandCounterIncrement
|
||||
*/
|
||||
|
||||
Reference in New Issue
Block a user