Advertisement
Guest User

Untitled

a guest
Apr 27th, 2017
224
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.14 KB | None | 0 0
  1. @Test(timeout=2000)
  2. @Category(StudentTestP4.class)
  3. public void testSNLJOperatorCost2() throws DatabaseException, QueryPlanException {
  4. List<DataBox> values = TestUtils.createRecordWithAllTypes().getValues();
  5. this.database.createTable(TestUtils.createSchemaWithAllTypes(), "tempIntTable1");
  6. this.database.createTable(TestUtils.createSchemaWithAllTypes(), "tempIntTable2");
  7.  
  8. Database.Transaction transaction = this.database.beginTransaction();
  9. int numEntries = transaction.getNumEntriesPerPage("tempIntTable1");
  10. for (int i = 0; i < 2.5 * numEntries ; i++) {
  11. transaction.addRecord("tempIntTable1", values);
  12. }
  13. for (int i = 0; i < 2 * numEntries; i++) {
  14. transaction.addRecord("tempIntTable2", values);
  15. }
  16. QueryOperator left = new SequentialScanOperator(transaction, "tempIntTable1");
  17. QueryOperator right = new SequentialScanOperator(transaction, "tempIntTable2");
  18.  
  19. JoinOperator leftJoinRight = new SNLJOperator(left, right, "int", "int", transaction);
  20. assertEquals(2*2.5*numEntries + 3, leftJoinRight.estimateIOCost(),0.01f);
  21.  
  22. JoinOperator rightJoinLeft = new SNLJOperator(right, left, "int", "int", transaction);
  23. assertEquals(numEntries*2*3 + 2, rightJoinLeft.estimateIOCost(),0.01f);
  24. }
  25. @Test(timeout=2000)
  26. @Category(StudentTestP4.class)
  27. public void testPNLJOperatorCost2() throws DatabaseException, QueryPlanException {
  28. List<DataBox> values = TestUtils.createRecordWithAllTypes().getValues();
  29. this.database.createTable(TestUtils.createSchemaWithAllTypes(), "tempIntTable1");
  30. this.database.createTable(TestUtils.createSchemaWithAllTypes(), "tempIntTable2");
  31.  
  32. Database.Transaction transaction = this.database.beginTransaction();
  33. int numEntries = transaction.getNumEntriesPerPage("tempIntTable1");
  34. for (int i = 0; i < 2.5 * numEntries ; i++) {
  35. transaction.addRecord("tempIntTable1", values);
  36. }
  37. for (int i = 0; i < 2 * numEntries; i++) {
  38. transaction.addRecord("tempIntTable2", values);
  39. }
  40. QueryOperator left = new SequentialScanOperator(transaction, "tempIntTable1");
  41. QueryOperator right = new SequentialScanOperator(transaction, "tempIntTable2");
  42.  
  43. JoinOperator leftJoinRight = new PNLJOperator(left, right, "int", "int", transaction);
  44. assertEquals(3*2 + 3, leftJoinRight.estimateIOCost(),0.01f);
  45.  
  46. JoinOperator rightJoinLeft = new PNLJOperator(right, left, "int", "int", transaction);
  47. assertEquals(2*3 + 2, rightJoinLeft.estimateIOCost(),0.01f);
  48. }
  49. @Test(timeout=2000)
  50. @Category(StudentTestP4.class)
  51. public void testIndexScanOperatorCost2() throws DatabaseException, QueryPlanException {
  52. List<String> intTableNames = new ArrayList<String>();
  53. intTableNames.add("int");
  54.  
  55. List<DataBox> intTableTypes = new ArrayList<DataBox>();
  56. intTableTypes.add(new IntDataBox());
  57.  
  58. String tableName = "tempIntTable";
  59.  
  60. this.database.createTableWithIndices(
  61. new Schema(intTableNames, intTableTypes), tableName, intTableNames);
  62.  
  63. Database.Transaction transaction = this.database.beginTransaction();
  64.  
  65. for (int i = 0; i < 400; i++) {
  66. List<DataBox> values = new ArrayList<DataBox>();
  67. values.add(new IntDataBox(i));
  68.  
  69. transaction.addRecord(tableName, values);
  70. }
  71.  
  72. QueryOperator indexScanOperator;
  73.  
  74. indexScanOperator = new IndexScanOperator(
  75. transaction, tableName, "int", PredicateOperator.LESS_THAN_EQUALS, new IntDataBox(200));
  76.  
  77. assertEquals(203, indexScanOperator.estimateIOCost());
  78.  
  79. for (int i = 0; i < 1000; i++) {
  80. List<DataBox> values = new ArrayList<DataBox>();
  81. values.add(new IntDataBox(i));
  82.  
  83. transaction.addRecord(tableName, values);
  84. }
  85.  
  86. indexScanOperator = new IndexScanOperator(
  87. transaction, tableName, "int", PredicateOperator.LESS_THAN, new IntDataBox(500));
  88.  
  89. assertEquals(550, indexScanOperator.estimateIOCost());
  90.  
  91. transaction.end();
  92. }
  93. @Test(timeout=2000)
  94. @Category(StudentTestP4.class)
  95. public void testBNLJOperatorCost2() throws DatabaseException, QueryPlanException {
  96. List<DataBox> values = TestUtils.createRecordWithAllTypes().getValues();
  97. this.database.createTable(TestUtils.createSchemaWithAllTypes(), "tempIntTable1");
  98. this.database.createTable(TestUtils.createSchemaWithAllTypes(), "tempIntTable2");
  99.  
  100. Database.Transaction transaction = this.database.beginTransaction();
  101. int numEntries = transaction.getNumEntriesPerPage("tempIntTable1");
  102. for (int i = 0; i < 2.5 * numEntries ; i++) {
  103. transaction.addRecord("tempIntTable1", values);
  104. }
  105. for (int i = 0; i < 2 * numEntries; i++) {
  106. transaction.addRecord("tempIntTable2", values);
  107. }
  108. QueryOperator left = new SequentialScanOperator(transaction, "tempIntTable1");
  109. QueryOperator right = new SequentialScanOperator(transaction, "tempIntTable2");
  110.  
  111. JoinOperator leftJoinRight = new BNLJOperator(left, right, "int", "int", transaction);
  112. assertEquals(1*2 + 3, leftJoinRight.estimateIOCost(),0.01f);
  113.  
  114. JoinOperator rightJoinLeft = new BNLJOperator(right, left, "int", "int", transaction);
  115. assertEquals(1*3 + 2, rightJoinLeft.estimateIOCost(),0.01f);
  116. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement