From 49bab23c5428b80df0f285bee0884f91024d9d1d Mon Sep 17 00:00:00 2001 From: anqiansong Date: Tue, 28 Dec 2021 16:40:26 +0800 Subject: [PATCH] fix #1376 (#1380) * fix #1376 * fix #1376 Co-authored-by: anqiansong --- tools/goctl/model/sql/converter/types.go | 102 +++++++++++++++-------- 1 file changed, 66 insertions(+), 36 deletions(-) diff --git a/tools/goctl/model/sql/converter/types.go b/tools/goctl/model/sql/converter/types.go index eee7c18d..5f682ea2 100644 --- a/tools/goctl/model/sql/converter/types.go +++ b/tools/goctl/model/sql/converter/types.go @@ -10,8 +10,7 @@ import ( var commonMysqlDataTypeMapInt = map[int]string{ // For consistency, all integer types are converted to int64 // number - parser.Bool: "int64", - parser.Boolean: "int64", + parser.Bit: "byte", parser.TinyInt: "int64", parser.SmallInt: "int64", parser.MediumInt: "int64", @@ -29,6 +28,10 @@ var commonMysqlDataTypeMapInt = map[int]string{ parser.Float8: "float64", parser.Double: "float64", parser.Decimal: "float64", + parser.Dec: "float64", + parser.Fixed: "float64", + parser.Numeric: "float64", + parser.Real: "float64", // date&time parser.Date: "time.Time", parser.DateTime: "time.Time", @@ -36,37 +39,58 @@ var commonMysqlDataTypeMapInt = map[int]string{ parser.Time: "string", parser.Year: "int64", // 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{ // For consistency, all integer types are converted to int64 + // bool + "bool": "bool", + "boolean": "bool", // number - "bool": "int64", - "boolean": "int64", "tinyint": "int64", "smallint": "int64", "mediumint": "int64", "int": "int64", + "int1": "int64", + "int2": "int64", + "int3": "int64", + "int4": "int64", + "int8": "int64", "integer": "int64", "bigint": "int64", "float": "float64", + "float4": "float64", + "float8": "float64", "double": "float64", "decimal": "float64", + "dec": "float64", + "fixed": "float64", + "real": "float64", + "bit": "byte", // date & time "date": "time.Time", "datetime": "time.Time", @@ -74,23 +98,29 @@ var commonMysqlDataTypeMapString = map[string]string{ "time": "string", "year": "int64", // 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