package edu.brown.costmodel.samples;
import java.util.ArrayList;
import java.util.List;
import org.voltdb.plannodes.AbstractPlanNode;
public abstract class DistributedJoin {
private static Integer node_id = 1;
private static Integer dep_id = 1;
private static final Integer num_of_scans = 2;
public static final List<AbstractPlanNode> plans = new ArrayList<AbstractPlanNode>();
/*
* static { Stack<Integer> dep_ids = new Stack<Integer>(); // // IndexScan
* // { SendPlanNode node0 = new SendPlanNode(node_id++);
* node0.setDependencyId(dep_id++); dep_ids.push(node0.getDependencyId());
* ProjectionPlanNode node1 = new ProjectionPlanNode(node_id++);
* node0.getChildren().add(node1); node1.getParents().add(node0);
* IndexScanPlanNode node2 = new IndexScanPlanNode(node_id++);
* node1.getChildren().add(node2); node2.getParents().add(node1);
* plans.add(node0); } // // SeqScans // for (int ctr = 0; ctr <
* num_of_scans; ctr++) { SendPlanNode node0 = new SendPlanNode(node_id++);
* node0.setDependencyId(dep_id++); dep_ids.push(node0.getDependencyId());
* SeqScanPlanNode node1 = new SeqScanPlanNode(node_id++);
* node0.getChildren().add(node1); node1.getParents().add(node0);
* plans.add(node0); } // FOR // // NestLoop + Union // { SendPlanNode node0
* = new SendPlanNode(node_id++); node0.setDependencyId(dep_id++);
* UnionPlanNode node1 = new UnionPlanNode(node_id++); for (int ctr = 0; ctr
* < num_of_scans; ctr++) { ReceivePlanNode node2 = new
* ReceivePlanNode(node_id++); node2.setDependencyId(dep_ids.pop());
* node1.getChildren().add(node2); node2.getParents().add(node1); } // FOR
* ReceivePlanNode node2 = new ReceivePlanNode(node_id++);
* node2.setDependencyId(dep_ids.pop()); NestLoopPlanNode node3 = new
* NestLoopPlanNode(node_id++); node3.getChildren().add(node1);
* node3.getChildren().add(node2); node0.getChildren().add(node3);
* node1.getParents().add(node3); node2.getParents().add(node3);
* plans.add(node0); } } // STATIC
*/
}