Re: Implement targetlist SRFs using ROWS FROM() (was Changed SRF in targetlist handling)
От | Tom Lane |
---|---|
Тема | Re: Implement targetlist SRFs using ROWS FROM() (was Changed SRF in targetlist handling) |
Дата | |
Msg-id | 3999.1473694177@sss.pgh.pa.us обсуждение исходный текст |
Ответ на | Re: Implement targetlist SRFs using ROWS FROM() (was Changed SRF in targetlist handling) (Andres Freund <andres@anarazel.de>) |
Ответы |
Re: Implement targetlist SRFs using ROWS FROM() (was
Changed SRF in targetlist handling)
|
Список | pgsql-hackers |
Andres Freund <andres@anarazel.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 betweenSELECT a, b FROM ... ORDER BY srf(); andSELECT 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
В списке pgsql-hackers по дате отправления: