Joseph Shraibman wrote:
I have this index:

"directory_lower_username_seg_key" unique, btree (lower(username) text_pattern_ops, seg)

... but my query refuses to use that index.
[local]:owl=>explain select * from directory where lower(username) = '[email protected]';
                          QUERY PLAN
---------------------------------------------------------------
 Seq Scan on directory  (cost=0.00..860.75 rows=102 width=575)
   Filter: (lower(username) = '[email protected]'::text)
(2 rows)
[local]:owl=>CREATE INDEX directory_lower_username_seg_key1 ON directory (lower(username),seg);
CREATE INDEX
[local]:owl=>explain select * from directory where lower(username) = '[email protected]';
                                               QUERY PLAN
--------------------------------------------------------------------------------------------------------- Index Scan using directory_lower_username_seg_key1 on directory (cost=0.00..377.01 rows=102 width=575)
   Index Cond: (lower(username) = '[email protected]'::text)
(2 rows)

[local]:owl=>select version();
                                                 version
--------------------------------------------------------------------------------------------------------- PostgreSQL 7.4.7 on i686-pc-linux-gnu, compiled by GCC gcc (GCC) 3.2.2 20030222 (Red Hat Linux 3.2.2-5)
(1 row)


So what gives?

---------------------------(end of broadcast)---------------------------
TIP 3: Have you checked our extensive FAQ?

              http://www.postgresql.org/docs/faq


What happens if you 'SET enable_seqscan TO OFF' and try the query again? I've had a couple of instances where the planner just doesn't like my index but once it is told to use it I get a nice performance boost.

By the way, I'm still kind of a beginner so if someone else has a more enlightened suggestion, try their ideas first.

Madison

---------------------------(end of broadcast)---------------------------
TIP 1: if posting/reading through Usenet, please send an appropriate
      subscribe-nomail command to [EMAIL PROTECTED] so that your
      message can get through to the mailing list cleanly

Reply via email to