On Wed, Oct 7, 2009 at 4:20 PM, Marko Tiikkaja <marko.tiikk...@cs.helsinki.fi> wrote: > Jaime Casanova wrote: >> >> On Wed, Oct 7, 2009 at 4:08 PM, Marko Tiikkaja >> <marko.tiikk...@cs.helsinki.fi> wrote: >>> >>> 1) WITH t AS >>> (UPDATE foo SET bar = bar+1 RETURNING *) >>> SELECT * FROM t LIMIT 1; >>> >>> What's problematic here is that only 1 row is read from the CTE, meaning >>> also that only one row is updated which, at least how I see it, is not >>> what we want. The CTE should only store one row and return that after >>> it has completely processed the UPDATE statement. >>> >> >> i'm talking from my ignorance... but AFAIU this should process the >> whole UPDATE and then form a WorkTable with the results... >> what the select reads from that results is another thing... >> > > Right. This is exactly what I'm trying to do, except I think we could > easily optimize this case and store only the first processed row inside > the CTE. >
why? we don't should be thinking in optimizations in this phase -- Atentamente, Jaime Casanova Soporte y capacitación de PostgreSQL Asesoría y desarrollo de sistemas Guayaquil - Ecuador Cel. +59387171157 -- Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-hackers