[jks@jks-work-desktop /tmp/tmp/postgresql-8.2rc1]$
src/tools/make_diff/difforig
./doc/src/sgml/ref/rollback_to.sgml
*** ./doc/src/sgml/ref/rollback_to.sgml.orig 2006-11-27
16:57:41.000000000 -0500
--- ./doc/src/sgml/ref/rollback_to.sgml 2006-11-27 17:02:43.000000000 -0500
***************
*** 69,74 ****
--- 69,80 ----
</para>
<para>
+ Rolling back a savepoint does not release it. It
+ will still be available for rolling back to, and it will still consume
+ shared memory until released.
+ </para>
+
+ <para>
Specifying a savepoint name that has not been established is an error.
</para>
./doc/src/sgml/ref/savepoint.sgml
*** ./doc/src/sgml/ref/savepoint.sgml.orig 2006-11-27
16:30:28.000000000 -0500
--- ./doc/src/sgml/ref/savepoint.sgml 2006-11-27 16:36:37.000000000 -0500
***************
*** 73,78 ****
--- 73,87 ----
Savepoints can only be established when inside a transaction block.
There can be multiple savepoints defined within a transaction.
</para>
+ <para>
+ Savepoints use shared memory. If you use many savepoints without
releasing them, you
+ will run out of shared memory and you may see an error like this in
your log:
+ <programlisting>
+ WARNING: out of shared memory
+ ERROR: out of shared memory
+ HINT: You may need to increase max_locks_per_transaction.
+ </programlisting>
+ </para>
</refsect1>
<refsect1>