Re: wCTE behaviour

David Fetter <david@fetter.org>

From: David Fetter <david@fetter.org>
To: Marko Tiikkaja <marko.tiikkaja@cs.helsinki.fi>
Cc: Tom Lane <tgl@sss.pgh.pa.us>, Yeb Havinga <yebhavinga@gmail.com>, "pgsql-hackers@postgresql.org" <pgsql-hackers@postgresql.org>
Date: 2010-11-13T18:44:25Z
Lists: pgsql-hackers
On Sat, Nov 13, 2010 at 05:23:34PM +0200, Marko Tiikkaja wrote:
> On 2010-11-13 5:08 PM +0200, Tom Lane wrote:
> >Marko Tiikkaja<marko.tiikkaja@cs.helsinki.fi>  writes:
> >>On 13 Nov 2010, at 15:41, David Fetter<david@fetter.org>  wrote:
> >>>Similarly, if a normal CTE called a data-changing function but
> >>>was nevertheless not referred to, it would still run.
> >
> >>Actually, it wouldn't.
> >
> >Indeed, and that was considered a feature when we did it.  I think
> >that having wCTEs behave arbitrarily differently on this point
> >might be a bad idea.
> 
> So these queries would behave differently?
> 
> WITH t AS (DELETE FROM foo RETURNING *) SELECT 1 WHERE false;
> 
> WITH t AS (DELETE FROM foo RETURNING *) SELECT 1 FROM t LIMIT 0;

No.

Cheers,
David.
-- 
David Fetter <david@fetter.org> http://fetter.org/
Phone: +1 415 235 3778  AIM: dfetter666  Yahoo!: dfetter
Skype: davidfetter      XMPP: david.fetter@gmail.com
iCal: webcal://www.tripit.com/feed/ical/people/david74/tripit.ics

Remember to vote!
Consider donating to Postgres: http://www.postgresql.org/about/donate