Le 2012-08-06 à 01:39, Maxim Boguk a écrit : I know that for condition like ((field1>value1) or (field1=value1 and field2>value2)) I could built index on (field1, field2) and use indexable condition like (field1, field2) > (value1, value2).
However, I have very tricky query which requires an indexable condition like (field1>value1) or (field1=value1 and field2<value2). I guess that I could use index definition like ON(field1, field2 DESC) however, I can not build query condition which would use that index effectively.
Is it possible and my mind just went black on simple task?
PS: field2 is varchar type so I couldn't using the negative values trick build index ON(field1, (-field2)) and write something like WHERE (field1, -field2) > (value1, -value2).
-- Maxim Boguk Senior Postgresql DBA http://www.postgresql-consulting.ru/
Could you perhaps use bitmapped indexes? Such that you'd have two indexes, and the optimizer would AND the two indexes together?
Hope that helps! François
|