On Thu, 2004-10-14 at 14:02, Tom Lane wrote:
> The FOR UPDATE part executes after the LIMIT part. Arguably this is a
> bad thing, but I'm concerned about the compatibility issues if we change
> it.
I agree backward compat is a concern, but it seems pretty clear to me
that this is not the optimal behavior. If there are any people who
actually need the old behavior, they can nest the FOR UPDATE in a
FROM-clause subselect:
SELECT * FROM foo FOR UPDATE LIMIT 5; -- used to lock the whole table
SELECT * FROM (SELECT * FROM foo FOR UPDATE) x LIMIT 5; -- will always
do so
Would it be sufficient to put a large warning in the "incompatibilities"
section of the release notes?
-Neil