blob: ec6bf3b732f8fd93bdd0a1def7e1c4a3d4c9caf7 [file] [log] [blame]
package edu.uci.ics.asterix.optimizer.rules.am;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import edu.uci.ics.asterix.metadata.entities.Dataset;
import edu.uci.ics.asterix.metadata.entities.Index;
/**
* Context for analyzing the applicability of a single access method.
*/
public class AccessMethodAnalysisContext {
public List<IOptimizableFuncExpr> matchedFuncExprs = new ArrayList<IOptimizableFuncExpr>();
// Contains candidate indexes and a list of integers that index into matchedFuncExprs.
// We are mapping from candidate indexes to a list of function expressions
// that match one of the index's expressions.
public HashMap<Index, List<Integer>> indexExprs = new HashMap<Index, List<Integer>>();
// Maps from index to the dataset it is indexing.
public HashMap<Index, Dataset> indexDatasetMap = new HashMap<Index, Dataset>();
public void addIndexExpr(Dataset dataset, Index index, Integer exprIndex) {
List<Integer> exprs = indexExprs.get(index);
if (exprs == null) {
exprs = new ArrayList<Integer>();
indexExprs.put(index, exprs);
}
exprs.add(exprIndex);
indexDatasetMap.put(index, dataset);
}
public List<Integer> getIndexExprs(Index index) {
return indexExprs.get(index);
}
}