@Override public Index getScanIndex(Session session) { return getBestPlanItem(session, null, null, -1, null, null).getIndex(); }
@Override public Index getScanIndex(Session session, int[] masks, TableFilter[] filters, int filter, SortOrder sortOrder, HashSet<Column> allColumnsSet) { if (createException != null) { String msg = createException.getMessage(); throw DbException.get(ErrorCode.VIEW_IS_INVALID_2, createException, getSQL(), msg); } PlanItem item = getBestPlanItem(session, masks, filters, filter, sortOrder, allColumnsSet); return item.getIndex(); }
PlanItem item = new PlanItem(); item.setIndex(getScanIndex(session)); item.cost = item.getIndex().getCost(session, null, filters, filter, null, allColumnsSet); Trace t = session.getTrace(); if (t.isDebugEnabled()) { t.debug("Table : potential plan item cost {0} index {1}", item.cost, item.getIndex().getPlanSQL());
/** * Set what plan item (index, cost, masks) to use. * * @param item the plan item */ public void setPlanItem(PlanItem item) { if (item == null) { // invalid plan, most likely because a column wasn't found // this will result in an exception later on return; } setIndex(item.getIndex()); masks = item.getMasks(); if (nestedJoin != null) { if (item.getNestedJoinPlan() != null) { nestedJoin.setPlanItem(item.getNestedJoinPlan()); } else { nestedJoin.setScanIndexes(); } } if (join != null) { if (item.getJoinPlan() != null) { join.setPlanItem(item.getJoinPlan()); } else { join.setScanIndexes(); } } }
if (t.isDebugEnabled()) { t.debug("Plan : best plan item cost {0} index {1}", item.cost, item.getIndex().getPlanSQL());
item1.setIndex(table.getScanIndex(s, null, filters, filter, sortOrder, allColumnsSet)); item1.cost = item1.getIndex().getCost(s, null, filters, filter, sortOrder, allColumnsSet);
private int generateInsertValues(int count, Table table) throws IOException { PlanItem plan = table.getBestPlanItem(session, null, null, -1, null, null); Index index = plan.getIndex(); Cursor cursor = index.find(session, null, null); Column[] columns = table.getColumns();
@Override public Index getScanIndex(Session session) { return getBestPlanItem(session, null, null, -1, null, null).getIndex(); }
@Override public Index getScanIndex(Session session) { return getBestPlanItem(session, null, null, -1, null, null).getIndex(); }
public Index getScanIndex(Session session) throws SQLException { if (createException != null) { String msg = createException.getMessage(); throw Message.getSQLException(ErrorCode.VIEW_IS_INVALID_2, new String[] { getSQL(), msg }, createException); } PlanItem item = getBestPlanItem(session, null); return item.getIndex(); }
@Override public Index getScanIndex(Session session, int[] masks, TableFilter[] filters, int filter, SortOrder sortOrder, HashSet<Column> allColumnsSet) { if (createException != null) { String msg = createException.getMessage(); throw DbException.get(ErrorCode.VIEW_IS_INVALID_2, createException, getSQL(), msg); } PlanItem item = getBestPlanItem(session, masks, filters, filter, sortOrder, allColumnsSet); return item.getIndex(); }
@Override public Index getScanIndex(Session session, int[] masks, TableFilter[] filters, int filter, SortOrder sortOrder, HashSet<Column> allColumnsSet) { if (createException != null) { String msg = createException.getMessage(); throw DbException.get(ErrorCode.VIEW_IS_INVALID_2, createException, getSQL(), msg); } PlanItem item = getBestPlanItem(session, masks, filters, filter, sortOrder, allColumnsSet); return item.getIndex(); }
public void setPlanItem(PlanItem item) { setIndex(item.getIndex()); if (join != null) { if (item.getJoinPlan() != null) { join.setPlanItem(item.getJoinPlan()); } } }
PlanItem item = new PlanItem(); item.setIndex(getScanIndex(session)); item.cost = item.getIndex().getCost(session, null, filters, filter, null, allColumnsSet); Trace t = session.getTrace(); if (t.isDebugEnabled()) { t.debug("Table : potential plan item cost {0} index {1}", item.cost, item.getIndex().getPlanSQL());
PlanItem item = new PlanItem(); item.setIndex(getScanIndex(session)); item.cost = item.getIndex().getCost(session, null, filters, filter, null, allColumnsSet); Trace t = session.getTrace(); if (t.isDebugEnabled()) { t.debug("Table : potential plan item cost {0} index {1}", item.cost, item.getIndex().getPlanSQL());
/** * Get the best plan for the given search mask. * * @param masks - null means 'always false' */ public PlanItem getBestPlanItem(Session session, int[] masks) throws SQLException { PlanItem item = new PlanItem(); item.setIndex(getScanIndex(session)); item.cost = item.getIndex().getCost(session, null); ObjectArray indexes = getIndexes(); for (int i = 1; indexes != null && masks != null && i < indexes.size(); i++) { Index index = (Index) indexes.get(i); double cost = index.getCost(session, masks); if (cost < item.cost) { item.cost = cost; item.setIndex(index); } } return item; }
/** * Set what plan item (index, cost, masks) to use. * * @param item the plan item */ public void setPlanItem(PlanItem item) { if (item == null) { // invalid plan, most likely because a column wasn't found // this will result in an exception later on return; } setIndex(item.getIndex()); masks = item.getMasks(); if (nestedJoin != null) { if (item.getNestedJoinPlan() != null) { nestedJoin.setPlanItem(item.getNestedJoinPlan()); } } if (join != null) { if (item.getJoinPlan() != null) { join.setPlanItem(item.getJoinPlan()); } } }
/** * Set what plan item (index, cost, masks) to use. * * @param item the plan item */ public void setPlanItem(PlanItem item) { if (item == null) { // invalid plan, most likely because a column wasn't found // this will result in an exception later on return; } setIndex(item.getIndex()); masks = item.getMasks(); if (nestedJoin != null) { if (item.getNestedJoinPlan() != null) { nestedJoin.setPlanItem(item.getNestedJoinPlan()); } } if (join != null) { if (item.getJoinPlan() != null) { join.setPlanItem(item.getJoinPlan()); } } }
if (t.isDebugEnabled()) { t.debug("Plan : best plan item cost {0} index {1}", item.cost, item.getIndex().getPlanSQL());
item = new PlanItem(); item.setIndex(table.getScanIndex(session)); item.cost = item.getIndex().getCost(session, null); } else { int len = table.getColumns().length;