diff --git a/.gitignore b/.gitignore index 80d9d39..7e7592e 100644 --- a/.gitignore +++ b/.gitignore @@ -1,4 +1,5 @@ random_data_load* vendor/ bin/* +build/* dist/* diff --git a/internal/getters/binary.go b/internal/getters/binary.go index a175205..cf36e06 100644 --- a/internal/getters/binary.go +++ b/internal/getters/binary.go @@ -31,10 +31,15 @@ func (r *RandomBinary) Value() interface{} { } else { s = fake.Sentence() } - if len(s) > int(maxSize) { + + if len(s) < int(maxSize) { + extraData := make([]byte, int(maxSize)-len(s)) + rand.Read(extraData) + return append([]byte(s), extraData...) + } else { s = s[:int(maxSize)] + return s } - return s } func (r *RandomBinary) String() string { diff --git a/main.go b/main.go index 55ba324..e6a29cc 100644 --- a/main.go +++ b/main.go @@ -423,7 +423,7 @@ func makeValueFuncs(conn *sql.DB, fields []tableparser.Field, samples int64) ins values = append(values, getters.NewRandomDate(field.ColumnName, field.IsNullable)) case "datetime", "timestamp": values = append(values, getters.NewRandomDateTime(field.ColumnName, field.IsNullable)) - case "tinyblob", "tinytext", "blob", "text", "mediumtext", "mediumblob", "longblob", "longtext": + case "tinytext", "text", "mediumtext", "longtext": values = append(values, getters.NewRandomString(field.ColumnName, field.CharacterMaximumLength.Int64, field.IsNullable)) case "time": @@ -433,7 +433,7 @@ func makeValueFuncs(conn *sql.DB, fields []tableparser.Field, samples int64) ins int64(time.Now().Year()), field.IsNullable)) case "enum", "set": values = append(values, getters.NewRandomEnum(field.SetEnumVals, field.IsNullable)) - case "binary", "varbinary": + case "binary", "varbinary", "tinyblob", "blob", "mediumblob", "longblob": values = append(values, getters.NewRandomBinary(field.ColumnName, field.CharacterMaximumLength.Int64, field.IsNullable)) default: log.Printf("cannot get field type: %s: %s\n", field.ColumnName, field.DataType)