On Mon, 17 Aug 2015 12:01:58 +0200 Clemens Ladisch <clemens at ladisch.de> wrote:
> Just because the ORDER BY clause refers to a column of the > SELECT clause does not mean that the value is not computed > a second time. Let's at least recognize that as a bug. ORDER BY shouldn't interpret SQL or invoke functions. It's not even properly part of the SELECT statement, but is rather just a post-SELECT filter. Any changes to the behavior of ORDER BY effected by changing the syntax in semantically equivalent ways is only further evidence of the bug. ORDER BY should evaluate the *data* only. In the case of random(), like any other function it gets invoked once, by SELECT, and produces a value. That value is the one that ORDER BY should operate on. --jkl