On 2016-09-02 09:05:35 -0500, Kevin Grittner wrote: > On Fri, Sep 2, 2016 at 3:31 AM, Robert Haas <robertmh...@gmail.com> wrote: > > On Tue, Aug 23, 2016 at 3:10 AM, Andres Freund <and...@anarazel.de> wrote: > > >> =# SELECT * FROM few, ROWS FROM(generate_series(1,3)); > >> ┌────┬─────────────────┐ > >> │ id │ generate_series │ > >> ├────┼─────────────────┤ > >> │ 1 │ 1 │ > >> │ 2 │ 1 │ > >> │ 1 │ 2 │ > >> │ 2 │ 2 │ > >> │ 1 │ 3 │ > >> │ 2 │ 3 │ > >> └────┴─────────────────┘ > >> (6 rows) > >> surely isn't what was intended. So the join order needs to be enforced. > > > > In general, we've been skeptical about giving any guarantees about > > result ordering.
Well, it's historically how we behaved for SRFs. I'm pretty sure that people will be confused if SELECT generate_series(1, 10) FROM sometbl; suddenly returns rows in an order that reverse from what generate_series() returns. > + > > I think it is a very bad idea to move away from the statement that > a query generates a set of rows, and that no order is guaranteed > unless the top level has an ORDER BY clause. How hard is it to add > ORDER BY 1, 2 to the above query? Let the optimizer notice when a > node returns data in the needed order and skip the sort if possible. There's no such infrastructure for SRFS/ROWS FROM. Andres -- Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-hackers