aboutsummaryrefslogtreecommitdiff
path: root/doc/src
diff options
context:
space:
mode:
authorAmit Kapila <akapila@postgresql.org>2021-03-24 11:10:12 +0530
committerAmit Kapila <akapila@postgresql.org>2021-03-24 11:29:15 +0530
commit26acb54a1368bf3706294400abca85b15c9233a6 (patch)
tree435436137df934ae0d011d271ab73a4710b4c893 /doc/src
parent84007043fc1b1be68dad5d0a78269347c12094b6 (diff)
downloadpostgresql-26acb54a1368bf3706294400abca85b15c9233a6.tar.gz
postgresql-26acb54a1368bf3706294400abca85b15c9233a6.zip
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: ed62d3737c Doc: Update description for parallel insert reloption. c8f78b6161 Add a new GUC and a reloption to enable inserts in parallel-mode. c5be48f092 Improve FK trigger parallel-safety check added by 05c8482f7f. e2cda3c20a Fix use of relcache TriggerDesc field introduced by commit 05c8482f7f. e4e87a32cc Fix valgrind issue in commit 05c8482f7f. 05c8482f7f Enable parallel SELECT for "INSERT INTO ... SELECT ...". Discussion: https://postgr.es/m/E1lMiB9-0001c3-SY@gemulon.postgresql.org
Diffstat (limited to 'doc/src')
-rw-r--r--doc/src/sgml/config.sgml23
-rw-r--r--doc/src/sgml/parallel.sgml3
-rw-r--r--doc/src/sgml/ref/alter_table.sgml3
-rw-r--r--doc/src/sgml/ref/create_table.sgml31
4 files changed, 3 insertions, 57 deletions
diff --git a/doc/src/sgml/config.sgml b/doc/src/sgml/config.sgml
index 5679b40dd56..1f0e0fc1fbb 100644
--- a/doc/src/sgml/config.sgml
+++ b/doc/src/sgml/config.sgml
@@ -5072,29 +5072,6 @@ ANY <replaceable class="parameter">num_sync</replaceable> ( <replaceable class="
</listitem>
</varlistentry>
- <varlistentry id="guc-enable-parallel-insert" xreflabel="enable_parallel_insert">
- <term><varname>enable_parallel_insert</varname> (<type>boolean</type>)
- <indexterm>
- <primary><varname>enable_parallel_insert</varname> configuration parameter</primary>
- </indexterm>
- </term>
- <listitem>
- <para>
- Enables or disables the query planner's use of parallel plans for
- <command>INSERT</command> commands. The default is <literal>on</literal>.
- When enabled, the planner performs additional parallel-safety checks
- on the target table's attributes and indexes, in order to determine
- if it's safe to use a parallel plan for <command>INSERT</command>. In
- cases such as when the target table has a large number of partitions,
- and particularly also when that table uses something parallel-unsafe
- that prevents parallelism, the overhead of these checks may become
- prohibitively high. To address this potential overhead in these cases,
- this option can be used to disable the use of parallel plans for
- <command>INSERT</command>.
- </para>
- </listitem>
- </varlistentry>
-
</variablelist>
</sect2>
<sect2 id="runtime-config-query-constants">
diff --git a/doc/src/sgml/parallel.sgml b/doc/src/sgml/parallel.sgml
index 330c06b608f..479e24a1dcb 100644
--- a/doc/src/sgml/parallel.sgml
+++ b/doc/src/sgml/parallel.sgml
@@ -156,9 +156,6 @@ EXPLAIN SELECT * FROM pgbench_accounts WHERE filler LIKE '%x%';
<para><command>SELECT INTO</command></para>
</listitem>
<listitem>
- <para><command>INSERT INTO ... SELECT</command></para>
- </listitem>
- <listitem>
<para><command>CREATE MATERIALIZED VIEW</command></para>
</listitem>
<listitem>
diff --git a/doc/src/sgml/ref/alter_table.sgml b/doc/src/sgml/ref/alter_table.sgml
index 80a8efaa27b..0bd0c1a5031 100644
--- a/doc/src/sgml/ref/alter_table.sgml
+++ b/doc/src/sgml/ref/alter_table.sgml
@@ -738,8 +738,7 @@ WITH ( MODULUS <replaceable class="parameter">numeric_literal</replaceable>, REM
<para>
<literal>SHARE UPDATE EXCLUSIVE</literal> lock will be taken for
fillfactor, toast and autovacuum storage parameters, as well as the
- planner parameters <varname>parallel_workers</varname> and
- <varname>parallel_insert_enabled</varname>.
+ planner parameter <varname>parallel_workers</varname>.
</para>
</listitem>
</varlistentry>
diff --git a/doc/src/sgml/ref/create_table.sgml b/doc/src/sgml/ref/create_table.sgml
index c6c248f1e91..44e50620fd1 100644
--- a/doc/src/sgml/ref/create_table.sgml
+++ b/doc/src/sgml/ref/create_table.sgml
@@ -1369,9 +1369,8 @@ WITH ( MODULUS <replaceable class="parameter">numeric_literal</replaceable>, REM
If a table parameter value is set and the
equivalent <literal>toast.</literal> parameter is not, the TOAST table
will use the table's parameter value.
- These parameters, with the exception of
- <literal>parallel_insert_enabled</literal>, are not supported on partitioned
- tables, but may be specified for individual leaf partitions.
+ Specifying these parameters for partitioned tables is not supported,
+ but you may specify them for individual leaf partitions.
</para>
<variablelist>
@@ -1441,32 +1440,6 @@ WITH ( MODULUS <replaceable class="parameter">numeric_literal</replaceable>, REM
</listitem>
</varlistentry>
- <varlistentry id="reloption-parallel-insert-enabled" xreflabel="parallel_insert_enabled">
- <term><literal>parallel_insert_enabled</literal> (<type>boolean</type>)
- <indexterm>
- <primary><varname>parallel_insert_enabled</varname> storage parameter</primary>
- </indexterm>
- </term>
- <listitem>
- <para>
- Enables or disables the query planner's use of parallel insert for
- this table. When enabled (and provided that
- <xref linkend="guc-enable-parallel-insert"/> is also <literal>true</literal>),
- the planner performs additional parallel-safety checks on the table's
- attributes and indexes, in order to determine if it's safe to use a
- parallel plan for <command>INSERT</command>. The default is
- <literal>true</literal>. In cases such as when the table has a large
- number of partitions, and particularly also when that table uses a
- parallel-unsafe feature that prevents parallelism, the overhead of these
- checks may become prohibitively high. To address this potential overhead
- in these cases, this option can be used to disable the use of parallel
- insert for this table. Note that if the target table of the parallel
- insert is partitioned, the <literal>parallel_insert_enabled</literal>
- option values of the partitions are ignored.
- </para>
- </listitem>
- </varlistentry>
-
<varlistentry id="reloption-autovacuum-enabled" xreflabel="autovacuum_enabled">
<term><literal>autovacuum_enabled</literal>, <literal>toast.autovacuum_enabled</literal> (<type>boolean</type>)
<indexterm>