Re: Why is it not using an index? - Mailing list pgsql-general

From Gregory Wood
Subject Re: Why is it not using an index?
Date
Msg-id 002801c1cc4f$25dba980$7889ffcc@comstock.com
Whole thread Raw
In response to Why is it not using an index?  (Dmitry Tkach <dmitry@openratings.com>)
List pgsql-general
> explain select * from a where x=3;

PostgreSQL is treating 3 as an int4 (integer) type, whereas x is an int2
(smallint) type. Try casting the constant as a smallint and it should use
the index:

explain select * from a where x=3::smallint;

Greg

----- Original Message -----
From: "Dmitry Tkach" <dmitry@openratings.com>
To: <pgsql-general@postgresql.org.pgsql-sql@postgresql.org>
Sent: Friday, March 15, 2002 2:07 PM
Subject: [GENERAL] Why is it not using an index?


> This must be really simple, but I just can't get it :-(
> I have a table (a) with a single column (x):
>
>            Table "a"
>   Attribute |   Type   | Modifier
> -----------+----------+----------
>   x         | smallint |
> Index: a_idx
>
>
>     Index "a_idx"
>   Attribute |   Type
> -----------+----------
>   x         | smallint
> btree
>
> The table has 10000000 rows....
>
> Now, how come, when I do:
>
> explain select * from a where x=3;
>
> it says:
>
> Seq Scan on bset  (cost=100000000.00..100175934.05 rows=303 width=2)
>
> Why is it not using a_idx???
>
> I even tried set enable_seqscan to off - makes no difference :-(
>
> Any idea what is going on?
>
> Thanks a lot!
>
> Dima
>
>
> ---------------------------(end of broadcast)---------------------------
> TIP 5: Have you checked our extensive FAQ?
>
> http://www.postgresql.org/users-lounge/docs/faq.html
>


pgsql-general by date:

Previous
From: Stephan Szabo
Date:
Subject: Re: [SQL] Why is it not using an index?
Next
From: "Cornelia Boenigk"
Date:
Subject: How to catch NOTIFY messages with PHP