this.measureName2IndexMap = measureName2IndexMap;
this.dim2GroupKeyOffsetMap = dimName2GroupKeyOffsetMap;
this.afr = afr;
ScanSpec spec = scanSpecs.get(0);
this.cuboid = spec.getCuboid();
this.groupDimName2Dimension = cuboid.getParentCube().getDimensions();
// constructors of FilteringScanSpecScanner are the ones that will be
// running initial query -- so we probably
// want to parallelize them. except for the first one which we want to
// run in
// the context of the current thread.
List<Future<FilteringScanSpecScanner>> filteringScannerConstructors =
new ArrayList<Future<FilteringScanSpecScanner>>();
Iterator<ScanSpec> iter = scanSpecs.iterator();
ScanSpec firstSpec = iter.next();
for (; iter.hasNext();) {
final ScanSpec ss = iter.next();
Callable<FilteringScanSpecScanner> callable = new Callable<FilteringScanSpecScanner>() {
@Override
public FilteringScanSpecScanner call() throws IOException, HblException {