@Override public Void visit(InsertStatement wc, Void arg) throws CompilationException { wc.getQuery().accept(this, arg); Expression returnExpression = wc.getReturnExpression(); if (returnExpression != null) { returnExpression.accept(this, arg); } return null; }
@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; }
clfrqs = new CompiledInsertStatement(dataverseName, datasetName, rewrittenInsertUpsert.getQuery(), rewrittenInsertUpsert.getVarCounter(), rewrittenInsertUpsert.getVar(), rewrittenInsertUpsert.getReturnExpression()); clfrqs.setSourceLocation(insertUpsert.getSourceLocation()); break; clfrqs = new CompiledUpsertStatement(dataverseName, datasetName, rewrittenInsertUpsert.getQuery(), rewrittenInsertUpsert.getVarCounter(), rewrittenInsertUpsert.getVar(), rewrittenInsertUpsert.getReturnExpression()); clfrqs.setSourceLocation(insertUpsert.getSourceLocation()); break;
case INSERT: case UPSERT: if (((InsertStatement) stmt).getReturnExpression() != null) { metadataProvider.setResultSetId(new ResultSetId(resultSetIdCounter++)); metadataProvider.setResultAsyncMode(resultDelivery == ResultDelivery.ASYNC
if (stmtInsertUpsert.getReturnExpression() != null) { deliverResult(hcc, resultSet, compiler, metadataProvider, locker, resultDelivery, outMetadata, stats, clientContextId, NoOpStatementExecutorContext.INSTANCE);