Created
December 18, 2013 21:50
-
-
Save gbadner/8030434 to your computer and use it in GitHub Desktop.
org.hibernate.metamodel.spi.relational.Index
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
public class Index extends AbstractConstraint implements Constraint { | |
protected Index(Table table, String name) { | |
super( table, name ); | |
} | |
@Override | |
public String getExportIdentifier() { | |
StringBuilder sb = new StringBuilder( getTable().getLoggableValueQualifier()); | |
sb.append( ".IDX" ); | |
for ( Column column : getColumns() ) { | |
sb.append( '_' ).append( column.getColumnName().getName() ); | |
} | |
return sb.toString(); | |
} | |
public String[] sqlCreateStrings(Dialect dialect) { | |
return new String[] { | |
buildSqlCreateIndexString( | |
dialect, getOrGenerateName(), getTable(), getColumns(), false | |
) | |
}; | |
} | |
public static String buildSqlCreateIndexString( | |
Dialect dialect, | |
String name, | |
TableSpecification table, | |
Iterable<Column> columns, | |
boolean unique | |
) { | |
StringBuilder buf = new StringBuilder( "create" ) | |
.append( unique ? | |
" unique" : | |
"" ) | |
.append( " index " ) | |
.append( dialect.qualifyIndexName() ? | |
name : | |
StringHelper.unqualify( name ) ) | |
.append( " on " ) | |
.append( table.getQualifiedName( dialect ) ) | |
.append( " (" ); | |
boolean first = true; | |
for ( Column column : columns ) { | |
if ( first ) { | |
first = false; | |
} | |
else { | |
buf.append( ", " ); | |
} | |
buf.append( ( column.getColumnName().encloseInQuotesIfQuoted( dialect ) ) ); | |
} | |
buf.append( ")" ); | |
return buf.toString(); | |
} | |
<<<<<<< HEAD | |
public static String buildSqlDropIndexString( | |
Dialect dialect, | |
TableSpecification table, | |
String name | |
) { | |
return "drop index " + | |
StringHelper.qualify( | |
table.getQualifiedName( dialect ), | |
name | |
); | |
======= | |
@Override | |
protected String getGeneratedNamePrefix() { | |
return "IDX"; | |
>>>>>>> HHH-7092 : Create default name for foreign and unique key constraints | |
} | |
public String sqlConstraintStringInAlterTable(Dialect dialect) { | |
StringBuilder buf = new StringBuilder( " index (" ); | |
boolean first = true; | |
for ( Column column : getColumns() ) { | |
if ( first ) { | |
first = false; | |
} | |
else { | |
buf.append( ", " ); | |
} | |
buf.append( column.getColumnName().encloseInQuotesIfQuoted( dialect ) ); | |
} | |
return buf.append( ')' ).toString(); | |
} | |
public String[] sqlDropStrings(Dialect dialect) { | |
return new String[] { | |
new StringBuilder( "drop index " ) | |
.append( | |
StringHelper.qualify( | |
getTable().getQualifiedName( dialect ), | |
getOrGenerateName() | |
) | |
).toString() | |
}; | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment