@Override public void mapColumns(ColumnResolver resolver, int level) { for (Expression e : expressions) { e.mapColumns(resolver, level); } if (condition != null) { condition.mapColumns(resolver, level); } }
@Override public void mapColumns(ColumnResolver resolver, int level) { left.mapColumns(resolver, level); if (right != null) { right.mapColumns(resolver, level); } }
@Override public void mapColumns(ColumnResolver resolver, int level) { for (Expression arg : args) { arg.mapColumns(resolver, level); } if (filterCondition != null) { filterCondition.mapColumns(resolver, level); } }
@Override public void mapColumns(ColumnResolver resolver, int level) { for (Expression e : args) { e.mapColumns(resolver, level); } }
@Override public void mapColumns(ColumnResolver resolver, int level) { left.mapColumns(resolver, level); right.mapColumns(resolver, level); }
@Override public void mapColumns(ColumnResolver resolver, int level) { for (Expression e : args) { if (e != null) { e.mapColumns(resolver, level); } } }
@Override public void mapColumns(ColumnResolver resolver, int level) { left.mapColumns(resolver, level); if (right != null) { right.mapColumns(resolver, level); } }
@Override public void mapColumns(ColumnResolver resolver, int level) { left.mapColumns(resolver, level); right.mapColumns(resolver, level); if (escape != null) { escape.mapColumns(resolver, level); } }
@Override public void mapColumns(ColumnResolver resolver, int level) { for (Expression e : list) { e.mapColumns(resolver, level); } }
@Override public void accept(TableFilter f) { on.mapColumns(f, 0); } }
@Override public void mapColumns(ColumnResolver resolver, int level) { condition.mapColumns(resolver, level); }
@Override public void mapColumns(ColumnResolver resolver, int level) { left.mapColumns(resolver, level); }
@Override public void mapColumns(ColumnResolver resolver, int level) { expr.mapColumns(resolver, level); }
@Override public void mapColumns(ColumnResolver resolver, int level) { left.mapColumns(resolver, level); for (Expression e : valueList) { e.mapColumns(resolver, level); } this.queryLevel = Math.max(level, this.queryLevel); }
@Override public void mapColumns(ColumnResolver resolver, int level) { if (on != null) { on.mapColumns(resolver, level); } if (groupConcatOrderList != null) { for (SelectOrderBy o : groupConcatOrderList) { o.expression.mapColumns(resolver, level); } } if (arrayAggOrderList != null) { for (SelectOrderBy o : arrayAggOrderList) { o.expression.mapColumns(resolver, level); } } if (groupConcatSeparator != null) { groupConcatSeparator.mapColumns(resolver, level); } if (filterCondition != null) { filterCondition.mapColumns(resolver, level); } }
@Override public void mapColumns(ColumnResolver resolver, int level) { left.mapColumns(resolver, level); this.queryLevel = Math.max(level, this.queryLevel); }
@Override public void mapColumns(ColumnResolver resolver, int level) { left.mapColumns(resolver, level); query.mapColumns(resolver, level + 1); this.queryLevel = Math.max(level, this.queryLevel); }
/** * Prepare all expressions of this column. * * @param session the session */ public void prepareExpression(Session session) { if (defaultExpression != null || onUpdateExpression != null) { computeTableFilter = new TableFilter(session, table, null, false, null, 0, null); if (defaultExpression != null) { defaultExpression.mapColumns(computeTableFilter, 0); defaultExpression = defaultExpression.optimize(session); } if (onUpdateExpression != null) { onUpdateExpression.mapColumns(computeTableFilter, 0); onUpdateExpression = onUpdateExpression.optimize(session); } } }
/** * Map the columns and add the join condition. * * @param on the condition */ public void mapAndAddFilter(Expression on) { on.mapColumns(this, 0); addFilterCondition(on, true); on.createIndexConditions(session, this); if (nestedJoin != null) { on.mapColumns(nestedJoin, 0); on.createIndexConditions(session, nestedJoin); } if (join != null) { join.mapAndAddFilter(on); } }
@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(); }