Nicolas Barbier <nicolas.barbier@gmail.com> writes: > 2015-11-04 Antonin Houska <ah@cybertec.at>: >> (see expand_indexqual_opclause()), I'm not sure any kind of expansion is >> possible for '%abc%' which would result in a b-tree searchable condition.
> I think the question is not about using the b-tree for checking the > condition, but about just retrieving the value for y from the index, > and just using that to check the condition before fetching the > corresponding tuple from the heap.
Bitmap index scans only return TID bitmaps, not index tuples; indeed the underlying index may not store anything recognizable as tuples.
Agreed, though the OP's question was asking why a Filter condition can't be added to a BitmapIndexScan, so that non-qualifying rows can be excluded from the TID bitmap it generates.
We generate this plan
postgres=# explain select * from f where x=5 and y like '%abc%';