Description
Compare the following two methods:
1) GridQueryProcessor.querySqlFields - old good entry point for query execution;
2) GridQueryProcessor.querySqlFieldsNoCache - new method for "cache-less" execution.
Note how cache context is used in the first method:
1) First, it helps determine whether query can be converted to "local"
2) Second, it gets query parallelism of current cache, and if it differs from 1, then it turns on distributedJoins.
Neither of this happens in the second implementation. Moreover, I had to throw an exception for local queries, as I didn't know how to handle them properly.
We need to investigate and fix these two deficiencies somehow. Probably some inputs from sergi.vladykin would be required, to understand what is going on.
Our ultimate goal is to make "cache-less" execution as good as the old one.