Merlin Moncure <mmoncure@xxxxxxxxx> writes: > Can't it be forced like this (assuming it is in fact a vanilla order > by problem)? > EXPLAIN DELETE FROM test USING (SELECT g FROM test ORDER BY > ctid FOR UPDATE) x where x.g = test.g; > (emphasis on 'for update') Hm ... yeah, that might work, once you redefine the problem as "get the row locks in a consistent order" rather than "do the updates in a consistent order". But I'd be inclined to phrase it as EXPLAIN DELETE FROM test USING (SELECT ctid FROM test ORDER BY g FOR UPDATE) x where x.ctid = test.ctid; I'm not sure that "ORDER BY ctid" is really very meaningful here; think about FOR UPDATE switching its attention to updated versions of rows. regards, tom lane -- Sent via pgsql-performance mailing list (pgsql-performance@xxxxxxxxxxxxxx) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-performance