SET TRANSACTION .. DEFERRABLE missing docs?
I was reading through ref/set_transaction.sgml and noticed that the
only documentation of DEFERRABLE is that it's a PostgreSQL language
extension, not anything about what it actually does. Same for begin
and start_transaction. I see it described in README-SSI and for the
guc default_transaction_deferrable, but I think it needs to be
documented on that ref page as well.. (in fact, the guc docs refer to
the reference page, which doesn't have more info)
--
Magnus Hagander
Me: http://www.hagander.net/
Work: http://www.redpill-linpro.com/
Magnus Hagander wrote:
I was reading through ref/set_transaction.sgml and noticed that the
only documentation of DEFERRABLE is that it's a PostgreSQL language
extension, not anything about what it actually does. Same for begin
and start_transaction. I see it described in README-SSI and for the
guc default_transaction_deferrable, but I think it needs to be
documented on that ref page as well.. (in fact, the guc docs refer
to the reference page, which doesn't have more info)
Thanks for spotting that. I'll put something together.
-Kevin
Import Notes
Resolved by subject fallback
Magnus Hagander wrote:
I was reading through ref/set_transaction.sgml and noticed that the
only documentation of DEFERRABLE is that it's a PostgreSQL language
extension, not anything about what it actually does. Same for begin
and start_transaction. I see it described in README-SSI and for the
guc default_transaction_deferrable, but I think it needs to be
documented on that ref page as well.. (in fact, the guc docs refer to
the reference page, which doesn't have more info)
I think the attached covers it.
-Kevin
Attachments:
ssi-set-transaction-deferrable.patchapplication/octet-stream; name=ssi-set-transaction-deferrable.patchDownload
*** a/doc/src/sgml/ref/set_transaction.sgml
--- b/doc/src/sgml/ref/set_transaction.sgml
***************
*** 135,140 **** SET SESSION CHARACTERISTICS AS TRANSACTION <replaceable class="parameter">transa
--- 135,151 ----
among those listed. This is a high-level notion of read-only that
does not prevent all writes to disk.
</para>
+
+ <para>
+ The <literal>DEFERRABLE</literal> transaction property has no effect
+ unless the transaction is also <literal>SERIALIZABLE</literal> and
+ <literal>READ ONLY</literal>. When all of these properties are set on a
+ transaction, the transaction may block when first acquiring its snapshot,
+ after which it is able to run without the normal overhead of a
+ <literal>SERIALIZABLE</literal> transaction and without any risk of
+ contributing to or being cancelled by a serialization failure. This mode
+ is well suited for long-running reports or backups.
+ </para>
</refsect1>
<refsect1>
Import Notes
Resolved by subject fallback
On 06.03.2011 23:33, Kevin Grittner wrote:
Magnus Hagander wrote:
I was reading through ref/set_transaction.sgml and noticed that the
only documentation of DEFERRABLE is that it's a PostgreSQL language
extension, not anything about what it actually does. Same for begin
and start_transaction. I see it described in README-SSI and for the
guc default_transaction_deferrable, but I think it needs to be
documented on that ref page as well.. (in fact, the guc docs refer to
the reference page, which doesn't have more info)I think the attached covers it.
Thanks, applied.
--
Heikki Linnakangas
EnterpriseDB http://www.enterprisedb.com