@Override public boolean isEverything(ExpressionVisitor visitor) { return left.isEverything(visitor) && (right == null || right.isEverything(visitor)); }
private boolean areAllValues(ExpressionVisitor visitor) { for (Expression e : valueList) { if (!e.isEverything(visitor)) { return false; } } return true; }
@Override public boolean isEverything(ExpressionVisitor visitor) { for (Expression e : list) { if (!e.isEverything(visitor)) { return false; } } return true; }
@Override public boolean isEverything(ExpressionVisitor visitor) { return expr.isEverything(visitor); }
@Override public boolean isEverything(ExpressionVisitor visitor) { return left.isEverything(visitor) && right.isEverything(visitor) && (escape == null || escape.isEverything(visitor)); }
@Override public boolean isEverything(ExpressionVisitor visitor) { return left.isEverything(visitor) && (right == null || right.isEverything(visitor)); }
@Override public boolean isReadOnly() { return expression.isEverything(ExpressionVisitor.READONLY_VISITOR); }
@Override public boolean isEverything(ExpressionVisitor visitor) { return left.isEverything(visitor) && right.isEverything(visitor); }
@Override public boolean isEverything(ExpressionVisitor visitor) { return condition.isEverything(visitor); }
/** * Check if the expression can be evaluated. * * @return true if it can be evaluated */ public boolean isEvaluatable() { if (expression != null) { return expression.isEverything(ExpressionVisitor.EVALUATABLE_VISITOR); } if (expressionList != null) { for (Expression e : expressionList) { if (!e.isEverything(ExpressionVisitor.EVALUATABLE_VISITOR)) { return false; } } return true; } return expressionQuery.isEverything(ExpressionVisitor.EVALUATABLE_VISITOR); }
@Override public boolean isEverything(ExpressionVisitor visitor) { if (!left.isEverything(visitor)) { return false; } return areAllValues(visitor); }
@Override public boolean isEverything(ExpressionVisitor visitor) { return left.isEverything(visitor) && query.isEverything(visitor); }
/** * Add conditions to a table filter if they can be evaluated. * * @param filter the table filter * @param outerJoin if the expression is part of an outer join */ public void addFilterConditions(TableFilter filter, boolean outerJoin) { if (!addedToFilter && !outerJoin && isEverything(ExpressionVisitor.EVALUATABLE_VISITOR)) { filter.addFilterCondition(this, false); addedToFilter = true; } }
@Override public boolean isEverything(ExpressionVisitor visitor) { if (visitor.getType() == ExpressionVisitor.GET_AGGREGATE) { visitor.addAggregate(this); } if (on != null && !on.isEverything(visitor)) { return false; } if (groupConcatSeparator != null && !groupConcatSeparator.isEverything(visitor)) { return false; } if (groupConcatOrderList != null) { for (int i = 0, size = groupConcatOrderList.size(); i < size; i++) { SelectOrderBy o = groupConcatOrderList.get(i); if (!o.expression.isEverything(visitor)) { return false; } } } return true; }
/** * Visit the default expression, the check constraint, and the sequence (if * any). * * @param visitor the visitor * @return true if every visited expression returned true, or if there are * no expressions */ boolean isEverything(ExpressionVisitor visitor) { if (visitor.getType() == ExpressionVisitor.GET_DEPENDENCIES) { if (sequence != null) { visitor.getDependencies().add(sequence); } } if (defaultExpression != null && !defaultExpression.isEverything(visitor)) { return false; } return !(checkConstraint != null && !checkConstraint.isEverything(visitor)); }
@Override public boolean isEverything(ExpressionVisitor visitor) { if (!left.isEverything(visitor)) { return false; } switch (visitor.getType()) { case ExpressionVisitor.DETERMINISTIC: case ExpressionVisitor.READONLY: case ExpressionVisitor.INDEPENDENT: case ExpressionVisitor.EVALUATABLE: case ExpressionVisitor.NOT_FROM_RESOLVER: case ExpressionVisitor.GET_DEPENDENCIES: case ExpressionVisitor.QUERY_COMPARABLE: case ExpressionVisitor.GET_COLUMNS: return true; default: throw DbException.throwInternalError("type=" + visitor.getType()); } }
for (int i = 0, size = expressions.size(); i < size; i++) { Expression e = expressions.get(i); if (!e.isEverything(v2)) { result = false; break; if (result && condition != null && !condition.isEverything(v2)) { result = false; if (result && having != null && !having.isEverything(v2)) { result = false;
@Override public boolean isEverything(ExpressionVisitor visitor) { for (Expression e : args) { if (e != null && !e.isEverything(visitor)) { return false; } } switch (visitor.getType()) { case ExpressionVisitor.DETERMINISTIC: case ExpressionVisitor.QUERY_COMPARABLE: case ExpressionVisitor.READONLY: return info.deterministic; case ExpressionVisitor.EVALUATABLE: case ExpressionVisitor.GET_DEPENDENCIES: case ExpressionVisitor.INDEPENDENT: case ExpressionVisitor.NOT_FROM_RESOLVER: case ExpressionVisitor.GET_COLUMNS: return true; default: throw DbException.throwInternalError("type=" + visitor.getType()); } }
@Override public void createIndexConditions(Session session, TableFilter filter) { if (!(left instanceof ExpressionColumn)) { return; } ExpressionColumn l = (ExpressionColumn) left; if (filter != l.getTableFilter()) { return; } if (session.getDatabase().getSettings().optimizeInList) { ExpressionVisitor visitor = ExpressionVisitor.getNotFromResolverVisitor(filter); for (Expression e : valueList) { if (!e.isEverything(visitor)) { return; } } filter.addIndexCondition(IndexCondition.getInList(l, valueList)); return; } }
if (!on.isEverything(ExpressionVisitor.EVALUATABLE_VISITOR)) { if (session.getDatabase().getSettings().nestedJoins) { if (!on.isEverything(ExpressionVisitor.EVALUATABLE_VISITOR)) { f.removeFilterCondition(); addCondition(on);