"Merlin Moncure" <[EMAIL PROTECTED]> writes: > So, for a table t with a three part key over columns a,b,c, the query to > read the next value from t for given values a1, b1, c1 is
> select * from t where > a >= a1 and > (a > a1 or b >= b1) and > (a > a1 or b > b1 or c > c1) > In about 95% of cases, the planner correctly selects the index t(a,b,c) > and uses it. I'm surprised it's that good. Why not do select * from t where a >= a1 and b >= b1 and c >= c1 order by a,b,c limit 1 offset 1; which has a much more obvious translation to an indexscan. regards, tom lane ---------------------------(end of broadcast)--------------------------- TIP 9: the planner will ignore your desire to choose an index scan if your joining column's datatypes do not match