> > I agree with your idea and try to implement it and will soon attach a > patch with a solution. > Additionally, if those OR constants repeat you'll see ... If all constants are the same value, fine explain select * from x where ((ID = 1) OR (ID = 1) OR (ID = 1)); Index Only Scan using x_id on x (cost=0.42..4.44 rows=1 width=4) Index Cond: (id = 1)
if all values are almost the same, ops explain select * from x where ((ID = 1) OR (ID = 1) OR (ID = 1) OR (ID = 2)); Bitmap Heap Scan on x (cost=17.73..33.45 rows=4 width=4) Recheck Cond: ((id = 1) OR (id = 1) OR (id = 1) OR (id = 2)) -> BitmapOr (cost=17.73..17.73 rows=4 width=0) -> Bitmap Index Scan on x_id (cost=0.00..4.43 rows=1 width=0) Index Cond: (id = 1) -> Bitmap Index Scan on x_id (cost=0.00..4.43 rows=1 width=0) Index Cond: (id = 1) -> Bitmap Index Scan on x_id (cost=0.00..4.43 rows=1 width=0) Index Cond: (id = 1) -> Bitmap Index Scan on x_id (cost=0.00..4.43 rows=1 width=0) Index Cond: (id = 2) thanks Marcos