Robert Haas wrote:
Currently, use of window functions always forces sorting, ...

That's not strictly true, actually. No sort is done if the input happens to be sorted already, as in:

postgres=# CREATE TABLE foo (id integer PRIMARY KEY);
NOTICE: CREATE TABLE / PRIMARY KEY will create implicit index "foo_pkey" for table "foo"
CREATE TABLE
postgres=# INSERT INTO foo SELECT generate_series(1,100);
INSERT 0 100
postgres=# explain SELECT SUM(id) OVER (ORDER BY id) FROM (SELECT * FROM foo WHERE id < 100) AS a; QUERY PLAN
-----------------------------------------------------------------------------
 WindowAgg  (cost=0.00..70.25 rows=800 width=4)
-> Index Scan using foo_pkey on foo (cost=0.00..58.25 rows=800 width=4)
         Index Cond: (id < 100)
(3 rows)

--
  Heikki Linnakangas
  EnterpriseDB   http://www.enterprisedb.com

--
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers

Reply via email to