Selaa lähdekoodia

fix #1376 (#1380)

* fix #1376

* fix #1376

Co-authored-by: anqiansong <anqiansong@bytedance.com>
anqiansong 3 vuotta sitten
vanhempi
sitoutus
49bab23c54
1 muutettua tiedostoa jossa 66 lisäystä ja 36 poistoa
  1. 66 36
      tools/goctl/model/sql/converter/types.go

+ 66 - 36
tools/goctl/model/sql/converter/types.go

@@ -10,8 +10,7 @@ import (
 var commonMysqlDataTypeMapInt = map[int]string{
 var commonMysqlDataTypeMapInt = map[int]string{
 	// For consistency, all integer types are converted to int64
 	// For consistency, all integer types are converted to int64
 	// number
 	// number
-	parser.Bool:      "int64",
-	parser.Boolean:   "int64",
+	parser.Bit:       "byte",
 	parser.TinyInt:   "int64",
 	parser.TinyInt:   "int64",
 	parser.SmallInt:  "int64",
 	parser.SmallInt:  "int64",
 	parser.MediumInt: "int64",
 	parser.MediumInt: "int64",
@@ -29,6 +28,10 @@ var commonMysqlDataTypeMapInt = map[int]string{
 	parser.Float8:    "float64",
 	parser.Float8:    "float64",
 	parser.Double:    "float64",
 	parser.Double:    "float64",
 	parser.Decimal:   "float64",
 	parser.Decimal:   "float64",
+	parser.Dec:       "float64",
+	parser.Fixed:     "float64",
+	parser.Numeric:   "float64",
+	parser.Real:      "float64",
 	// date&time
 	// date&time
 	parser.Date:      "time.Time",
 	parser.Date:      "time.Time",
 	parser.DateTime:  "time.Time",
 	parser.DateTime:  "time.Time",
@@ -36,37 +39,58 @@ var commonMysqlDataTypeMapInt = map[int]string{
 	parser.Time:      "string",
 	parser.Time:      "string",
 	parser.Year:      "int64",
 	parser.Year:      "int64",
 	// string
 	// string
-	parser.Char:       "string",
-	parser.VarChar:    "string",
-	parser.Binary:     "string",
-	parser.VarBinary:  "string",
-	parser.TinyText:   "string",
-	parser.Text:       "string",
-	parser.MediumText: "string",
-	parser.LongText:   "string",
-	parser.Enum:       "string",
-	parser.Set:        "string",
-	parser.Json:       "string",
-	parser.Blob:       "string",
-	parser.LongBlob:   "string",
-	parser.MediumBlob: "string",
-	parser.TinyBlob:   "string",
+	parser.Char:            "string",
+	parser.VarChar:         "string",
+	parser.NVarChar:        "string",
+	parser.NChar:           "string",
+	parser.Character:       "string",
+	parser.LongVarChar:     "string",
+	parser.LineString:      "string",
+	parser.MultiLineString: "string",
+	parser.Binary:          "string",
+	parser.VarBinary:       "string",
+	parser.TinyText:        "string",
+	parser.Text:            "string",
+	parser.MediumText:      "string",
+	parser.LongText:        "string",
+	parser.Enum:            "string",
+	parser.Set:             "string",
+	parser.Json:            "string",
+	parser.Blob:            "string",
+	parser.LongBlob:        "string",
+	parser.MediumBlob:      "string",
+	parser.TinyBlob:        "string",
+	// bool
+	parser.Bool:    "bool",
+	parser.Boolean: "bool",
 }
 }
 
 
 var commonMysqlDataTypeMapString = map[string]string{
 var commonMysqlDataTypeMapString = map[string]string{
 	// For consistency, all integer types are converted to int64
 	// For consistency, all integer types are converted to int64
+	// bool
+	"bool":    "bool",
+	"boolean": "bool",
 	// number
 	// number
-	"bool":      "int64",
-	"boolean":   "int64",
 	"tinyint":   "int64",
 	"tinyint":   "int64",
 	"smallint":  "int64",
 	"smallint":  "int64",
 	"mediumint": "int64",
 	"mediumint": "int64",
 	"int":       "int64",
 	"int":       "int64",
+	"int1":      "int64",
+	"int2":      "int64",
+	"int3":      "int64",
+	"int4":      "int64",
+	"int8":      "int64",
 	"integer":   "int64",
 	"integer":   "int64",
 	"bigint":    "int64",
 	"bigint":    "int64",
 	"float":     "float64",
 	"float":     "float64",
+	"float4":    "float64",
+	"float8":    "float64",
 	"double":    "float64",
 	"double":    "float64",
 	"decimal":   "float64",
 	"decimal":   "float64",
+	"dec":       "float64",
+	"fixed":     "float64",
+	"real":      "float64",
+	"bit":       "byte",
 	// date & time
 	// date & time
 	"date":      "time.Time",
 	"date":      "time.Time",
 	"datetime":  "time.Time",
 	"datetime":  "time.Time",
@@ -74,23 +98,29 @@ var commonMysqlDataTypeMapString = map[string]string{
 	"time":      "string",
 	"time":      "string",
 	"year":      "int64",
 	"year":      "int64",
 	// string
 	// string
-	"char":       "string",
-	"varchar":    "string",
-	"binary":     "string",
-	"bytea":      "string",
-	"varbinary":  "string",
-	"tinytext":   "string",
-	"text":       "string",
-	"mediumtext": "string",
-	"longtext":   "string",
-	"enum":       "string",
-	"set":        "string",
-	"json":       "string",
-	"jsonb":      "string",
-	"blob":       "string",
-	"longblob":   "string",
-	"mediumblob": "string",
-	"tinyblob":   "string",
+	"linestring":      "string",
+	"multilinestring": "string",
+	"nvarchar":        "string",
+	"nchar":           "string",
+	"char":            "string",
+	"character":       "string",
+	"varchar":         "string",
+	"binary":          "string",
+	"bytea":           "string",
+	"longvarbinary":   "string",
+	"varbinary":       "string",
+	"tinytext":        "string",
+	"text":            "string",
+	"mediumtext":      "string",
+	"longtext":        "string",
+	"enum":            "string",
+	"set":             "string",
+	"json":            "string",
+	"jsonb":           "string",
+	"blob":            "string",
+	"longblob":        "string",
+	"mediumblob":      "string",
+	"tinyblob":        "string",
 }
 }
 
 
 // ConvertDataType converts mysql column type into golang type
 // ConvertDataType converts mysql column type into golang type