All columns required by the query are available via the Primary index.
All columns required by the query are available via a Join Index.
All columns required by the query are available via the Hash Index
The PE covers the query by looking into cache to see if the same query has been run in the last 240 minutes. If it has been cached the PE doesn't have to generate steps for the AMPs.