* {@inheritDoc}
*/
protected void initialize(final DDLGenConfiguration conf) {
// numeric types
this.add(new NoParamType("bit", "TINYINT(1)"));
this.add(new OptionalPrecisionType("tinyint", "TINYINT", conf));
this.add(new OptionalPrecisionType("smallint", "SMALLINT", conf));
this.add(new OptionalPrecisionType("integer", "INTEGER", conf));
this.add(new OptionalPrecisionType("int", "INTEGER", conf));
this.add(new OptionalPrecisionType("bigint", "BIGINT", conf));
this.add(new OptionalPrecisionDecimalsType("float", "FLOAT", conf));
this.add(new OptionalPrecisionDecimalsType("double", "DOUBLE", conf));
this.add(new OptionalPrecisionDecimalsType("real", "REAL", conf));
this.add(new OptionalPrecisionDecimalsType("numeric", "NUMERIC", conf));
this.add(new OptionalPrecisionDecimalsType("decimal", "DECIMAL", conf));
// character types
this.add(new OptionalLengthType("char", "CHAR", conf));
this.add(new OptionalLengthType("varchar", "VARCHAR", conf));
LOG.warn("MySql does not support 'LONGVARCHAR' type, use VARCHAR instead.");
this.add(new OptionalLengthType("longvarchar", "VARCHAR", conf));
// date and time types
this.add(new NoParamType("date", "DATE"));
this.add(new NoParamType("time", "TIME"));
this.add(new OptionalPrecisionType("timestamp", "TIMESTAMP", conf));
// other types
this.add(new RequiredLengthType("binary", "BINARY", conf));
this.add(new RequiredLengthType("varbinary", "VARBINARY", conf));
LOG.warn("MySql does not support 'LONGBINARY' type, use VARBINARY instead.");