@Override public void prepare() { if (condition != null) { condition.mapColumns(targetTableFilter, 0); condition = condition.optimize(session); condition.createIndexConditions(session, targetTableFilter); } for (Column c : columns) { Expression e = expressionMap.get(c); e.mapColumns(targetTableFilter, 0); if (sourceTableFilter!=null){ e.mapColumns(sourceTableFilter, 0); } expressionMap.put(c, e.optimize(session)); } TableFilter[] filters; if(sourceTableFilter==null){ filters = new TableFilter[] { targetTableFilter }; } else{ filters = new TableFilter[] { targetTableFilter, sourceTableFilter }; } PlanItem item = targetTableFilter.getBestPlanItem(session, filters, 0, ExpressionVisitor.allColumnsForTableFilters(filters)); targetTableFilter.setPlanItem(item); targetTableFilter.prepare(); }
@Override public void prepare() { if (condition != null) { condition.mapColumns(targetTableFilter, 0); if (sourceTableFilter != null) { condition.mapColumns(sourceTableFilter, 0); } condition = condition.optimize(session); condition.createIndexConditions(session, targetTableFilter); } TableFilter[] filters; if (sourceTableFilter == null) { filters = new TableFilter[] { targetTableFilter }; } else { filters = new TableFilter[] { targetTableFilter, sourceTableFilter }; } PlanItem item = targetTableFilter.getBestPlanItem(session, filters, 0, ExpressionVisitor.allColumnsForTableFilters(filters)); targetTableFilter.setPlanItem(item); targetTableFilter.prepare(); }
item.setNestedJoinPlan(nestedJoin.getBestPlanItem(s, filters, filter, allColumnsSet)); filter++; } while (filters[filter] != join); item.setJoinPlan(join.getBestPlanItem(s, filters, filter, allColumnsSet));
t.debug("Plan : for table filter {0}", tableFilter); PlanItem item = tableFilter.getBestPlanItem(session, allFilters, i, allColumnsSet); planItems.put(tableFilter, item); if (t.isDebugEnabled()) {
public double calculateCost(Session session) throws SQLException { double cost = 1; boolean invalidPlan = false; for (int i = 0; i < allFilters.length; i++) { TableFilter tableFilter = allFilters[i]; PlanItem item = tableFilter.getBestPlanItem(session); planItems.put(tableFilter, item); cost += cost * item.cost; setEvaluatable(tableFilter, true); Expression on = tableFilter.getJoinCondition(); if (on != null) { if (!on.isEverything(ExpressionVisitor.EVALUATABLE)) { invalidPlan = true; break; } } } if (invalidPlan) { cost = 1. / 0.; // Infinity } for (int i = 0; i < allFilters.length; i++) { setEvaluatable(allFilters[i], false); } return cost; }
@Override public void prepare() { if (condition != null) { condition.mapColumns(tableFilter, 0); condition = condition.optimize(session); condition.createIndexConditions(session, tableFilter); } for (int i = 0, size = columns.size(); i < size; i++) { Column c = columns.get(i); Expression e = expressionMap.get(c); e.mapColumns(tableFilter, 0); expressionMap.put(c, e.optimize(session)); } TableFilter[] filters = new TableFilter[] { tableFilter }; PlanItem item = tableFilter.getBestPlanItem(session, filters, 0, ExpressionVisitor.allColumnsForTableFilters(filters)); tableFilter.setPlanItem(item); tableFilter.prepare(); }
@Override public void prepare() { if (condition != null) { condition.mapColumns(tableFilter, 0); condition = condition.optimize(session); condition.createIndexConditions(session, tableFilter); } for (int i = 0, size = columns.size(); i < size; i++) { Column c = columns.get(i); Expression e = expressionMap.get(c); e.mapColumns(tableFilter, 0); expressionMap.put(c, e.optimize(session)); } TableFilter[] filters = new TableFilter[] { tableFilter }; PlanItem item = tableFilter.getBestPlanItem(session, filters, 0, ExpressionVisitor.allColumnsForTableFilters(filters)); tableFilter.setPlanItem(item); tableFilter.prepare(); }
public void prepare() throws SQLException { if (condition != null) { condition.mapColumns(tableFilter, 0); condition = condition.optimize(session); condition.createIndexConditions(session, tableFilter); } PlanItem item = tableFilter.getBestPlanItem(session); tableFilter.setPlanItem(item); tableFilter.prepare(); }
@Override public void prepare() { if (condition != null) { condition.mapColumns(tableFilter, 0); condition = condition.optimize(session); condition.createIndexConditions(session, tableFilter); } TableFilter[] filters = new TableFilter[] { tableFilter }; PlanItem item = tableFilter.getBestPlanItem(session, filters, 0, ExpressionVisitor.allColumnsForTableFilters(filters)); tableFilter.setPlanItem(item); tableFilter.prepare(); }
@Override public void prepare() { if (condition != null) { condition.mapColumns(tableFilter, 0); condition = condition.optimize(session); condition.createIndexConditions(session, tableFilter); } TableFilter[] filters = new TableFilter[] { tableFilter }; PlanItem item = tableFilter.getBestPlanItem(session, filters, 0, ExpressionVisitor.allColumnsForTableFilters(filters)); tableFilter.setPlanItem(item); tableFilter.prepare(); }
public void prepare() throws SQLException { if (condition != null) { condition.mapColumns(tableFilter, 0); condition = condition.optimize(session); condition.createIndexConditions(session, tableFilter); } for (int i = 0; i < expressions.length; i++) { Expression expr = expressions[i]; if (expr != null) { expr.mapColumns(tableFilter, 0); expressions[i] = expr.optimize(session); } } PlanItem item = tableFilter.getBestPlanItem(session); tableFilter.setPlanItem(item); tableFilter.prepare(); }
item.setNestedJoinPlan(nestedJoin.getBestPlanItem(s, filters, filter, allColumnsSet)); filter++; } while (filters[filter] != join); item.setJoinPlan(join.getBestPlanItem(s, filters, filter, allColumnsSet));
item.setNestedJoinPlan(nestedJoin.getBestPlanItem(s, filters, filter, allColumnsSet)); filter++; } while (filters[filter] != join); item.setJoinPlan(join.getBestPlanItem(s, filters, filter, allColumnsSet));
t.debug("Plan : for table filter {0}", tableFilter); PlanItem item = tableFilter.getBestPlanItem(session, allFilters, i, allColumnsSet); planItems.put(tableFilter, item); if (t.isDebugEnabled()) {
t.debug("Plan : for table filter {0}", tableFilter); PlanItem item = tableFilter.getBestPlanItem(session, allFilters, i, allColumnsSet); planItems.put(tableFilter, item); if (t.isDebugEnabled()) {
item.setJoinPlan(join.getBestPlanItem(session));