Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- @Test(timeout=2000)
- @Category(StudentTestP4.class)
- public void testSNLJOperatorCost2() throws DatabaseException, QueryPlanException {
- List<DataBox> values = TestUtils.createRecordWithAllTypes().getValues();
- this.database.createTable(TestUtils.createSchemaWithAllTypes(), "tempIntTable1");
- this.database.createTable(TestUtils.createSchemaWithAllTypes(), "tempIntTable2");
- Database.Transaction transaction = this.database.beginTransaction();
- int numEntries = transaction.getNumEntriesPerPage("tempIntTable1");
- for (int i = 0; i < 2.5 * numEntries ; i++) {
- transaction.addRecord("tempIntTable1", values);
- }
- for (int i = 0; i < 2 * numEntries; i++) {
- transaction.addRecord("tempIntTable2", values);
- }
- QueryOperator left = new SequentialScanOperator(transaction, "tempIntTable1");
- QueryOperator right = new SequentialScanOperator(transaction, "tempIntTable2");
- JoinOperator leftJoinRight = new SNLJOperator(left, right, "int", "int", transaction);
- assertEquals(2*2.5*numEntries + 3, leftJoinRight.estimateIOCost(),0.01f);
- JoinOperator rightJoinLeft = new SNLJOperator(right, left, "int", "int", transaction);
- assertEquals(numEntries*2*3 + 2, rightJoinLeft.estimateIOCost(),0.01f);
- }
- @Test(timeout=2000)
- @Category(StudentTestP4.class)
- public void testPNLJOperatorCost2() throws DatabaseException, QueryPlanException {
- List<DataBox> values = TestUtils.createRecordWithAllTypes().getValues();
- this.database.createTable(TestUtils.createSchemaWithAllTypes(), "tempIntTable1");
- this.database.createTable(TestUtils.createSchemaWithAllTypes(), "tempIntTable2");
- Database.Transaction transaction = this.database.beginTransaction();
- int numEntries = transaction.getNumEntriesPerPage("tempIntTable1");
- for (int i = 0; i < 2.5 * numEntries ; i++) {
- transaction.addRecord("tempIntTable1", values);
- }
- for (int i = 0; i < 2 * numEntries; i++) {
- transaction.addRecord("tempIntTable2", values);
- }
- QueryOperator left = new SequentialScanOperator(transaction, "tempIntTable1");
- QueryOperator right = new SequentialScanOperator(transaction, "tempIntTable2");
- JoinOperator leftJoinRight = new PNLJOperator(left, right, "int", "int", transaction);
- assertEquals(3*2 + 3, leftJoinRight.estimateIOCost(),0.01f);
- JoinOperator rightJoinLeft = new PNLJOperator(right, left, "int", "int", transaction);
- assertEquals(2*3 + 2, rightJoinLeft.estimateIOCost(),0.01f);
- }
- @Test(timeout=2000)
- @Category(StudentTestP4.class)
- public void testIndexScanOperatorCost2() throws DatabaseException, QueryPlanException {
- List<String> intTableNames = new ArrayList<String>();
- intTableNames.add("int");
- List<DataBox> intTableTypes = new ArrayList<DataBox>();
- intTableTypes.add(new IntDataBox());
- String tableName = "tempIntTable";
- this.database.createTableWithIndices(
- new Schema(intTableNames, intTableTypes), tableName, intTableNames);
- Database.Transaction transaction = this.database.beginTransaction();
- for (int i = 0; i < 400; i++) {
- List<DataBox> values = new ArrayList<DataBox>();
- values.add(new IntDataBox(i));
- transaction.addRecord(tableName, values);
- }
- QueryOperator indexScanOperator;
- indexScanOperator = new IndexScanOperator(
- transaction, tableName, "int", PredicateOperator.LESS_THAN_EQUALS, new IntDataBox(200));
- assertEquals(203, indexScanOperator.estimateIOCost());
- for (int i = 0; i < 1000; i++) {
- List<DataBox> values = new ArrayList<DataBox>();
- values.add(new IntDataBox(i));
- transaction.addRecord(tableName, values);
- }
- indexScanOperator = new IndexScanOperator(
- transaction, tableName, "int", PredicateOperator.LESS_THAN, new IntDataBox(500));
- assertEquals(550, indexScanOperator.estimateIOCost());
- transaction.end();
- }
- @Test(timeout=2000)
- @Category(StudentTestP4.class)
- public void testBNLJOperatorCost2() throws DatabaseException, QueryPlanException {
- List<DataBox> values = TestUtils.createRecordWithAllTypes().getValues();
- this.database.createTable(TestUtils.createSchemaWithAllTypes(), "tempIntTable1");
- this.database.createTable(TestUtils.createSchemaWithAllTypes(), "tempIntTable2");
- Database.Transaction transaction = this.database.beginTransaction();
- int numEntries = transaction.getNumEntriesPerPage("tempIntTable1");
- for (int i = 0; i < 2.5 * numEntries ; i++) {
- transaction.addRecord("tempIntTable1", values);
- }
- for (int i = 0; i < 2 * numEntries; i++) {
- transaction.addRecord("tempIntTable2", values);
- }
- QueryOperator left = new SequentialScanOperator(transaction, "tempIntTable1");
- QueryOperator right = new SequentialScanOperator(transaction, "tempIntTable2");
- JoinOperator leftJoinRight = new BNLJOperator(left, right, "int", "int", transaction);
- assertEquals(1*2 + 3, leftJoinRight.estimateIOCost(),0.01f);
- JoinOperator rightJoinLeft = new BNLJOperator(right, left, "int", "int", transaction);
- assertEquals(1*3 + 2, rightJoinLeft.estimateIOCost(),0.01f);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement