@Override public FromTerm visit(FromTerm fromTerm, Void arg) throws CompilationException { // Visit the left expression of a from term. Expression fromExpr = (Expression) fromTerm.getLeftExpression().accept(this, arg); VariableExpr fromVar = (VariableExpr) fromTerm.getLeftVariable().accept(this, arg); VariableExpr positionVar = fromTerm.getPositionalVariable() == null ? null : (VariableExpr) fromTerm.getPositionalVariable().accept(this, arg); // Visits join/unnest/nest clauses. List<AbstractBinaryCorrelateClause> correlateClauses = new ArrayList<>(); for (AbstractBinaryCorrelateClause correlateClause : fromTerm.getCorrelateClauses()) { correlateClauses.add((AbstractBinaryCorrelateClause) correlateClause.accept(this, arg)); } FromTerm copy = new FromTerm(fromExpr, fromVar, positionVar, correlateClauses); copy.setSourceLocation(fromTerm.getSourceLocation()); return copy; }
FromTerm newFromTerm = new FromTerm(newLeftExpr, newLeftVar, newLeftPosVar, newCorrelateClauses); newFromTerm.setSourceLocation(fromTerm.getSourceLocation()); return new Pair<>(newFromTerm, currentEnv);
FromTerm fromTerm = new FromTerm(groupVar, fromBindingVar, null, null); fromTerm.setSourceLocation(sourceLoc); FromClause fromClause = new FromClause(Collections.singletonList(fromTerm));
leftVar = ExpressionToVariableUtil.getGeneratedVariable(leftExpr, true); FromTerm fromTerm = new FromTerm(leftExpr, leftVar, posVar, correlateClauses); fromTerm.setSourceLocation(leftExpr.getSourceLocation()); {if (true) return fromTerm;}
FeedRuntimeType.INTAKE.toString(), feedConnection.getDatasetName(), feedConnection.getOutputType()); CallExpr datasrouceCallFunction = new CallExpr(new FunctionSignature(BuiltinFunctions.FEED_COLLECT), exprList); FromTerm fromterm = new FromTerm(datasrouceCallFunction, fromTermLeftExpr, null, null); FromClause fromClause = new FromClause(Arrays.asList(fromterm)); WhereClause whereClause = null;
VariableExpr newBindingVar = new VariableExpr(context.newVariable()); // Binding variable for the subquery. newBindingVar.setSourceLocation(sourceLoc); FromTerm newFromTerm = new FromTerm(nestedSelectExpression, newBindingVar, null, null); newFromTerm.setSourceLocation(sourceLoc); FromClause newFromClause = new FromClause(new ArrayList<>(Collections.singletonList(newFromTerm)));
/** * rewrites {@code expr -> FROM expr AS i SELECT DISTINCT VALUE i} */ private Expression rewriteArgument(Expression argExpr) throws CompilationException { SourceLocation sourceLoc = argExpr.getSourceLocation(); // From clause VariableExpr fromBindingVar = new VariableExpr(context.newVariable()); fromBindingVar.setSourceLocation(sourceLoc); FromTerm fromTerm = new FromTerm(argExpr, fromBindingVar, null, null); fromTerm.setSourceLocation(sourceLoc); FromClause fromClause = new FromClause(Collections.singletonList(fromTerm)); fromClause.setSourceLocation(sourceLoc); // Select clause. SelectElement selectElement = new SelectElement(fromBindingVar); selectElement.setSourceLocation(sourceLoc); SelectClause selectClause = new SelectClause(selectElement, null, true); selectClause.setSourceLocation(sourceLoc); // Construct the select expression. SelectBlock selectBlock = new SelectBlock(selectClause, fromClause, null, null, null); selectBlock.setSourceLocation(sourceLoc); SelectSetOperation selectSetOperation = new SelectSetOperation(new SetOperationInput(selectBlock, null), null); selectSetOperation.setSourceLocation(sourceLoc); SelectExpression selectExpr = new SelectExpression(null, selectSetOperation, null, null, true); selectExpr.setSourceLocation(sourceLoc); return selectExpr; } }
FromTerm fromTerm = new FromTerm(callExpression, var, null, null); fromTerm.setSourceLocation(var.getSourceLocation()); FromClause fromClause = new FromClause(Collections.singletonList(fromTerm));