mirror of
https://github.com/postgres/postgres.git
synced 2025-12-21 05:21:08 +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:
@@ -306,8 +306,6 @@ typedef struct StdRdOptions
|
||||
int parallel_workers; /* max number of parallel workers */
|
||||
bool vacuum_index_cleanup; /* enables index vacuuming and cleanup */
|
||||
bool vacuum_truncate; /* enables vacuum to truncate a relation */
|
||||
bool parallel_insert_enabled; /* enables planner's use of
|
||||
* parallel insert */
|
||||
} StdRdOptions;
|
||||
|
||||
#define HEAP_MIN_FILLFACTOR 10
|
||||
@@ -425,29 +423,6 @@ typedef struct ViewOptions
|
||||
((ViewOptions *) (relation)->rd_options)->check_option == \
|
||||
VIEW_OPTION_CHECK_OPTION_CASCADED)
|
||||
|
||||
/*
|
||||
* PartitionedTableRdOptions
|
||||
* Contents of rd_options for partitioned tables
|
||||
*/
|
||||
typedef struct PartitionedTableRdOptions
|
||||
{
|
||||
int32 vl_len_; /* varlena header (do not touch directly!) */
|
||||
bool parallel_insert_enabled; /* enables planner's use of
|
||||
* parallel insert */
|
||||
} PartitionedTableRdOptions;
|
||||
|
||||
/*
|
||||
* RelationGetParallelInsert
|
||||
* Returns the relation's parallel_insert_enabled reloption setting.
|
||||
* Note multiple eval of argument!
|
||||
*/
|
||||
#define RelationGetParallelInsert(relation, defaultpd) \
|
||||
((relation)->rd_options ? \
|
||||
(relation->rd_rel->relkind == RELKIND_PARTITIONED_TABLE ? \
|
||||
((PartitionedTableRdOptions *) (relation)->rd_options)->parallel_insert_enabled : \
|
||||
((StdRdOptions *) (relation)->rd_options)->parallel_insert_enabled) : \
|
||||
(defaultpd))
|
||||
|
||||
/*
|
||||
* RelationIsValid
|
||||
* True iff relation descriptor is valid.
|
||||
|
||||
Reference in New Issue
Block a user