24 |
24 |
|
25 |
25 |
private static final Logger logger = Logger.getLogger(ColumnNameChanger.class);
|
26 |
26 |
|
27 |
|
private final String newColumnName;
|
28 |
|
private final String oldColumnName;
|
29 |
|
private final Datatype datatype; //TODO make enum
|
|
27 |
private String newColumnName;
|
|
28 |
private String oldColumnName;
|
|
29 |
private Datatype datatype;
|
|
30 |
private Integer size; //only required for MySQL
|
30 |
31 |
|
31 |
32 |
private enum Datatype{
|
32 |
33 |
integer,
|
33 |
|
clob
|
|
34 |
clob,
|
|
35 |
varchar
|
34 |
36 |
}
|
35 |
37 |
|
36 |
38 |
public static ColumnNameChanger NewIntegerInstance(String stepName, String tableName, String oldColumnName, String newColumnName, boolean includeAudTable){
|
37 |
|
return new ColumnNameChanger(stepName, tableName, oldColumnName, newColumnName, includeAudTable, null, Datatype.integer);
|
|
39 |
return new ColumnNameChanger(stepName, tableName, oldColumnName, newColumnName, includeAudTable, null, Datatype.integer, null);
|
38 |
40 |
}
|
39 |
41 |
|
40 |
42 |
public static ColumnNameChanger NewClobInstance(String stepName, String tableName, String oldColumnName,
|
41 |
43 |
String newColumnName, boolean includeAudTable){
|
42 |
|
return new ColumnNameChanger(stepName, tableName, oldColumnName, newColumnName, includeAudTable, null, Datatype.clob);
|
|
44 |
return new ColumnNameChanger(stepName, tableName, oldColumnName, newColumnName, includeAudTable, null, Datatype.clob, null);
|
43 |
45 |
}
|
44 |
46 |
|
|
47 |
public static ColumnNameChanger NewVarCharInstance(String stepName, String tableName, String oldColumnName,
|
|
48 |
String newColumnName, int size, boolean includeAudTable){
|
|
49 |
return new ColumnNameChanger(stepName, tableName, oldColumnName, newColumnName, includeAudTable, null, Datatype.varchar, size);
|
|
50 |
}
|
|
51 |
|
|
52 |
// **************************************** Constructor ***************************************/
|
|
53 |
|
45 |
54 |
protected ColumnNameChanger(String stepName, String tableName, String oldColumnName,
|
46 |
|
String newColumnName, boolean includeAudTable, Object defaultValue, Datatype datatype) {
|
|
55 |
String newColumnName, boolean includeAudTable, Object defaultValue, Datatype datatype, Integer size) {
|
47 |
56 |
super(stepName, tableName, includeAudTable);
|
48 |
57 |
this.newColumnName = newColumnName;
|
49 |
58 |
this.oldColumnName = oldColumnName;
|
50 |
59 |
this.datatype = datatype;
|
|
60 |
this.size = size;
|
51 |
61 |
}
|
52 |
62 |
|
53 |
63 |
@Override
|
... | ... | |
98 |
108 |
return "integer";
|
99 |
109 |
}else if (this.datatype == Datatype.clob){
|
100 |
110 |
return "longtext";
|
101 |
|
}else{
|
|
111 |
}else if (this.datatype == Datatype.varchar){
|
|
112 |
return "nvarchar("+size+")";
|
|
113 |
}else{
|
102 |
114 |
throw new RuntimeException("Definition type not supported");
|
103 |
115 |
}
|
104 |
116 |
}
|
ref #7238 fix datatype for renaming Person.lastname and firstname