On Fri, 10 Dec 2004, Tomas [iso-8859-1] Skäre wrote: > I have a table that looks like this: > > Table "public.cjm_object" > Column | Type | Modifiers > -----------+-------------------+----------- > timestamp | bigint | not null > jobid | bigint | not null > objectid | bigint | not null > class | integer | not null > field | character varying | not null
In 7.4.x and earlier, you need to cast the value you're comparing to into a bigint in order to make sure the indexes are used (in your timestamp case it appears to work because the value doesn't fit in a plain integer). 8.0 should handle this better. > But when doing a search with objectid, class and field, it doesn't use > the idx_cjm_object1 index. > db=# explain analyze select * from cjm_object where objectid=4534 and > class=12 and field='paroid'; Using one of objectid=4534::bigint objectid='4534' objectid=CAST(4534 as bigint) rather than objectid=4534 should make this indexable in 7.4.x. ---------------------------(end of broadcast)--------------------------- TIP 8: explain analyze is your friend