sql/schema: avoid parsing prerelease in semver

Reviewed By: alexsn

Differential Revision: D17476646

fbshipit-source-id: a3c8de5232e8c249c44fcb734c566420dccd0aa8
This commit is contained in:
Ariel Mashraki
2019-09-19 06:35:28 -07:00
committed by Facebook Github Bot
parent bf913111fd
commit 26f3a42944
2 changed files with 18 additions and 1 deletions

View File

@@ -693,7 +693,7 @@ func parseVersion(v string) (*version, bool) {
if i == len(parts) {
break
}
if *e, err = strconv.Atoi(parts[i]); err != nil {
if *e, err = strconv.Atoi(strings.Split(parts[i], "-")[0]); err != nil {
return nil, false
}
}

View File

@@ -93,3 +93,20 @@ func TestColumn_ScanDefault(t *testing.T) {
require.Equal(t, false, c1.Default)
require.Error(t, c1.ScanDefault("foo"))
}
func TestColumn_MySQLType(t *testing.T) {
c1 := &Column{Type: field.TypeString, Unique: true}
require.Equal(t, "varchar(191)", c1.MySQLType("5.5"))
require.Equal(t, "varchar(191)", c1.MySQLType("5.6.1"))
require.Equal(t, "varchar(191)", c1.MySQLType("5.6.8"))
require.Equal(t, "varchar(255)", c1.MySQLType("5.7"))
require.Equal(t, "varchar(255)", c1.MySQLType("5.7.0"))
require.Equal(t, "varchar(255)", c1.MySQLType("5.7.26-log"))
require.Equal(t, "varchar(255)", c1.MySQLType("8-log"))
c1 = &Column{Type: field.TypeJSON}
require.Equal(t, "json", c1.MySQLType("5.7.8"))
require.Equal(t, "json", c1.MySQLType("5.7.8-log"))
require.Equal(t, "longblob", c1.MySQLType("5.5"))
require.Equal(t, "longblob", c1.MySQLType("5.7"))
}