private void getFromBindings(FromClause fromClause, List<FieldBinding> outFieldBindings, Set<String> outFieldNames) throws CompilationException { for (FromTerm fromTerm : fromClause.getFromTerms()) { outFieldBindings.add(getFieldBinding(fromTerm.getLeftVariable(), outFieldNames)); if (fromTerm.hasPositionalVariable()) { outFieldBindings.add(getFieldBinding(fromTerm.getPositionalVariable(), outFieldNames)); } if (!fromTerm.hasCorrelateClauses()) { continue; } for (AbstractBinaryCorrelateClause correlateClause : fromTerm.getCorrelateClauses()) { outFieldBindings.add(getFieldBinding(correlateClause.getRightVariable(), outFieldNames)); if (correlateClause.hasPositionalVariable()) { outFieldBindings.add(getFieldBinding(correlateClause.getPositionalVariable(), outFieldNames)); } } } }
@Override public Void visit(FromTerm fromTerm, Integer step) throws CompilationException { fromTerm.getLeftExpression().accept(this, step + 2); out.print(" as "); fromTerm.getLeftVariable().accept(this, step + 2); if (fromTerm.hasPositionalVariable()) { out.print(" at "); fromTerm.getPositionalVariable().accept(this, step + 2); } if (fromTerm.hasCorrelateClauses()) { for (AbstractBinaryCorrelateClause correlateClause : fromTerm.getCorrelateClauses()) { correlateClause.accept(this, step); } } return null; }
@Override public Void visit(FromTerm fromTerm, Integer step) throws CompilationException { fromTerm.getLeftExpression().accept(this, step); out.print(skip(step) + "AS "); fromTerm.getLeftVariable().accept(this, 0); if (fromTerm.hasPositionalVariable()) { out.println(" AT "); fromTerm.getPositionalVariable().accept(this, 0); } if (fromTerm.hasCorrelateClauses()) { for (AbstractBinaryCorrelateClause correlateClause : fromTerm.getCorrelateClauses()) { correlateClause.accept(this, step); } } return null; }
if (fromTerm.hasCorrelateClauses()) { for (AbstractBinaryCorrelateClause correlateClause : fromTerm.getCorrelateClauses()) { if (correlateClause.getClauseType() == ClauseType.UNNEST_CLAUSE) {