| From: | "Gregory Wood" <gregw(at)com-stock(dot)com> | 
|---|---|
| To: | "Jean-Luc Lachance" <jllachan(at)nsd(dot)ca> | 
| Cc: | "PostgreSQL-General" <pgsql-general(at)postgresql(dot)org> | 
| Subject: | Re: Why is it not using an index? | 
| Date: | 2002-03-15 20:34:46 | 
| Message-ID: | 003101c1cc60$d98a70e0$7889ffcc@comstock.com | 
| Views: | Whole Thread | Raw Message | Download mbox | Resend email | 
| Thread: | |
| Lists: | pgsql-general pgsql-sql | 
It should be. I think the response you'll get from the people on this list
is that they're happy to accept a patch...
Greg
----- Original Message -----
From: "Jean-Luc Lachance" <jllachan(at)nsd(dot)ca>
To: "Gregory Wood" <gregw(at)com-stock(dot)com>
Cc: "Dmitry Tkach" <dmitry(at)openratings(dot)com>; "PostgreSQL-General"
<pgsql-general(at)postgresql(dot)org>
Sent: Friday, March 15, 2002 3:25 PM
Subject: Re: [GENERAL] Why is it not using an index?
> Really, the PostgreSQL interpreter should be smart enough to figure this
> out by itself...
>
>
> Gregory Wood wrote:
> >
> > > 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(at)openratings(dot)com>
> > To: <pgsql-general(at)postgresql(dot)org(dot)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
> > >
> >
> > ---------------------------(end of broadcast)---------------------------
> > TIP 5: Have you checked our extensive FAQ?
> >
> > http://www.postgresql.org/users-lounge/docs/faq.html
>
> ---------------------------(end of broadcast)---------------------------
> TIP 4: Don't 'kill -9' the postmaster
>
| From | Date | Subject | |
|---|---|---|---|
| Next Message | Fernando Schapachnik | 2002-03-15 20:45:56 | Re: Database quota | 
| Previous Message | Jean-Luc Lachance | 2002-03-15 20:25:47 | Re: Why is it not using an index? | 
| From | Date | Subject | |
|---|---|---|---|
| Next Message | Tom Lane | 2002-03-15 21:00:00 | Re: Why is it not using an index? | 
| Previous Message | Jean-Luc Lachance | 2002-03-15 20:25:47 | Re: Why is it not using an index? |