@Override public Expression visit(InsertStatement insertStatement, ILangExpression arg) throws CompilationException { Expression returnExpr = insertStatement.getReturnExpression(); if (returnExpr != null) { insertStatement.setReturnExpression(visit(returnExpr, arg)); } Query bodyQuery = insertStatement.getQuery(); bodyQuery.accept(this, arg); return null; }
@Override public Boolean visit(InsertStatement insert, List<FunctionDecl> arg) throws CompilationException { boolean changed = false; Expression returnExpression = insert.getReturnExpression(); if (returnExpression != null) { Pair<Boolean, Expression> rewrittenReturnExpr = inlineUdfsInExpr(returnExpression, arg); insert.setReturnExpression(rewrittenReturnExpr.second); changed |= rewrittenReturnExpr.first; } Pair<Boolean, Expression> rewrittenBodyExpression = inlineUdfsInExpr(insert.getBody(), arg); insert.setBody(rewrittenBodyExpression.second); return changed || rewrittenBodyExpression.first; }
@Override public Expression visit(InsertStatement insertStatement, ILangExpression arg) throws CompilationException { scopeChecker.createNewScope(); // Visits the body query. insertStatement.getQuery().accept(this, insertStatement); // Registers the (inserted) data item variable. VariableExpr bindingVar = insertStatement.getVar(); if (bindingVar != null) { addNewVarSymbolToScope(scopeChecker.getCurrentScope(), bindingVar.getVar(), bindingVar.getSourceLocation()); } // Visits the expression for the returning expression. Expression returningExpr = insertStatement.getReturnExpression(); if (returningExpr != null) { insertStatement.setReturnExpression(visit(returningExpr, insertStatement)); } return null; }