From 9cf12dfd4e9e5301d7f8cf48e1eead1626c42127 Mon Sep 17 00:00:00 2001 From: Robert Haas Date: Fri, 28 Oct 2011 12:02:04 -0400 Subject: [PATCH] Clarify that ORDER BY/FOR UPDATE can't malfunction at higher iso levels. Kevin Grittner --- doc/src/sgml/ref/select.sgml | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/doc/src/sgml/ref/select.sgml b/doc/src/sgml/ref/select.sgml index 636435fe1d..cc8cd48583 100644 --- a/doc/src/sgml/ref/select.sgml +++ b/doc/src/sgml/ref/select.sgml @@ -1281,7 +1281,8 @@ ROLLBACK TO s; - It is possible for a SELECT command using ORDER + It is possible for a SELECT command running at the READ + COMMITTED transaction isolation level and using ORDER BY and FOR UPDATE/SHARE to return rows out of order. This is because ORDER BY is applied first. The command sorts the result, but might then block trying to obtain a lock @@ -1302,6 +1303,13 @@ SELECT * FROM (SELECT * FROM mytable FOR UPDATE) ss ORDER BY column1; only if concurrent updates of the ordering columns are expected and a strictly sorted result is required. + + + At the REPEATABLE READ or SERIALIZABLE + transaction isolation level this would cause a serialization failure (with + a SQLSTATE of '40001'), so there is + no possibility of receiving rows out of order under these isolation levels. + -- 2.40.0