in loader/lib/RandomData.js [118:176]
function getRandomGeneratorForColumn(column) {
var g = {},
min, max, bits;
// TODO: This should rely on generic metadata rather than
// MySQL-specific column type names
switch(column.columnType.toLocaleUpperCase()) {
case "TINYINT":
case "SMALLINT":
case "MEDIUMINT":
case "INT":
case "BIGINT":
if(column.isInPrimaryKey) {
g = new SequentialIntGenerator(0);
}
else {
bits = column.intSize * 8;
max = column.isUnsigned ? Math.pow(2,bits)-1 : Math.pow(2, bits-1);
min = column.isUnsigned ? 0 : 1 - max;
g = new RandomIntGenerator(min, max);
}
break;
case "FLOAT":
case "DOUBLE":
case "DECIMAL":
g = new RandomFloatGenerator(0, 100000); // fixme
break;
case "BINARY":
g = new RandomBinaryGenerator(column.length);
break;
case "CHAR":
g = new RandomCharGenerator(column.length);
break;
case "VARBINARY":
g = new RandomVarbinaryGenerator(column.length);
break;
case "VARCHAR":
g = new RandomVarcharGenerator(column.length);
break;
case "TIMESTAMP":
g = new RandomIntGenerator(0, Math.pow(2,32)-1);
break;
case "YEAR":
g = new RandomIntGenerator(1900, 2155);
break;
case "DATE":
case "TIME":
case "DATETIME":
g = new RandomDateGenerator();
break;
// case "BLOB":
// case "TEXT":
// case "BIT":
default:
throw("UNSUPPORTED COLUMN TYPE " + column.columnType);
}
return g;
}