@Override public Void visit(DeleteStatement del, Integer step) throws CompilationException { out.print(skip(step) + "delete "); del.getVariableExpr().accept(this, step + 2); out.println(skip(step) + " from " + generateFullName(del.getDataverseName(), del.getDatasetName())); if (del.getCondition() != null) { out.print(skip(step) + " where "); del.getCondition().accept(this, step + 2); } out.println(SEMICOLON); return null; }
@Override public Void visit(DeleteStatement del, Integer step) throws CompilationException { out.print(skip(step) + "delete "); del.getVariableExpr().accept(this, step + 2); out.println( skip(step) + " from " + datasetSymbol + generateFullName(del.getDataverseName(), del.getDatasetName())); if (del.getCondition() != null) { out.print(skip(step) + " where "); del.getCondition().accept(this, step + 2); } out.println(SEMICOLON); return null; }
@Override public Void visit(DeleteStatement deleteStmt, Void visitArg) { List<Expression> arguments = new ArrayList<>(); Identifier dataverseName = deleteStmt.getDataverseName(); Identifier datasetName = deleteStmt.getDatasetName(); String arg = dataverseName == null ? datasetName.getValue() : dataverseName.getValue() + "." + datasetName.getValue(); LiteralExpr argumentLiteral = new LiteralExpr(new StringLiteral(arg)); arguments.add(argumentLiteral); CallExpr callExpression = new CallExpr(new FunctionSignature(BuiltinFunctions.DATASET), arguments); List<Clause> clauseList = new ArrayList<>(); VariableExpr var = deleteStmt.getVariableExpr(); Clause forClause = new ForClause(var, callExpression); clauseList.add(forClause); Clause whereClause = null; Expression condition = deleteStmt.getCondition(); if (condition != null) { whereClause = new WhereClause(condition); clauseList.add(whereClause); } VariableExpr returnExpr = new VariableExpr(var.getVar()); returnExpr.setIsNewVar(false); FLWOGRExpression flowgr = new FLWOGRExpression(clauseList, returnExpr); Query query = new Query(false); query.setBody(flowgr); deleteStmt.setQuery(query); return null; }
metadataProvider.setMetadataTxnContext(mdTxnCtx); MetadataLockUtil.insertDeleteUpsertBegin(lockManager, metadataProvider.getLocks(), dataverseName + "." + stmtDelete.getDatasetName()); try { metadataProvider.setWriteTransaction(true); CompiledDeleteStatement clfrqs = new CompiledDeleteStatement(stmtDelete.getVariableExpr(), dataverseName, stmtDelete.getDatasetName().getValue(), stmtDelete.getCondition(), stmtDelete.getVarCounter(), stmtDelete.getQuery()); clfrqs.setSourceLocation(stmt.getSourceLocation());
List<Expression> arguments = new ArrayList<>(); Identifier dataverseName = deleteStmt.getDataverseName(); Identifier datasetName = deleteStmt.getDatasetName(); String arg = dataverseName == null ? datasetName.getValue() : dataverseName.getValue() + "." + datasetName.getValue();