Thread: Indexes not used for "min()"
Your name : Patrick=20 Your email address : Valsecchi System Configuration --------------------- Architecture (example: Intel Pentium) : Intel Pentium Operating System (example: Linux 2.0.26 ELF) : Linux 2.4.20 PostgreSQL version (example: PostgreSQL-7.3.3): PostgreSQL-7.3.3 Compiler used (example: gcc 2.95.2) : gcc 3.2 Please enter a FULL description of your problem: ------------------------------------------------ When doing the following query, it's obvious that postgres should use the index: stats=3D# explain select min(time) from call; QUERY PLAN ------------------------------------------------------------------------ Aggregate (cost=3D49779.82..49779.82 rows=3D1 width=3D8) -> Seq Scan on stb_call (cost=3D0.00..44622.06 rows=3D2063106 width=3D= 8) (2 rows) stats=3D# \d call Table "public.call" Column | Type | Modifiers ---------+--------------------------+----------- a | integer | not null b | integer | not null time | timestamp with time zone | not null d | character varying(4) | e | character varying(4) | f | character varying(4) | g | character varying(15) | not null h | character varying(7) | i | smallint | not null Indexes: call_time btree ("time") stats=3D# select count(*) from call; count --------- 2063106 (1 row) If you have any question or comment, please contact me directly, I'm not suscribed to the list.
On Tue, Jul 29, 2003 at 09:48:37 -0600, "Valsecchi, Patrick" <patrick.valsecchi@nagrastar.com> wrote: > > When doing the following query, it's obvious that postgres should use > the index: > > stats=# explain select min(time) from call; This has been discussed on the mailing lists numerous times. If you are interested in details you can search the archives. If you just want a faster equivalent query use: select time from call order by time limit 1;