/**
*
*/
package org.reldb.rel.v0.vm.instructions.relation;
import org.reldb.rel.v0.types.JoinMap;
import org.reldb.rel.v0.values.*;
import org.reldb.rel.v0.vm.Context;
import org.reldb.rel.v0.vm.Instruction;
public final class OpRelationJoin extends Instruction {
private JoinMap map;
public OpRelationJoin(JoinMap map) {
this.map = map;
}
public final void execute(Context context) {
// Relation JOIN.
//
// Assumes tuples with common attributes.
//
// POP - ValueRelation
// POP - ValueRelation
// PUSH - ValueRelation
Value v2 = context.pop();
Value v1 = context.pop();
context.push(((ValueRelation)v1).join(context.getVirtualMachine().getRelDatabase(), map, (ValueRelation)v2));
}
}