Package org.databene.jdbacl.model

Examples of org.databene.jdbacl.model.DBIndex


  @Override
  protected int searchAndProcessObjectSimilarTo(DBIndex originalIndex, List<DBIndex> candidates, CompositeStructuralChange<?> ownerChange) {
    String[] searchedColumnNames = originalIndex.getColumnNames();
    for (int i = 0; i < candidates.size(); i++) {
      DBIndex candidate = candidates.get(i);
      String[] candidateColumnNames = candidate.getColumnNames();
      if (Arrays.equals(searchedColumnNames, candidateColumnNames)) {
        processRenamed(originalIndex, candidate, ownerChange);
        return i;
      }
    }
    for (int i = 0; i < candidates.size(); i++) {
      DBIndex candidate = candidates.get(i);
      String[] candidateColumnNames = candidate.getColumnNames();
      if (ArrayUtil.equalsIgnoreOrder(searchedColumnNames, candidateColumnNames)) {
        processRenamed(originalIndex, candidate, ownerChange);
        if (!originalIndex.isNameDeterministic() || !candidate.isNameDeterministic())
          ownerChange.addSubChange(new Rename<DBIndex>(originalIndex, candidate.getName()));
        return i;
      }
    }
    return -1;
  }
View Full Code Here


  @Test
  public void testUnchanged() {
    // given a table of which the index has not changed
    DBTable table = createTableWithColumns("tbl", 3);
    DBIndex index1 = new DBNonUniqueIndex("idx", true, table, "col1");
    DBIndex index2 = new DBNonUniqueIndex("idx", true, table, "col1");
    // when performing a comparison
    TableChange tableChange = new TableChange(table, null);
    new IndexComparator(new ComparisonConfig("db1", "db2", null)).compareObjects(index1, index2, tableChange);
    // then the result must be empty
    System.out.println(tableChange);
View Full Code Here

  @Test
  public void testIndexMadeUnique() {
    // given an index which only changed by becoming unique
    DBTable table = createTableWithColumns("tbl", 3);
    DBIndex index1 = new DBNonUniqueIndex("idx", true, table, "col1");
    DBIndex index2 = new DBUniqueIndex("idx", true, new DBUniqueConstraint(table, "uk1", false, "col1"));
    TableChange tableChange = new TableChange(table, null);
    // when performing a comparison
    new IndexComparator(config).compareObjects(index1, index2, tableChange);
    // then the result must be an IndexUniquenessChange
    System.out.println(tableChange);
View Full Code Here

  @Test
  public void testIndexMadeNonUnique() {
    // given an index which was unique before but is not now
    DBTable table = createTableWithColumns("tbl", 3);
    DBIndex index1 = new DBUniqueIndex("idx", true, new DBUniqueConstraint(table, "uk1", false, "col1"));
    DBIndex index2 = new DBNonUniqueIndex("idx", true, table, "col1");
    TableChange tableChange = new TableChange(table, null);
    // when performing a comparison
    new IndexComparator(config).compareObjects(index1, index2, tableChange);
    // then the result must be an IndexUniquenessChange
    System.out.println(tableChange);
View Full Code Here

  @Test
  public void testColumnOrderChanged() {
    // given a table with an index of which the column order changed
    DBTable table = createTableWithColumns("tbl", 2);
    DBIndex index1 = new DBNonUniqueIndex("idx", true, table, "col1", "col2");
    DBIndex index2 = new DBNonUniqueIndex("idx", true, table, "col2", "col1");
    TableChange tableChange = new TableChange(table, null);
    // when performing a comparison
    new IndexComparator(config).compareObjects(index1, index2, tableChange);
    // then the result must be a ColumnOrderChange
    System.out.println(tableChange);
View Full Code Here

  @Test
  public void testSingleIndexColumnReplaced() {
    // given an index consisting of exactly one column which was replaced in a newer index version
    DBTable table = createTableWithColumns("tbl", 2);
    DBIndex index1 = new DBNonUniqueIndex("idx", true, table, "col1");
    DBIndex index2 = new DBNonUniqueIndex("idx", true, table, "col2");
    TableChange tableChange = new TableChange(table, null);
    // when performing a comparison
    new IndexComparator(config).compareObjects(index1, index2, tableChange);
    // then the result must be deletion of the former index version and creation of the new one
    System.out.println(tableChange);
View Full Code Here

  @Test
  public void testAllIndexColumnsReplaced() {
    // given an index consisting of two columns which are replaced in a newer index version
    DBTable table = createTableWithColumns("tbl", 4);
    DBIndex index1 = new DBNonUniqueIndex("idx", true, table, "col1", "col2");
    DBIndex index2 = new DBNonUniqueIndex("idx", true, table, "col3", "col4");
    TableChange tableChange = new TableChange(table, null);
    // when performing a comparison
    new IndexComparator(config).compareObjects(index1, index2, tableChange);
    // then the result must be deletion of the former index version and creation of the new one
    System.out.println(tableChange);
View Full Code Here

 
  @Test
  public void testIndexColumnAdded() {
    // given a tbale with an index to which one more column has been added
    DBTable table = createTableWithColumns("tbl", 2);
    DBIndex index1 = new DBNonUniqueIndex("idx", true, table, "col1");
    DBIndex index2 = new DBNonUniqueIndex("idx", true, table, "col1", "col2");
    TableChange tableChange = new TableChange(table, null);
    // when performing a comparison
    new IndexComparator(config).compareObjects(index1, index2, tableChange);
    // then the result must be a ColumnsAddition
    System.out.println(tableChange);
View Full Code Here

  @Test
  public void testIndexColumnRemoved() {
    // given a table with an index of which one column was removed
    DBTable table = createTableWithColumns("tbl", 2);
    DBIndex index1 = new DBNonUniqueIndex("idx", true, table, "col1", "col2");
    DBIndex index2 = new DBNonUniqueIndex("idx", true, table, "col1");
    TableChange tableChange = new TableChange(table, null);
    // when performing a comparison
    new IndexComparator(config).compareObjects(index1, index2, tableChange);
    // then the result must be a ColumnsRemoval
    System.out.println(tableChange);
View Full Code Here

TOP

Related Classes of org.databene.jdbacl.model.DBIndex

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.