I have a users table with a username column, and a B-tree index in this column. When I check the explain plan of the following query: select username from users where username like 'A%' I can see that Oracle performs an index range scan on the index to extract the required information, which is absolutely OK, but during the index range scan Oracle uses the following predicates: access(username like 'A%') filter(username like 'A%').
Why does Oracle use both of them? They are completely the same, so I think one of them would be enough.