>From 69c892ed85070de8df41f2b00088f503453b2e97 Mon Sep 17 00:00:00 2001 From: Craig Ringer Date: Mon, 20 Aug 2012 11:55:25 +0800 Subject: [PATCH 2/3] Collect a list of features with abberant transactional behavour --- doc/src/sgml/mvcc.sgml | 67 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 67 insertions(+) diff --git a/doc/src/sgml/mvcc.sgml b/doc/src/sgml/mvcc.sgml new file mode 100644 index 9dc65f5..e2930c9 *** a/doc/src/sgml/mvcc.sgml --- b/doc/src/sgml/mvcc.sgml *************** SELECT pg_advisory_lock(q.id) FROM *** 1540,1543 **** --- 1540,1610 ---- indexes should be used instead. + + + Exceptions to normal transactional rules + + + Some PostgreSQL features, functions and data types differ from the + usual transactional behaviour described in this chapter. Differences + are generally mentioned in the documentation sections for the + features they affect. Such exceptions are collected here for + easy reference. + + + + The following actions and features don't follow the typical + transactional rules: + + + + + + Serial pseudo-types + + + + + SEQUENCEs - + + + + + Advisory locks - + + + + + Disk writes to files outside the database, as performed by + COPY ... TO, adminpack functions, and other add-ons. + See , . + + + + + Any network I/O or inter-process communication not explicitly + described as transactional in its documentation. For example, + sending an email from PL/PerlU would not be transactional; + the email would be sent before the transaction commits and + could not be un-sent if the transaction were to roll back. + + + + + + When working with external non-transactional resources like files + on disk or network sockets the two-phase commit feature can be + useful. See: + + + LISTEN/NOTIFY provides a lighter weight but still transaction-friendly method of + triggering changes outside the database in response to changes inside the + database. A LISTENing helper program running outside the database can + perform actions when it gets a NOTIFY after a transaction commits. See: + . + + + + + -- 1.7.11.2