@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); }