package org.reldb.rel.v0.vm.instructions.relvar;
import org.reldb.rel.v0.storage.relvars.Relvar;
import org.reldb.rel.v0.values.ValueRelation;
import org.reldb.rel.v0.vm.Context;
import org.reldb.rel.v0.vm.Instruction;
public class OpRelvarIDelete extends Instruction {
@Override
public void execute(Context context) {
// Delete tuples from relvar matching those in ValueRelation. Throw exception if they're not included in the relvar.
//
// POP - RelvarUpdatable
// POP - ValueRelation
Relvar relvar = (Relvar)context.pop();
ValueRelation tuplesToDelete = (ValueRelation)context.pop();
long deleteCount = relvar.delete(context, tuplesToDelete, true);
context.getVirtualMachine().noticeDelete(deleteCount);
}
}