Skip to content
GitLab
Explore
Sign in
Register
Primary navigation
Search or go to…
Project
P
postgres-lambda-diff
Manage
Activity
Members
Labels
Plan
Issues
Issue boards
Milestones
Wiki
Code
Merge requests
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Snippets
Build
Pipelines
Jobs
Pipeline schedules
Artifacts
Deploy
Releases
Container Registry
Model registry
Operate
Environments
Monitor
Incidents
Analyze
Value stream analytics
Contributor analytics
CI/CD analytics
Repository analytics
Model experiments
Help
Help
Support
GitLab documentation
Compare GitLab plans
Community forum
Contribute to GitLab
Provide feedback
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
Jakob Huber
postgres-lambda-diff
Commits
d7e2de66
Commit
d7e2de66
authored
18 years ago
by
Tom Lane
Browse files
Options
Downloads
Patches
Plain Diff
Add note that TRUNCATE is not MVCC-safe.
parent
b0194ab1
No related branches found
No related tags found
No related merge requests found
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
doc/src/sgml/ref/truncate.sgml
+25
-2
25 additions, 2 deletions
doc/src/sgml/ref/truncate.sgml
with
25 additions
and
2 deletions
doc/src/sgml/ref/truncate.sgml
+
25
−
2
View file @
d7e2de66
<!--
<!--
$PostgreSQL: pgsql/doc/src/sgml/ref/truncate.sgml,v 1.2
2
2007/0
1/31 23:26:04 momjian
Exp $
$PostgreSQL: pgsql/doc/src/sgml/ref/truncate.sgml,v 1.2
3
2007/0
4/07 17:12:15 tgl
Exp $
PostgreSQL documentation
PostgreSQL documentation
-->
-->
...
@@ -31,7 +31,9 @@ TRUNCATE [ TABLE ] <replaceable class="PARAMETER">name</replaceable> [, ...] [ C
...
@@ -31,7 +31,9 @@ TRUNCATE [ TABLE ] <replaceable class="PARAMETER">name</replaceable> [, ...] [ C
<command>TRUNCATE</command> quickly removes all rows from a set of
<command>TRUNCATE</command> quickly removes all rows from a set of
tables. It has the same effect as an unqualified
tables. It has the same effect as an unqualified
<command>DELETE</command> on each table, but since it does not actually
<command>DELETE</command> on each table, but since it does not actually
scan the tables it is faster. This is most useful on large tables.
scan the tables it is faster; furthermore it reclaims disk space
immediately, rather than requiring a subsequent vacuum operation.
This is most useful on large tables.
</para>
</para>
</refsect1>
</refsect1>
...
@@ -92,6 +94,27 @@ TRUNCATE [ TABLE ] <replaceable class="PARAMETER">name</replaceable> [, ...] [ C
...
@@ -92,6 +94,27 @@ TRUNCATE [ TABLE ] <replaceable class="PARAMETER">name</replaceable> [, ...] [ C
<command>TRUNCATE</> will not run any user-defined <literal>ON
<command>TRUNCATE</> will not run any user-defined <literal>ON
DELETE</literal> triggers that might exist for the tables.
DELETE</literal> triggers that might exist for the tables.
</para>
</para>
<para>
<command>TRUNCATE</> is not MVCC-safe (see <xref linkend="mvcc">
for general information about MVCC). After truncation, the table
will appear empty to all concurrent transactions, even if they are
using a snapshot taken before the truncation occurred. This will
only be an issue for a transaction that did not touch the table
before the truncation started — any transaction that has done
so would hold at least <literal>ACCESS SHARE</literal> lock,
which would block
<command>TRUNCATE</> until that transaction completes. So
truncation will not cause any apparent inconsistency in the table
contents for successive queries on the same table, but it could
cause visible inconsistency between the contents of the
truncated table and other tables.
</para>
<para>
<command>TRUNCATE</> is transaction-safe, however: the truncation
will roll back if the surrounding transaction does not commit.
</para>
</refsect1>
</refsect1>
<refsect1>
<refsect1>
...
...
This diff is collapsed.
Click to expand it.
Preview
0%
Loading
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Save comment
Cancel
Please
register
or
sign in
to comment