public void output(StringBuffer buf) { SQLASTOutputVisitor visitor = SQLUtils.createOutputVisitor(buf, dbType); this.accept(visitor); }
public boolean visit(SQLJoinTableSource x) { SQLTableSource left = x.getLeft(), right = x.getRight(); left.accept(this); right.accept(this); SQLExpr condition = x.getCondition(); if (condition != null) { condition.accept(this); } if (x.getUsing().size() > 0 && left instanceof SQLExprTableSource && right instanceof SQLExprTableSource) { SQLExpr leftExpr = ((SQLExprTableSource) left).getExpr(); SQLExpr rightExpr = ((SQLExprTableSource) right).getExpr(); for (SQLExpr expr : x.getUsing()) { if (expr instanceof SQLIdentifierExpr) { String name = ((SQLIdentifierExpr) expr).getName(); SQLPropertyExpr leftPropExpr = new SQLPropertyExpr(leftExpr, name); SQLPropertyExpr rightPropExpr = new SQLPropertyExpr(rightExpr, name); leftPropExpr.setResolvedTableSource(left); rightPropExpr.setResolvedTableSource(right); SQLBinaryOpExpr usingCondition = new SQLBinaryOpExpr(leftPropExpr, SQLBinaryOperator.Equality, rightPropExpr); usingCondition.accept(this); } } } return false; }
public void output(StringBuffer buf) { SQLASTOutputVisitor visitor = SQLUtils.createOutputVisitor(buf, dbType); this.accept(visitor); }
public boolean visit(SQLJoinTableSource x) { SQLTableSource left = x.getLeft(), right = x.getRight(); left.accept(this); right.accept(this); SQLExpr condition = x.getCondition(); if (condition != null) { condition.accept(this); } if (x.getUsing().size() > 0 && left instanceof SQLExprTableSource && right instanceof SQLExprTableSource) { SQLExpr leftExpr = ((SQLExprTableSource) left).getExpr(); SQLExpr rightExpr = ((SQLExprTableSource) right).getExpr(); for (SQLExpr expr : x.getUsing()) { if (expr instanceof SQLIdentifierExpr) { String name = ((SQLIdentifierExpr) expr).getName(); SQLPropertyExpr leftPropExpr = new SQLPropertyExpr(leftExpr, name); SQLPropertyExpr rightPropExpr = new SQLPropertyExpr(rightExpr, name); leftPropExpr.setResolvedTableSource(left); rightPropExpr.setResolvedTableSource(right); SQLBinaryOpExpr usingCondition = new SQLBinaryOpExpr(leftPropExpr, SQLBinaryOperator.Equality, rightPropExpr); usingCondition.accept(this); } } } return false; }