| From: | Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> |
|---|---|
| To: | Andres Freund <andres(at)anarazel(dot)de> |
| Cc: | pgsql-hackers(at)postgresql(dot)org |
| Subject: | Re: Implement targetlist SRFs using ROWS FROM() (was Changed SRF in targetlist handling) |
| Date: | 2016-09-12 15:29:37 |
| Message-ID: | 3999.1473694177@sss.pgh.pa.us |
| Views: | Whole Thread | Raw Message | Download mbox | Resend email |
| Thread: | |
| Lists: | pgsql-hackers |
Andres Freund <andres(at)anarazel(dot)de> writes:
> 0002-Shore-up-some-weird-corner-cases-for-targetlist-SRFs.patch
> Forbid UPDATE ... SET foo = SRF() and ORDER BY / GROUP BY containing
> SRFs that would change the number of returned rows. Without the
> latter e.g. SELECT 1 ORDER BY generate_series(1,10); returns 10 rows.
I'm on board with disallowing SRFs in UPDATE, because it produces
underdetermined and unspecified results; but the other restriction
seems 100% arbitrary. There is no semantic difference between
SELECT a, b FROM ... ORDER BY srf();
and
SELECT a, b, srf() FROM ... ORDER BY 3;
except that in the first case the ordering column doesn't get returned to
the client. I do not see why that's so awful that we should make it fail
after twenty years of allowing it. And I certainly don't see why there
would be an implementation reason why we couldn't support it anymore
if we can still do the second one.
regards, tom lane
| From | Date | Subject | |
|---|---|---|---|
| Next Message | Claudio Freire | 2016-09-12 15:47:28 | Re: Tuplesort merge pre-reading |
| Previous Message | Claudio Freire | 2016-09-12 15:02:53 | Re: Tuplesort merge pre-reading |