Dynamic temporary index creation
Hardly "so advanced"; this is quite a common feature. Your professor is behind the times! :-) SQLite is one of the simplest databases, yet see section 11 on this page.


  Since the cost of constructing the automatic index is O(NlogN) (where
  N is the number of entries in the table) and the cost of doing a full
  table scan is only O(N), an automatic index will only be created if
  SQLite expects that the lookup will be run more than logN times during
  the course of the SQL statement