Skip to content

Commit

Permalink
Merge pull request #3 from borosr/update-mysql-driver
Browse files Browse the repository at this point in the history
Update mysql driver
  • Loading branch information
PumpkinSeed authored Feb 25, 2021
2 parents 4357c3e + db7b4a9 commit 4e9459d
Show file tree
Hide file tree
Showing 3 changed files with 26 additions and 19 deletions.
1 change: 1 addition & 0 deletions drivers/entry.go
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@ const (
Bool
Json
Time
Year
Unknown
)

Expand Down
42 changes: 23 additions & 19 deletions drivers/mysql.go
Original file line number Diff line number Diff line change
Expand Up @@ -25,28 +25,28 @@ func (m MySQL) Insert(fields []string, table string) string {
func (m MySQL) MapField(field string) Field {
field = strings.ToLower(field)
// String types
if strings.Contains(field, "varchar") {
if strings.HasPrefix(field, "varchar") {
l := length(field, "varchar")
if l == nil || len(l) < 1 {
return Field{Type: Unknown, Length: -1}
}
return Field{Type: String, Length: l[0]}
}
if strings.Contains(field, "char") {
if strings.HasPrefix(field, "char") {
l := length(field, "char")
if l == nil || len(l) < 1 {
return Field{Type: Unknown, Length: -1}
}
return Field{Type: String, Length: l[0]}
}
if strings.Contains(field, "varbinary") {
if strings.HasPrefix(field, "varbinary") {
l := length(field, "varbinary")
if l == nil || len(l) < 1 {
return Field{Type: Unknown, Length: -1}
}
return Field{Type: String, Length: l[0]}
}
if strings.Contains(field, "binary") {
if strings.HasPrefix(field, "binary") {
l := length(field, "binary")
if l == nil || len(l) < 1 {
return Field{Type: Unknown, Length: -1}
Expand All @@ -55,35 +55,35 @@ func (m MySQL) MapField(field string) Field {
}

// Numeric types
if strings.Contains(field, "tinyint") {
if strings.HasPrefix(field, "tinyint") {
return Field{Type: Bool, Length: -1}
}
if strings.Contains(field, "smallint") {
if strings.HasPrefix(field, "smallint") {
return Field{Type: Int16, Length: -1}
}
if strings.Contains(field, "mediumint") {
if strings.HasPrefix(field, "mediumint") {
return Field{Type: Int16, Length: -1}
}
if strings.Contains(field, "int") || strings.Contains(field, "bigint"){
if strings.HasPrefix(field, "int") || strings.HasPrefix(field, "bigint"){
return Field{Type: Int32, Length: -1}
}

// Float types
if strings.Contains(field, "decimal") {
if strings.HasPrefix(field, "decimal") {
l := length(field, "decimal")
if l == nil || len(l) < 2 || l[0] < l[1] {
return Field{Type: Unknown, Length: -1}
}
return Field{Type: Float, Length: l[0] - l[1]}
}
if strings.Contains(field, "float") {
if strings.HasPrefix(field, "float") {
l := length(field, "float")
if l == nil || len(l) < 2 || l[0] < l[1] {
return Field{Type: Unknown, Length: -1}
}
return Field{Type: Float, Length: l[0] - l[1]}
}
if strings.Contains(field, "double") {
if strings.HasPrefix(field, "double") {
l := length(field, "double")
if l == nil || len(l) < 2 || l[0] < l[1] {
return Field{Type: Unknown, Length: -1}
Expand All @@ -92,32 +92,36 @@ func (m MySQL) MapField(field string) Field {
}

// Blob
if strings.Contains(field, "blob") {
if strings.HasPrefix(field, "blob") {
return Field{Type: Blob, Length: -1}
}

// Text
if strings.Contains(field, "text") {
if strings.HasPrefix(field, "text") {
return Field{Type: Text, Length: -1}
}

// Json
if strings.Contains(field, "json") {
if strings.HasPrefix(field, "json") {
return Field{Type: Json, Length: -1}
}

// Date
// Timestamp
// Time
// Year
if strings.HasPrefix(field, "year") {
return Field{Type: Year, Length: 4}
}

// Time
// Date
// Timestamp
// Datetime
if strings.Contains(field, "datetime") {
if strings.HasPrefix(field, "datetime") || strings.HasPrefix(field, "date") ||
strings.HasPrefix(field, "timestamp") || strings.HasPrefix(field, "time") {
return Field{Type: Time, Length: -1}
}

// Enum
if strings.Contains(field, "enum") {
if strings.HasPrefix(field, "enum") {
f := strings.Replace(field, "enum(", "", -1)
f = strings.Replace(f, ")", "", -1)
f = strings.Replace(f, "'", "", -1)
Expand Down
2 changes: 2 additions & 0 deletions pkg/action/action.go
Original file line number Diff line number Diff line change
Expand Up @@ -74,6 +74,8 @@ func generateData(driver drivers.Driver, t string) interface{} {
)
case drivers.Time:
return gofakeit.Date()
case drivers.Year:
return gofakeit.Number(1901, 2155)
case drivers.Unknown:
log.Printf("unknown field type: %s\n", t)
return nil
Expand Down

0 comments on commit 4e9459d

Please sign in to comment.