var = ExpressionToVariableUtil.getGeneratedVariable(query.getBody(), true); query.setTopLevel(true); UpsertStatement stmt = new UpsertStatement(nameComponents.first, nameComponents.second, query, getVarCounter(), var, returnExpression);
private Expression rewriteFunctionBody(FunctionDecl fnDecl) throws CompilationException { SourceLocation sourceLoc = fnDecl.getSourceLocation(); Query wrappedQuery = new Query(false); wrappedQuery.setSourceLocation(sourceLoc); wrappedQuery.setBody(fnDecl.getFuncBody()); wrappedQuery.setTopLevel(false); String fnNamespace = fnDecl.getSignature().getNamespace(); Dataverse defaultDataverse = metadataProvider.getDefaultDataverse(); Dataverse fnDataverse; if (fnNamespace == null || fnNamespace.equals(defaultDataverse.getDataverseName())) { fnDataverse = defaultDataverse; } else { try { fnDataverse = metadataProvider.findDataverse(fnNamespace); } catch (AlgebricksException e) { throw new CompilationException(ErrorCode.UNKNOWN_DATAVERSE, e, sourceLoc, fnNamespace); } } metadataProvider.setDefaultDataverse(fnDataverse); try { IQueryRewriter queryRewriter = rewriterFactory.createQueryRewriter(); queryRewriter.rewrite(declaredFunctions, wrappedQuery, metadataProvider, context, true, fnDecl.getParamList()); return wrappedQuery.getBody(); } finally { metadataProvider.setDefaultDataverse(defaultDataverse); } }
var = ExpressionToVariableUtil.getGeneratedVariable(query.getBody(), true); query.setTopLevel(true); InsertStatement stmt = new InsertStatement(nameComponents.first, nameComponents.second, query, getVarCounter(), var, returnExpression);
query.setTopLevel(true); {if (true) return new InsertStatement(nameComponents.first, nameComponents.second, query, getVarCounter(), var, returnExpression);}
query.setTopLevel(true); {if (true) return new UpsertStatement(nameComponents.first, nameComponents.second, query, getVarCounter(), var, returnExpression);}
query.setTopLevel(true); {if (true) return new InsertStatement(nameComponents.first, nameComponents.second, query, getVarCounter(), var, returnExpression);}
query.setTopLevel(true); {if (true) return new UpsertStatement(nameComponents.first, nameComponents.second, query, getVarCounter(), var, returnExpression);}
wrappedQuery.setSourceLocation(sourceLoc); wrappedQuery.setBody(cfs.getFunctionBodyExpression()); wrappedQuery.setTopLevel(false); List<VarIdentifier> paramVars = new ArrayList<>(); for (String v : cfs.getParamList()) {