mirror of
https://github.com/ebean-orm/ebean.git
synced 2024-04-21 10:51:47 +00:00
Refactor PlatformDdl separate call to asIdentityColumn() (#1961)
This commit is contained in:
+3
-3
@@ -44,8 +44,8 @@ public abstract class AbstractHanaDdl extends PlatformDdl {
|
||||
String columnName = alter.getColumnName();
|
||||
String currentType = alter.getCurrentType();
|
||||
String type = alter.getType() != null ? alter.getType() : currentType;
|
||||
type = convert(type, false);
|
||||
currentType = convert(currentType, false);
|
||||
type = convert(type);
|
||||
currentType = convert(currentType);
|
||||
boolean notnull = (alter.isNotnull() != null) ? alter.isNotnull() : Boolean.TRUE.equals(alter.isCurrentNotnull());
|
||||
String notnullClause = notnull ? " not null" : "";
|
||||
String defaultValue = DdlHelp.isDropDefault(alter.getDefaultValue()) ? "null"
|
||||
@@ -103,7 +103,7 @@ public abstract class AbstractHanaDdl extends PlatformDdl {
|
||||
protected String convertArrayType(String logicalArrayType) {
|
||||
Matcher matcher = ARRAY_PATTERN.matcher(logicalArrayType);
|
||||
if (matcher.matches()) {
|
||||
return convert(matcher.group(1), false) + " array" + (matcher.group(2) == null ? "" : matcher.group(2));
|
||||
return convert(matcher.group(1)) + " array" + (matcher.group(2) == null ? "" : matcher.group(2));
|
||||
} else {
|
||||
return fallbackArrayType;
|
||||
}
|
||||
|
||||
+1
-1
@@ -195,7 +195,7 @@ public abstract class DbTriggerBasedHistoryDdl implements PlatformHistoryDdl {
|
||||
*/
|
||||
protected void writeColumnDefinition(DdlBuffer buffer, String columnName, String type) throws IOException {
|
||||
|
||||
String platformType = platformDdl.convert(type, false);
|
||||
String platformType = platformDdl.convert(type);
|
||||
buffer.append(" ");
|
||||
buffer.append(platformDdl.lowerColumnName(columnName), 29);
|
||||
buffer.append(platformType);
|
||||
|
||||
+1
-1
@@ -109,7 +109,7 @@ public class HanaHistoryDdl implements PlatformHistoryDdl {
|
||||
protected void writeColumnDefinition(DdlBuffer buffer, String columnName, String type, String defaultValue,
|
||||
boolean isNotNull, String generated) throws IOException {
|
||||
|
||||
String platformType = platformDdl.convert(type, false);
|
||||
String platformType = platformDdl.convert(type);
|
||||
buffer.append(" ").append(platformDdl.lowerColumnName(columnName));
|
||||
buffer.append(" ").append(platformType);
|
||||
if (defaultValue != null) {
|
||||
|
||||
@@ -107,7 +107,7 @@ public class MySqlDdl extends PlatformDdl {
|
||||
String tableName = alter.getTableName();
|
||||
String columnName = alter.getColumnName();
|
||||
String type = alter.getType() != null ? alter.getType() : alter.getCurrentType();
|
||||
type = convert(type, false);
|
||||
type = convert(type);
|
||||
boolean notnull = (alter.isNotnull() != null) ? alter.isNotnull() : Boolean.TRUE.equals(alter.isCurrentNotnull());
|
||||
String notnullClause = notnull ? " not null" : "";
|
||||
|
||||
|
||||
@@ -246,12 +246,14 @@ public class PlatformDdl {
|
||||
*/
|
||||
protected void writeColumnDefinition(DdlBuffer buffer, Column column, boolean useIdentity) throws IOException {
|
||||
|
||||
boolean identityColumn = useIdentity && isTrue(column.isPrimaryKey());
|
||||
String platformType = convert(column.getType(), identityColumn);
|
||||
String columnDefn = convert(column.getType());
|
||||
if (useIdentity && isTrue(column.isPrimaryKey())) {
|
||||
columnDefn = asIdentityColumn(columnDefn);
|
||||
}
|
||||
|
||||
buffer.append(" ");
|
||||
buffer.append(lowerColumnName(column.getName()), 29);
|
||||
buffer.append(platformType);
|
||||
buffer.append(columnDefn);
|
||||
if (!Boolean.TRUE.equals(column.isPrimaryKey())) {
|
||||
String defaultValue = convertDefaultValue(column.getDefaultValue());
|
||||
if (defaultValue != null) {
|
||||
@@ -297,15 +299,14 @@ public class PlatformDdl {
|
||||
/**
|
||||
* Convert the standard type to the platform specific type.
|
||||
*/
|
||||
public String convert(String type, boolean identity) {
|
||||
public String convert(String type) {
|
||||
if (type == null) {
|
||||
return null;
|
||||
}
|
||||
if (type.contains("[]")) {
|
||||
return convertArrayType(type);
|
||||
}
|
||||
String platformType = typeConverter.convert(type);
|
||||
return identity ? asIdentityColumn(platformType) : platformType;
|
||||
return typeConverter.convert(type);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -511,13 +512,12 @@ public class PlatformDdl {
|
||||
|
||||
public void alterTableAddColumn(DdlBuffer buffer, String tableName, Column column, boolean onHistoryTable, String defaultValue) throws IOException {
|
||||
|
||||
String convertedType = convert(column.getType(), false);
|
||||
String convertedType = convert(column.getType());
|
||||
|
||||
buffer.append("alter table ").append(tableName)
|
||||
.append(" ").append(addColumn).append(" ").append(column.getName())
|
||||
.append(" ").append(convertedType);
|
||||
|
||||
|
||||
// Add default value also to history table if it is not excluded
|
||||
if (defaultValue != null) {
|
||||
if (!onHistoryTable || !isTrue(column.isHistoryExclude())) {
|
||||
@@ -568,7 +568,7 @@ public class PlatformDdl {
|
||||
* </p>
|
||||
*/
|
||||
public String alterColumnType(String tableName, String columnName, String type) {
|
||||
return "alter table " + tableName + " " + alterColumn + " " + columnName + " " + columnSetType + convert(type, false) + alterColumnSuffix;
|
||||
return "alter table " + tableName + " " + alterColumn + " " + columnName + " " + columnSetType + convert(type) + alterColumnSuffix;
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -157,7 +157,7 @@ public class SqlServerDdl extends PlatformDdl {
|
||||
String tableName = alter.getTableName();
|
||||
String columnName = alter.getColumnName();
|
||||
String type = alter.getType() != null ? alter.getType() : alter.getCurrentType();
|
||||
type = convert(type, false);
|
||||
type = convert(type);
|
||||
boolean notnull = (alter.isNotnull() != null) ? alter.isNotnull() : Boolean.TRUE.equals(alter.isCurrentNotnull());
|
||||
String notnullClause = notnull ? " not null" : "";
|
||||
|
||||
|
||||
@@ -11,17 +11,17 @@ public class H2PlatformTest {
|
||||
|
||||
@Test
|
||||
public void testTypeConversion() {
|
||||
|
||||
|
||||
PlatformDdl ddl = PlatformDdlBuilder.create(new H2Platform());
|
||||
|
||||
assertThat(ddl.convert("clob", false)).isEqualTo("clob");
|
||||
assertThat(ddl.convert("json", false)).isEqualTo("clob");
|
||||
assertThat(ddl.convert("jsonb", false)).isEqualTo("clob");
|
||||
assertThat(ddl.convert("varchar(20)", false)).isEqualTo("varchar(20)");
|
||||
assertThat(ddl.convert("decimal(10)", false)).isEqualTo("decimal(10)");
|
||||
assertThat(ddl.convert("decimal(8,4)", false)).isEqualTo("decimal(8,4)");
|
||||
assertThat(ddl.convert("boolean", false)).isEqualTo("boolean");
|
||||
assertThat(ddl.convert("bit", false)).isEqualTo("bit");
|
||||
assertThat(ddl.convert("clob")).isEqualTo("clob");
|
||||
assertThat(ddl.convert("json")).isEqualTo("clob");
|
||||
assertThat(ddl.convert("jsonb")).isEqualTo("clob");
|
||||
assertThat(ddl.convert("varchar(20)")).isEqualTo("varchar(20)");
|
||||
assertThat(ddl.convert("decimal(10)")).isEqualTo("decimal(10)");
|
||||
assertThat(ddl.convert("decimal(8,4)")).isEqualTo("decimal(8,4)");
|
||||
assertThat(ddl.convert("boolean")).isEqualTo("boolean");
|
||||
assertThat(ddl.convert("bit")).isEqualTo("bit");
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -17,29 +17,29 @@ public class HanaPlatformTest {
|
||||
|
||||
PlatformDdl ddl = PlatformDdlBuilder.create(platform);
|
||||
|
||||
assertThat(ddl.convert("clob", false)).isEqualTo("nclob");
|
||||
assertThat(ddl.convert("blob", false)).isEqualTo("blob");
|
||||
assertThat(ddl.convert("json", false)).isEqualTo("nclob");
|
||||
assertThat(ddl.convert("jsonb", false)).isEqualTo("nclob");
|
||||
assertThat(ddl.convert("jsonvarchar", false)).isEqualTo("nvarchar(255)");
|
||||
assertThat(ddl.convert("clob")).isEqualTo("nclob");
|
||||
assertThat(ddl.convert("blob")).isEqualTo("blob");
|
||||
assertThat(ddl.convert("json")).isEqualTo("nclob");
|
||||
assertThat(ddl.convert("jsonb")).isEqualTo("nclob");
|
||||
assertThat(ddl.convert("jsonvarchar")).isEqualTo("nvarchar(255)");
|
||||
|
||||
assertThat(ddl.convert("double", false)).isEqualTo("double");
|
||||
assertThat(ddl.convert("varchar(20)", false)).isEqualTo("nvarchar(20)");
|
||||
assertThat(ddl.convert("decimal(10)", false)).isEqualTo("decimal(10)");
|
||||
assertThat(ddl.convert("decimal(8,4)", false)).isEqualTo("decimal(8,4)");
|
||||
assertThat(ddl.convert("boolean", false)).isEqualTo("boolean");
|
||||
assertThat(ddl.convert("bit", false)).isEqualTo("smallint");
|
||||
assertThat(ddl.convert("tinyint", false)).isEqualTo("smallint");
|
||||
assertThat(ddl.convert("binary", false)).isEqualTo("varbinary(255)");
|
||||
assertThat(ddl.convert("binary(16)", false)).isEqualTo("varbinary(16)");
|
||||
|
||||
assertThat(ddl.convert("point", false)).isEqualTo("st_point");
|
||||
|
||||
assertThat(ddl.convert("multilinestring", false)).isEqualTo("st_geometry");
|
||||
assertThat(ddl.convert("multipolygon", false)).isEqualTo("st_geometry");
|
||||
assertThat(ddl.convert("multipoint", false)).isEqualTo("st_geometry");
|
||||
assertThat(ddl.convert("linestring", false)).isEqualTo("st_geometry");
|
||||
assertThat(ddl.convert("polygon", false)).isEqualTo("st_geometry");
|
||||
assertThat(ddl.convert("double")).isEqualTo("double");
|
||||
assertThat(ddl.convert("varchar(20)")).isEqualTo("nvarchar(20)");
|
||||
assertThat(ddl.convert("decimal(10)")).isEqualTo("decimal(10)");
|
||||
assertThat(ddl.convert("decimal(8,4)")).isEqualTo("decimal(8,4)");
|
||||
assertThat(ddl.convert("boolean")).isEqualTo("boolean");
|
||||
assertThat(ddl.convert("bit")).isEqualTo("smallint");
|
||||
assertThat(ddl.convert("tinyint")).isEqualTo("smallint");
|
||||
assertThat(ddl.convert("binary")).isEqualTo("varbinary(255)");
|
||||
assertThat(ddl.convert("binary(16)")).isEqualTo("varbinary(16)");
|
||||
|
||||
assertThat(ddl.convert("point")).isEqualTo("st_point");
|
||||
|
||||
assertThat(ddl.convert("multilinestring")).isEqualTo("st_geometry");
|
||||
assertThat(ddl.convert("multipolygon")).isEqualTo("st_geometry");
|
||||
assertThat(ddl.convert("multipoint")).isEqualTo("st_geometry");
|
||||
assertThat(ddl.convert("linestring")).isEqualTo("st_geometry");
|
||||
assertThat(ddl.convert("polygon")).isEqualTo("st_geometry");
|
||||
}
|
||||
|
||||
@Test
|
||||
|
||||
@@ -15,12 +15,12 @@ public class MySqlPlatformTest {
|
||||
@Test
|
||||
public void testTypeConversion() {
|
||||
PlatformDdl ddl = PlatformDdlBuilder.create(mySqlPlatform);
|
||||
assertThat(ddl.convert("clob", false)).isEqualTo("longtext");
|
||||
assertThat(ddl.convert("json", false)).isEqualTo("json");
|
||||
assertThat(ddl.convert("jsonb", false)).isEqualTo("json");
|
||||
assertThat(ddl.convert("varchar(20)", false)).isEqualTo("varchar(20)");
|
||||
assertThat(ddl.convert("boolean", false)).isEqualTo("tinyint(1)");
|
||||
assertThat(ddl.convert("bit", false)).isEqualTo("tinyint(1)");
|
||||
assertThat(ddl.convert("clob")).isEqualTo("longtext");
|
||||
assertThat(ddl.convert("json")).isEqualTo("json");
|
||||
assertThat(ddl.convert("jsonb")).isEqualTo("json");
|
||||
assertThat(ddl.convert("varchar(20)")).isEqualTo("varchar(20)");
|
||||
assertThat(ddl.convert("boolean")).isEqualTo("tinyint(1)");
|
||||
assertThat(ddl.convert("bit")).isEqualTo("tinyint(1)");
|
||||
}
|
||||
|
||||
@Test
|
||||
|
||||
@@ -17,19 +17,19 @@ public class OraclePlatformTest {
|
||||
|
||||
PlatformDdl ddl = PlatformDdlBuilder.create(platform);
|
||||
|
||||
assertThat(ddl.convert("clob", false)).isEqualTo("clob");
|
||||
assertThat(ddl.convert("blob", false)).isEqualTo("blob");
|
||||
assertThat(ddl.convert("json", false)).isEqualTo("clob");
|
||||
assertThat(ddl.convert("jsonb", false)).isEqualTo("clob");
|
||||
assertThat(ddl.convert("clob")).isEqualTo("clob");
|
||||
assertThat(ddl.convert("blob")).isEqualTo("blob");
|
||||
assertThat(ddl.convert("json")).isEqualTo("clob");
|
||||
assertThat(ddl.convert("jsonb")).isEqualTo("clob");
|
||||
|
||||
assertThat(ddl.convert("double", false)).isEqualTo("number(19,4)");
|
||||
assertThat(ddl.convert("varchar(20)", false)).isEqualTo("varchar2(20)");
|
||||
assertThat(ddl.convert("decimal(10)", false)).isEqualTo("number(10)");
|
||||
assertThat(ddl.convert("decimal(8,4)", false)).isEqualTo("number(8,4)");
|
||||
assertThat(ddl.convert("boolean", false)).isEqualTo("number(1)");
|
||||
assertThat(ddl.convert("bit", false)).isEqualTo("bit");
|
||||
assertThat(ddl.convert("tinyint", false)).isEqualTo("number(3)");
|
||||
assertThat(ddl.convert("binary(16)", false)).isEqualTo("raw(16)");
|
||||
assertThat(ddl.convert("double")).isEqualTo("number(19,4)");
|
||||
assertThat(ddl.convert("varchar(20)")).isEqualTo("varchar2(20)");
|
||||
assertThat(ddl.convert("decimal(10)")).isEqualTo("number(10)");
|
||||
assertThat(ddl.convert("decimal(8,4)")).isEqualTo("number(8,4)");
|
||||
assertThat(ddl.convert("boolean")).isEqualTo("number(1)");
|
||||
assertThat(ddl.convert("bit")).isEqualTo("bit");
|
||||
assertThat(ddl.convert("tinyint")).isEqualTo("number(3)");
|
||||
assertThat(ddl.convert("binary(16)")).isEqualTo("raw(16)");
|
||||
}
|
||||
|
||||
@Test
|
||||
|
||||
@@ -17,19 +17,19 @@ public class PostgresPlatformTest {
|
||||
PostgresPlatform platform = new PostgresPlatform();
|
||||
PlatformDdl ddl = PlatformDdlBuilder.create(platform);
|
||||
|
||||
assertThat(ddl.convert("clob", false)).isEqualTo("text");
|
||||
assertThat(ddl.convert("blob", false)).isEqualTo("bytea");
|
||||
assertThat(ddl.convert("json", false)).isEqualTo("json");
|
||||
assertThat(ddl.convert("jsonb", false)).isEqualTo("jsonb");
|
||||
assertThat(ddl.convert("hstore", false)).isEqualTo("hstore");
|
||||
assertThat(ddl.convert("double", false)).isEqualTo("float");
|
||||
assertThat(ddl.convert("tinyint", false)).isEqualTo("smallint");
|
||||
assertThat(ddl.convert("double", false)).isEqualTo("float");
|
||||
assertThat(ddl.convert("varchar(20)", false)).isEqualTo("varchar(20)");
|
||||
assertThat(ddl.convert("decimal(10)", false)).isEqualTo("decimal(10)");
|
||||
assertThat(ddl.convert("decimal(8,4)", false)).isEqualTo("decimal(8,4)");
|
||||
assertThat(ddl.convert("boolean", false)).isEqualTo("boolean");
|
||||
assertThat(ddl.convert("bit", false)).isEqualTo("bit");
|
||||
assertThat(ddl.convert("clob")).isEqualTo("text");
|
||||
assertThat(ddl.convert("blob")).isEqualTo("bytea");
|
||||
assertThat(ddl.convert("json")).isEqualTo("json");
|
||||
assertThat(ddl.convert("jsonb")).isEqualTo("jsonb");
|
||||
assertThat(ddl.convert("hstore")).isEqualTo("hstore");
|
||||
assertThat(ddl.convert("double")).isEqualTo("float");
|
||||
assertThat(ddl.convert("tinyint")).isEqualTo("smallint");
|
||||
assertThat(ddl.convert("double")).isEqualTo("float");
|
||||
assertThat(ddl.convert("varchar(20)")).isEqualTo("varchar(20)");
|
||||
assertThat(ddl.convert("decimal(10)")).isEqualTo("decimal(10)");
|
||||
assertThat(ddl.convert("decimal(8,4)")).isEqualTo("decimal(8,4)");
|
||||
assertThat(ddl.convert("boolean")).isEqualTo("boolean");
|
||||
assertThat(ddl.convert("bit")).isEqualTo("bit");
|
||||
|
||||
}
|
||||
|
||||
|
||||
@@ -17,19 +17,19 @@ public class SqlserverPlatformTest {
|
||||
|
||||
PlatformDdl ddl = PlatformDdlBuilder.create(platform);
|
||||
|
||||
assertThat(ddl.convert("clob", false)).isEqualTo("nvarchar(max)");
|
||||
assertThat(ddl.convert("blob", false)).isEqualTo("image");
|
||||
assertThat(ddl.convert("json", false)).isEqualTo("nvarchar(max)");
|
||||
assertThat(ddl.convert("jsonb", false)).isEqualTo("nvarchar(max)");
|
||||
assertThat(ddl.convert("clob")).isEqualTo("nvarchar(max)");
|
||||
assertThat(ddl.convert("blob")).isEqualTo("image");
|
||||
assertThat(ddl.convert("json")).isEqualTo("nvarchar(max)");
|
||||
assertThat(ddl.convert("jsonb")).isEqualTo("nvarchar(max)");
|
||||
|
||||
assertThat(ddl.convert("double", false)).isEqualTo("float(32)");
|
||||
assertThat(ddl.convert("varchar(20)", false)).isEqualTo("nvarchar(20)");
|
||||
assertThat(ddl.convert("decimal(10)", false)).isEqualTo("numeric(10)");
|
||||
assertThat(ddl.convert("decimal(8,4)", false)).isEqualTo("numeric(8,4)");
|
||||
assertThat(ddl.convert("boolean", false)).isEqualTo("bit");
|
||||
assertThat(ddl.convert("bit", false)).isEqualTo("bit");
|
||||
assertThat(ddl.convert("tinyint", false)).isEqualTo("smallint");
|
||||
assertThat(ddl.convert("binary(16)", false)).isEqualTo("binary(16)");
|
||||
assertThat(ddl.convert("double")).isEqualTo("float(32)");
|
||||
assertThat(ddl.convert("varchar(20)")).isEqualTo("nvarchar(20)");
|
||||
assertThat(ddl.convert("decimal(10)")).isEqualTo("numeric(10)");
|
||||
assertThat(ddl.convert("decimal(8,4)")).isEqualTo("numeric(8,4)");
|
||||
assertThat(ddl.convert("boolean")).isEqualTo("bit");
|
||||
assertThat(ddl.convert("bit")).isEqualTo("bit");
|
||||
assertThat(ddl.convert("tinyint")).isEqualTo("smallint");
|
||||
assertThat(ddl.convert("binary(16)")).isEqualTo("binary(16)");
|
||||
}
|
||||
|
||||
@Test
|
||||
|
||||
Reference in New Issue
Block a user