@Override public ExecutionPlan prepare() { if (plan != null) { return plan; } pushDown(); plan = query.getBestSelectorExecutionPlan(createFilter(true)); return plan; }
@Override public ExecutionPlan prepare() { if (plan != null) { return plan; } pushDown(); plan = query.getBestSelectorExecutionPlan(createFilter(true)); return plan; }
@Override public ExecutionPlan prepare() { if (plan != null) { return plan; } pushDown(); plan = query.getBestSelectorExecutionPlan(createFilter(true)); return plan; }
@Override public String getIndexCostInfo(NodeState rootState) { StringBuilder buff = new StringBuilder(); buff.append(quoteJson(selectorName)).append(": "); QueryIndex index = getIndex(); if (index != null) { if (index instanceof AdvancedQueryIndex) { IndexPlan p = plan.getIndexPlan(); buff.append("{ perEntry: ").append(p.getCostPerEntry()); buff.append(", perExecution: ").append(p.getCostPerExecution()); buff.append(", count: ").append(p.getEstimatedEntryCount()); buff.append(" }"); } else { buff.append(index.getCost(createFilter(true), rootState)); } } return buff.toString(); }
@Override public String getIndexCostInfo(NodeState rootState) { StringBuilder buff = new StringBuilder(); buff.append(quoteJson(selectorName)).append(": "); QueryIndex index = getIndex(); if (index != null) { if (index instanceof AdvancedQueryIndex) { IndexPlan p = plan.getIndexPlan(); buff.append("{ perEntry: ").append(p.getCostPerEntry()); buff.append(", perExecution: ").append(p.getCostPerExecution()); buff.append(", count: ").append(p.getEstimatedEntryCount()); buff.append(" }"); } else { buff.append(index.getCost(createFilter(true), rootState)); } } return buff.toString(); }
@Override public String getIndexCostInfo(NodeState rootState) { StringBuilder buff = new StringBuilder(); buff.append(quoteJson(selectorName)).append(": "); QueryIndex index = getIndex(); if (index != null) { if (index instanceof AdvancedQueryIndex) { IndexPlan p = plan.getIndexPlan(); buff.append("{ perEntry: ").append(p.getCostPerEntry()); buff.append(", perExecution: ").append(p.getCostPerExecution()); buff.append(", count: ").append(p.getEstimatedEntryCount()); buff.append(" }"); } else { buff.append(index.getCost(createFilter(true), rootState)); } } return buff.toString(); }
@Override public String getPlan(NodeState rootState) { StringBuilder buff = new StringBuilder(); buff.append(toString()); buff.append(" /* "); QueryIndex index = getIndex(); if (index != null) { if (index instanceof AdvancedQueryIndex) { AdvancedQueryIndex adv = (AdvancedQueryIndex) index; IndexPlan p = plan.getIndexPlan(); buff.append(adv.getPlanDescription(p, rootState)); } else { buff.append(index.getPlan(createFilter(true), rootState)); } } else { buff.append("no-index"); } if (!selectorConstraints.isEmpty()) { buff.append(" where ").append(new AndImpl(selectorConstraints).toString()); } buff.append(" */"); return buff.toString(); }
@Override public String getPlan(NodeState rootState) { StringBuilder buff = new StringBuilder(); buff.append(toString()); buff.append(" /* "); QueryIndex index = getIndex(); if (index != null) { if (index instanceof AdvancedQueryIndex) { AdvancedQueryIndex adv = (AdvancedQueryIndex) index; IndexPlan p = plan.getIndexPlan(); buff.append(adv.getPlanDescription(p, rootState)); } else { buff.append(index.getPlan(createFilter(true), rootState)); } } else { buff.append("no-index"); } if (!selectorConstraints.isEmpty()) { buff.append(" where ").append(new AndImpl(selectorConstraints).toString()); } buff.append(" */"); return buff.toString(); }
@Override public String getPlan(NodeState rootState) { StringBuilder buff = new StringBuilder(); buff.append(toString()); buff.append(" /* "); QueryIndex index = getIndex(); if (index != null) { if (index instanceof AdvancedQueryIndex) { AdvancedQueryIndex adv = (AdvancedQueryIndex) index; IndexPlan p = plan.getIndexPlan(); buff.append(adv.getPlanDescription(p, rootState)); } else { buff.append(index.getPlan(createFilter(true), rootState)); } } else { buff.append("no-index"); } if (!selectorConstraints.isEmpty()) { buff.append(" where ").append(new AndImpl(selectorConstraints).toString()); } buff.append(" */"); return buff.toString(); }
@Override public void execute(NodeState rootState) { QueryIndex index = plan.getIndex(); if (index == null) { cursor = Cursors.newPathCursor(new ArrayList<String>(), query.getSettings()); return; } IndexPlan p = plan.getIndexPlan(); if (p != null) { p.setFilter(createFilter(false)); AdvancedQueryIndex adv = (AdvancedQueryIndex) index; cursor = adv.query(p, rootState); } else { cursor = index.query(createFilter(false), rootState); } }
@Override public void execute(NodeState rootState) { QueryIndex index = plan.getIndex(); if (index == null) { cursor = Cursors.newPathCursor(new ArrayList<String>(), query.getSettings()); return; } IndexPlan p = plan.getIndexPlan(); if (p != null) { p.setFilter(createFilter(false)); AdvancedQueryIndex adv = (AdvancedQueryIndex) index; cursor = adv.query(p, rootState); } else { cursor = index.query(createFilter(false), rootState); } }
private void executeInternal(NodeState rootState) { QueryIndex index = plan.getIndex(); timerDuration = null; if (index == null) { cursor = Cursors.newPathCursor(new ArrayList<String>(), query.getSettings()); planIndexName = "traverse"; return; } IndexPlan p = plan.getIndexPlan(); if (p != null) { planIndexName = p.getPlanName(); p.setFilter(createFilter(false)); AdvancedQueryIndex adv = (AdvancedQueryIndex) index; cursor = adv.query(p, rootState); } else { FilterImpl f = createFilter(false); planIndexName = index.getIndexName(f, rootState); cursor = index.query(f, rootState); } }