Thank you for the contribution David, just a couple of notes.

1- Thread was going to be 10 years old on September 19th - now we will have to wait other 10 years for the big party!

2- Function Based Indexes are primarily used to avoid predicate invalidation when there is no way of avoiding the use of a built-in-function e.g. truncate(), etc.

3- Bitmap indexes are not designed to be used alone, bitmap indexes perform better when a number of them exist and are used on the predicate e.g. you want to select a RED car of the COMPACT type that has to have AUTOMATIC transmition and, has to have A/C - In this particular case four bitmap indexes would work together to return the few that comply with the search criteria.

Hope this helps.