[#4914] Add support for CREATE UNIQUE INDEX
This commit is contained in:
parent
1cbbc23923
commit
064e5475d8
@ -7113,6 +7113,22 @@ public interface DSLContext extends Scope , AutoCloseable {
|
||||
@Support({ CUBRID, DERBY, FIREBIRD, H2, HSQLDB, MARIADB, MYSQL, POSTGRES, SQLITE })
|
||||
CreateIndexStep createIndex(Name index);
|
||||
|
||||
/**
|
||||
* Create a new DSL <code>CREATE UNIQUE INDEX</code> statement.
|
||||
*
|
||||
* @see DSL#createIndex(String)
|
||||
*/
|
||||
@Support({ CUBRID, DERBY, FIREBIRD, H2, HSQLDB, MARIADB, MYSQL, POSTGRES, SQLITE })
|
||||
CreateIndexStep createUniqueIndex(String index);
|
||||
|
||||
/**
|
||||
* Create a new DSL <code>CREATE UNIQUE INDEX</code> statement.
|
||||
*
|
||||
* @see DSL#createIndex(Name)
|
||||
*/
|
||||
@Support({ CUBRID, DERBY, FIREBIRD, H2, HSQLDB, MARIADB, MYSQL, POSTGRES, SQLITE })
|
||||
CreateIndexStep createUniqueIndex(Name index);
|
||||
|
||||
/**
|
||||
* Create a new DSL <code>CREATE SEQUENCE</code> statement.
|
||||
*
|
||||
|
||||
@ -71,13 +71,19 @@ class CreateIndexImpl extends AbstractQuery implements
|
||||
private static final Clause[] CLAUSES = { CREATE_INDEX };
|
||||
|
||||
private final Name index;
|
||||
private final boolean unique;
|
||||
private Table<?> table;
|
||||
private Field<?>[] fields;
|
||||
|
||||
CreateIndexImpl(Configuration configuration, Name index) {
|
||||
this(configuration, index, false);
|
||||
}
|
||||
|
||||
CreateIndexImpl(Configuration configuration, Name index, boolean unique) {
|
||||
super(configuration);
|
||||
|
||||
this.index = index;
|
||||
this.unique = unique;
|
||||
}
|
||||
|
||||
// ------------------------------------------------------------------------
|
||||
@ -108,7 +114,14 @@ class CreateIndexImpl extends AbstractQuery implements
|
||||
|
||||
@Override
|
||||
public final void accept(Context<?> ctx) {
|
||||
ctx.keyword("create index")
|
||||
ctx.keyword("create");
|
||||
|
||||
if (unique)
|
||||
ctx.sql(' ')
|
||||
.keyword("unique");
|
||||
|
||||
ctx.sql(' ')
|
||||
.keyword("index")
|
||||
.sql(' ')
|
||||
.visit(index)
|
||||
.sql(' ')
|
||||
|
||||
@ -5605,6 +5605,26 @@ public class DSL {
|
||||
return using(new DefaultConfiguration()).createIndex(index);
|
||||
}
|
||||
|
||||
/**
|
||||
* Create a new DSL <code>CREATE UNIQUE INDEX</code> statement.
|
||||
*
|
||||
* @see DSLContext#createUniqueIndex(String)
|
||||
*/
|
||||
@Support
|
||||
public static CreateIndexStep createUniqueIndex(String index) {
|
||||
return using(new DefaultConfiguration()).createUniqueIndex(index);
|
||||
}
|
||||
|
||||
/**
|
||||
* Create a new DSL <code>CREATE UNIQUE INDEX</code> statement.
|
||||
*
|
||||
* @see DSLContext#createUniqueIndex(Name)
|
||||
*/
|
||||
@Support
|
||||
public static CreateIndexStep createUniqueIndex(Name index) {
|
||||
return using(new DefaultConfiguration()).createUniqueIndex(index);
|
||||
}
|
||||
|
||||
/**
|
||||
* Create a new DSL <code>CREATE SEQUENCE</code> statement.
|
||||
*
|
||||
|
||||
@ -2245,6 +2245,16 @@ public class DefaultDSLContext extends AbstractScope implements DSLContext, Seri
|
||||
return new CreateIndexImpl(configuration(), index);
|
||||
}
|
||||
|
||||
@Override
|
||||
public CreateIndexStep createUniqueIndex(String index) {
|
||||
return createUniqueIndex(name(index));
|
||||
}
|
||||
|
||||
@Override
|
||||
public CreateIndexStep createUniqueIndex(Name index) {
|
||||
return new CreateIndexImpl(configuration(), index, true);
|
||||
}
|
||||
|
||||
@Override
|
||||
public CreateSequenceFinalStep createSequence(String sequence) {
|
||||
return createSequence(name(sequence));
|
||||
|
||||
Loading…
Reference in New Issue
Block a user