private void setEvaluatable(TableFilter filter, boolean b) { filter.setEvaluatable(filter, b); for (Expression e : allConditions) { e.setEvaluatable(filter, b); } } }
/** * Update the filter and join conditions of this and all joined tables with * the information that the given table filter and all nested filter can now * return rows or not. * * @param filter the table filter * @param b the new flag */ public void setEvaluatable(TableFilter filter, boolean b) { filter.setEvaluatable(b); if (filterCondition != null) { filterCondition.setEvaluatable(filter, b); } if (joinCondition != null) { joinCondition.setEvaluatable(filter, b); } if (nestedJoin != null) { // don't enable / disable the nested join filters // if enabling a filter in a joined filter if (this == filter) { nestedJoin.setEvaluatable(nestedJoin, b); } } if (join != null) { join.setEvaluatable(filter, b); } }
private void setEvaluatable(TableFilter f, boolean evaluateable) { for (; f != null; f = f.getJoin()) { f.setEvaluatable(f, evaluateable); TableFilter n = f.getNestedJoin(); if (n != null) { setEvaluatable(n, evaluateable); } } }
private void setEvaluatable(TableFilter join) { if (session.getDatabase().getSettings().nestedJoins) { setEvaluatable(true); return; } // this table filter is now evaluatable - in all sub-joins do { Expression e = join.getJoinCondition(); if (e != null) { e.setEvaluatable(this, true); } TableFilter n = join.getNestedJoin(); if (n != null) { setEvaluatable(n); } join = join.getJoin(); } while (join != null); }
private Cursor find(TableMate tableMate) { try { tableFilter.setEvaluatable(false); ConditionExtractor extractor = new ConditionExtractor(tableFilter); this.alwaysFalse = extractor.isAlwaysFalse(); if (extractor.isAlwaysFalse()) { return this; } RoutingResult result = doRoute(tableMate, extractor); ObjectNode[] selectNodes = result.getSelectNodes(); if (session.getDatabase().getSettings().optimizeMerging) { selectNodes = result.group(); } List<QueryWorker> workers = New.arrayList(selectNodes.length); for (ObjectNode objectNode : selectNodes) { QueryWorker worker = queryHandlerFactory.createQueryWorker(searchColumns, tableFilter, objectNode); workers.add(worker); } return invokeQueryWorker(workers); } finally { tableFilter.setEvaluatable(true); } }
setEvaluatable(nestedJoin); item.setNestedJoinPlan(nestedJoin.getBestPlanItem(s, filters, filter)); item.cost += item.cost * item.getNestedJoinPlan().cost; setEvaluatable(join); do { filter++;
private void setEvaluatableRecursive(TableFilter f) { for (; f != null; f = f.getJoin()) { f.setEvaluatable(f, true); if (condition != null) { condition.setEvaluatable(f, true);