mirror of
https://github.com/postgres/postgres.git
synced 2025-07-30 11:03:19 +03:00
Disallow COPY FREEZE on partitioned tables
This didn't actually work: COPY would fail to flush the right files, and instead would try to flush a non-existing file, causing the whole transaction to fail. Cope by raising an error as soon as the command is sent instead, to avoid a nasty later surprise. Of course, it would be much better to make it work, but we don't have a patch for that yet, and we don't know if we'll want to backpatch one when we do. Reported-by: Tomas Vondra Author: David Rowley Reviewed-by: Amit Langote, Steve Singer, Tomas Vondra
This commit is contained in:
@ -1535,8 +1535,8 @@ SELECT * FROM x, y, a, b, c WHERE something AND somethingelse;
|
||||
needs to be written, because in case of an error, the files
|
||||
containing the newly loaded data will be removed anyway.
|
||||
However, this consideration only applies when
|
||||
<xref linkend="guc-wal-level"/> is <literal>minimal</literal> as all commands
|
||||
must write WAL otherwise.
|
||||
<xref linkend="guc-wal-level"/> is <literal>minimal</literal> for
|
||||
non-partitioned tables as all commands must write WAL otherwise.
|
||||
</para>
|
||||
|
||||
</sect2>
|
||||
|
@ -224,7 +224,9 @@ COPY { <replaceable class="parameter">table_name</replaceable> [ ( <replaceable
|
||||
This is intended as a performance option for initial data loading.
|
||||
Rows will be frozen only if the table being loaded has been created
|
||||
or truncated in the current subtransaction, there are no cursors
|
||||
open and there are no older snapshots held by this transaction.
|
||||
open and there are no older snapshots held by this transaction. It is
|
||||
currently not possible to perform a <command>COPY FREEZE</command> on
|
||||
a partitioned table.
|
||||
</para>
|
||||
<para>
|
||||
Note that all other sessions will immediately be able to see the data
|
||||
|
Reference in New Issue
Block a user