コード例 #1
0
  @Override
  public void addIndex(SQLIndex index) throws SQLObjectException {
    if (logger.isDebugEnabled()) {
      String parentTableName = null;
      String parentFolder = null;
      if (index.getParent() != null) {
        parentTableName = index.getParent().getName();
      }
      if (index.getParent() != null) {
        parentFolder = index.getParent().getName();
      }
      logger.debug(
          "Adding index: "
              + index
              + " (parent table "
              + parentTableName
              + ") (parentFolder "
              + parentFolder
              + ")");
    }

    createPhysicalName(topLevelNames, index);

    print("CREATE ");
    if (index.isUnique()) {
      print("UNIQUE ");
    }
    if (index.isClustered()) {
      print(" CLUSTERED ");
    } else {
      print(" NONCLUSTERED ");
    }
    print("INDEX ");
    print(DDLUtils.toQualifiedName(null, null, index.getName()));
    print("\n ON ");
    print(toQualifiedName(index.getParent()));
    print("\n ( ");

    boolean first = true;
    for (SQLIndex.Column c : index.getChildren(SQLIndex.Column.class)) {
      if (!first) print(", ");
      if (c.getColumn() != null) {
        print(getPhysicalName(c.getColumn()));
      } else {
        print(c.getName());
      }
      first = false;
    }
    print(" )\n");
    endStatement(StatementType.CREATE, index);
  }