On Tue, Feb 27, 2007 at 15:07:06 +0100, "Florian G. Pflug" <fgp@phlo.org> wrote:
>
> select * from t1, (delete from t2 returning t2.t1_id) where t1.id =
> t2.t1_id limit 1 ;
>
> I for my part couldn't even say what I'd expect that query to do.
I would expect it to delete all rows from t2 but only return 1 row as output.
I think the ambiguous cases are going to come from cases where deleting
some rows in a subquery changes which rows will be deleted in subsequent
executions of the same subquery. Something like deleting the row with the
least value for some column.