Esempio n. 1
0
  private static void writeData(Table t1, Table t2, int start, int end) throws Exception {
    Database db = t1.getDatabase();
    ((DatabaseImpl) db).getPageChannel().startWrite();
    try {
      for (int i = start; i < end; ++i) {
        t1.addRow(null, "rowdata-" + i + TestUtil.createString(100));
        t2.addRow(null, "rowdata-" + i + TestUtil.createString(100));
      }
    } finally {
      ((DatabaseImpl) db).getPageChannel().finishWrite();
    }

    Cursor c1 = t1.newCursor().setIndex(t1.getPrimaryKeyIndex()).toCursor();
    Cursor c2 = t2.newCursor().setIndex(t2.getPrimaryKeyIndex()).toCursor();

    Iterator<? extends Row> i1 = c1.iterator();
    Iterator<? extends Row> i2 = c2.newIterable().reverse().iterator();

    int t1rows = 0;
    int t2rows = 0;
    ((DatabaseImpl) db).getPageChannel().startWrite();
    try {
      while (i1.hasNext() || i2.hasNext()) {
        if (i1.hasNext()) {
          checkRow(i1.next());
          i1.remove();
          ++t1rows;
        }
        if (i2.hasNext()) {
          checkRow(i2.next());
          i2.remove();
          ++t2rows;
        }
      }
    } finally {
      ((DatabaseImpl) db).getPageChannel().finishWrite();
    }

    assertEquals(100, t1rows);
    assertEquals(100, t2rows);
  }