package liquibase.datatype.core; import liquibase.database.Database; import liquibase.database.core.*; import liquibase.datatype.DataTypeInfo; import liquibase.datatype.DatabaseDataType; import liquibase.datatype.LiquibaseDataType; @DataTypeInfo(name="double", aliases = {"java.sql.Types.DOUBLE", "java.lang.Double"}, minParameters = 0, maxParameters = 2, priority = LiquibaseDataType.PRIORITY_DEFAULT) public class DoubleType extends LiquibaseDataType { @Override public DatabaseDataType toDatabaseDataType(Database database) { if (database instanceof MSSQLDatabase) { return new DatabaseDataType(database.escapeDataTypeName("float"), 53); } if (database instanceof MySQLDatabase) { if (getParameters() != null && getParameters().length > 1) { return new DatabaseDataType("DOUBLE", getParameters()); } else { return new DatabaseDataType("DOUBLE"); } } if (database instanceof DB2Database || database instanceof DerbyDatabase || database instanceof HsqlDatabase) { return new DatabaseDataType("DOUBLE"); } if (database instanceof OracleDatabase) { return new DatabaseDataType("FLOAT", 24); } if (database instanceof PostgresDatabase) { return new DatabaseDataType("DOUBLE PRECISION"); } if (database instanceof InformixDatabase) { return new DatabaseDataType("DOUBLE PRECISION"); } if (database instanceof FirebirdDatabase) { return new DatabaseDataType("DOUBLE PRECISION"); } return super.toDatabaseDataType(database); } }