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

Reply via email to