1
0
mirror of https://github.com/postgres/postgres.git synced 2025-07-30 11:03:19 +03:00

Issue ERROR if FREEZE mode can't be honored by COPY

Previously non-honored FREEZE mode was ignored.  This also issues an
appropriate error message based on the cause of the failure, per
suggestion from Tom.  Additional regression test case added.
This commit is contained in:
Bruce Momjian
2013-01-26 13:33:24 -05:00
parent 7e2322dff3
commit 4deb57de7d
4 changed files with 40 additions and 31 deletions

View File

@ -190,18 +190,14 @@ COPY { <replaceable class="parameter">table_name</replaceable> [ ( <replaceable
would be after running the <command>VACUUM FREEZE</> command.
This is intended as a performance option for initial data loading.
Rows will be frozen only if the table being loaded has been created
in the current subtransaction, there are no cursors open and there
are no older snapshots held by this transaction. If those conditions
are not met the command will continue without error though will not
freeze rows. It is also possible in rare cases that the request
cannot be honoured for internal reasons, hence <literal>FREEZE</literal>
is more of a guideline than a hard rule.
or truncated in the current subtransaction, there are no cursors
open and there are no older snapshots held by this transaction.
</para>
<para>
Note that all other sessions will immediately be able to see the data
once it has been successfully loaded. This violates the normal rules
of MVCC visibility and by specifying this option the user acknowledges
explicitly that this is understood.
of MVCC visibility and users specifying should be aware of the
potential problems this might cause.
</para>
</listitem>
</varlistentry>