[#5067] Add AlterTableStep.alter[Column](Name), add[Column](Name), drop[Column](Name)

This commit is contained in:
lukaseder 2016-02-08 14:04:11 +01:00
parent ecb62b55f5
commit 2b2dfabdff
4 changed files with 109 additions and 6 deletions

View File

@ -79,6 +79,15 @@ public interface AlterTableStep {
@Support({ CUBRID, DERBY, FIREBIRD, H2, HSQLDB, MARIADB, MYSQL, POSTGRES })
<T> AlterTableAlterStep<T> alter(Field<T> field);
/**
* Add an <code>ALTER COLUMN</code> clause to the <code>ALTER TABLE</code>
* statement.
* <p>
* This is an alias for {@link #alterColumn(Name)}
*/
@Support({ CUBRID, DERBY, FIREBIRD, H2, HSQLDB, MARIADB, MYSQL, POSTGRES })
AlterTableAlterStep<Object> alter(Name field);
/**
* Add an <code>ALTER COLUMN</code> clause to the <code>ALTER TABLE</code>
* statement.
@ -95,6 +104,13 @@ public interface AlterTableStep {
@Support({ CUBRID, DERBY, FIREBIRD, H2, HSQLDB, MARIADB, MYSQL, POSTGRES })
<T> AlterTableAlterStep<T> alterColumn(Field<T> field);
/**
* Add an <code>ALTER COLUMN</code> clause to the <code>ALTER TABLE</code>
* statement.
*/
@Support({ CUBRID, DERBY, FIREBIRD, H2, HSQLDB, MARIADB, MYSQL, POSTGRES })
AlterTableAlterStep<Object> alterColumn(Name field);
/**
* Add an <code>ALTER COLUMN</code> clause to the <code>ALTER TABLE</code>
* statement.
@ -111,6 +127,15 @@ public interface AlterTableStep {
@Support
<T> AlterTableFinalStep add(Field<T> field, DataType<T> type);
/**
* Add an <code>ADD COLUMN</code> clause to the <code>ALTER TABLE</code>
* statement.
* <p>
* This is an alias for {@link #addColumn(Name, DataType)}.
*/
@Support
AlterTableFinalStep add(Name field, DataType<?> type);
/**
* Add an <code>ADD COLUMN</code> clause to the <code>ALTER TABLE</code>
* statement.
@ -127,6 +152,13 @@ public interface AlterTableStep {
@Support
<T> AlterTableFinalStep addColumn(Field<T> field, DataType<T> type);
/**
* Add an <code>ADD COLUMN</code> clause to the <code>ALTER TABLE</code>
* statement.
*/
@Support
AlterTableFinalStep addColumn(Name field, DataType<?> type);
/**
* Add an <code>ADD COLUMN</code> clause to the <code>ALTER TABLE</code>
* statement.
@ -150,6 +182,15 @@ public interface AlterTableStep {
@Support({ CUBRID, DERBY, FIREBIRD, H2, HSQLDB, MARIADB, MYSQL, POSTGRES })
AlterTableDropStep drop(Field<?> field);
/**
* Add an <code>DROP COLUMN</code> clause to the <code>ALTER TABLE</code>
* statement.
* <p>
* This is an alias for {@link #dropColumn(Name)}.
*/
@Support({ CUBRID, DERBY, FIREBIRD, H2, HSQLDB, MARIADB, MYSQL, POSTGRES })
AlterTableDropStep drop(Name field);
/**
* Add an <code>DROP COLUMN</code> clause to the <code>ALTER TABLE</code>
* statement.
@ -166,6 +207,13 @@ public interface AlterTableStep {
@Support({ CUBRID, DERBY, FIREBIRD, H2, HSQLDB, MARIADB, MYSQL, POSTGRES })
AlterTableDropStep dropColumn(Field<?> field);
/**
* Add an <code>DROP COLUMN</code> clause to the <code>ALTER TABLE</code>
* statement.
*/
@Support({ CUBRID, DERBY, FIREBIRD, H2, HSQLDB, MARIADB, MYSQL, POSTGRES })
AlterTableDropStep dropColumn(Name field);
/**
* Add an <code>DROP COLUMN</code> clause to the <code>ALTER TABLE</code>
* statement.
@ -180,6 +228,14 @@ public interface AlterTableStep {
@Support({ CUBRID, DERBY, FIREBIRD, H2, HSQLDB, MARIADB, MYSQL, POSTGRES })
AlterTableFinalStep drop(Constraint constraint);
/**
* Add a <code>DROP CONSTRAINT</code> clause to the <code>ALTER TABLE</code>
* statement.
*
* @see DSL#constraint(String)
*/
@Support({ CUBRID, DERBY, FIREBIRD, H2, HSQLDB, MARIADB, MYSQL, POSTGRES })
AlterTableFinalStep dropConstraint(Name constraint);
/**
* Add a <code>DROP CONSTRAINT</code> clause to the <code>ALTER TABLE</code>
* statement.

View File

@ -69,6 +69,7 @@ import org.jooq.Context;
import org.jooq.DSLContext;
import org.jooq.DataType;
import org.jooq.Field;
import org.jooq.Name;
import org.jooq.SQLDialect;
import org.jooq.Table;
@ -115,6 +116,11 @@ final class AlterTableImpl extends AbstractQuery implements
return addColumn(field, type);
}
@Override
public final AlterTableImpl add(Name field, DataType<?> type) {
return addColumn(field, type);
}
@Override
public final AlterTableImpl add(String field, DataType<?> type) {
return addColumn(field, type);
@ -122,7 +128,12 @@ final class AlterTableImpl extends AbstractQuery implements
@Override
public final AlterTableImpl addColumn(String field, DataType<?> type) {
return addColumn((Field) field(name(field), type), type);
return addColumn(name(field), type);
}
@Override
public final AlterTableImpl addColumn(Name field, DataType<?> type) {
return addColumn((Field) field(field, type), type);
}
@Override
@ -143,14 +154,24 @@ final class AlterTableImpl extends AbstractQuery implements
return alterColumn(field);
}
@Override
public final AlterTableImpl alter(Name field) {
return alterColumn(field);
}
@Override
public final AlterTableImpl alter(String field) {
return alterColumn(field);
}
@Override
public final AlterTableImpl alterColumn(Name field) {
return alterColumn(field(field));
}
@Override
public final AlterTableImpl alterColumn(String field) {
return alterColumn(field(name(field)));
return alterColumn(name(field));
}
@Override
@ -181,14 +202,24 @@ final class AlterTableImpl extends AbstractQuery implements
return dropColumn(field);
}
@Override
public final AlterTableImpl drop(Name field) {
return dropColumn(field);
}
@Override
public final AlterTableImpl drop(String field) {
return dropColumn(field);
}
@Override
public final AlterTableImpl dropColumn(Name field) {
return dropColumn(field(field));
}
@Override
public final AlterTableImpl dropColumn(String field) {
return dropColumn(field(name(field)));
return dropColumn(name(field));
}
@Override
@ -203,6 +234,11 @@ final class AlterTableImpl extends AbstractQuery implements
return this;
}
@Override
public final AlterTableImpl dropConstraint(Name constraint) {
return drop(DSL.constraint(constraint));
}
@Override
public final AlterTableImpl dropConstraint(String constraint) {
return drop(DSL.constraint(constraint));

View File

@ -139,8 +139,8 @@ implements
private Action onUpdate;
private Condition check;
ConstraintImpl(String name) {
this.name = name(name);
ConstraintImpl(Name name) {
this.name = name;
}
@Override

View File

@ -4775,9 +4775,20 @@ public class DSL {
// XXX DDL Clauses
// -------------------------------------------------------------------------
/**
* Create a <code>CONSTRAINT</code> specification.
*/
@Support
public static ConstraintTypeStep constraint(Name name) {
return new ConstraintImpl(name);
}
/**
* Create a <code>CONSTRAINT</code> specification.
*/
@Support
public static ConstraintTypeStep constraint(String name) {
return new ConstraintImpl(name);
return constraint(name(name));
}
// -------------------------------------------------------------------------