getCacheKey will throw NPE. 
However I believe, we should not even cache select queries coz, they dont have any complex postaggs or agg calculation, it just selects rows from segments, also someone iterating over complete segment will end up adding whole segment to the cache