Hannu Krosing wrote:
On K, 2005-07-13 at 16:08 +0800, Christopher Kings-Lynne wrote:

Hi,

Does PostgreSQL do the following optimisation:

SELECT * FROM diary WHERE date = '2005-05-01' ORDER BY date;

or in fact even better (for my situation)

SELECT * FROM diary WHERE date BETWEEN '2005-05-01' AND '2005-05-01' ORDER BY date;

Does it know that the input to the sort routine is already sorted and hence is a no-op?


Yes

try EXPLAIN ;)

Doesn't seem like it does:

usatest=# explain select * from users_myfoods_map where date='2004-11-21' order by date;
                                QUERY PLAN
---------------------------------------------------------------------------
 Sort  (cost=17.17..17.48 rows=123 width=22)
   Sort Key: date
   ->  Seq Scan on users_myfoods_map  (cost=0.00..12.90 rows=123 width=22)
         Filter: (date = '2004-11-21'::date)
(4 rows)

The sort cost is non-zero.  Or am I not looking at the right thing...

Chris


---------------------------(end of broadcast)---------------------------
TIP 9: In versions below 8.0, the planner will ignore your desire to
      choose an index scan if your joining column's datatypes do not
      match

Reply via email to