Merge branch 'master' of gitea.com:azhai/xorm into azhai-master
This commit is contained in:
commit
b246bd26c5
|
@ -510,11 +510,17 @@ func (db *mysql) GetColumns(queryer core.Queryer, ctx context.Context, tableName
|
|||
}
|
||||
col.Length = len1
|
||||
col.Length2 = len2
|
||||
if _, ok := schemas.SqlTypes[colType]; ok {
|
||||
col.SQLType = schemas.SQLType{Name: colType, DefaultLength: len1, DefaultLength2: len2}
|
||||
} else {
|
||||
if _, ok := schemas.SqlTypes[colType]; !ok {
|
||||
if !strings.HasPrefix(colType, "UNSIGNED ") {
|
||||
return nil, nil, fmt.Errorf("unknown colType %v", colType)
|
||||
}
|
||||
colType = colType[len("UNSIGNED "):]
|
||||
}
|
||||
if _, ok := schemas.SqlTypes[colType]; !ok {
|
||||
return nil, nil, fmt.Errorf("unknown colType %v", colType)
|
||||
} else {
|
||||
col.SQLType = schemas.SQLType{Name: colType, DefaultLength: len1, DefaultLength2: len2}
|
||||
}
|
||||
|
||||
if colKey == "PRI" {
|
||||
col.IsPrimaryKey = true
|
||||
|
|
|
@ -325,6 +325,48 @@ func TestUint64Id(t *testing.T) {
|
|||
assert.EqualValues(t, 1, cnt)
|
||||
}
|
||||
|
||||
func TestUnsignedfloat(t *testing.T) {
|
||||
assert.NoError(t, PrepareEngine())
|
||||
|
||||
type UnsignedFloat struct {
|
||||
Id int64
|
||||
UnsignedFloat float64 `xorm:"UNSIGNED FLOAT"`
|
||||
}
|
||||
|
||||
err := testEngine.DropTables(&UnsignedFloat{})
|
||||
assert.NoError(t, err)
|
||||
|
||||
err = testEngine.CreateTables(&UnsignedFloat{})
|
||||
assert.NoError(t, err)
|
||||
|
||||
tables, err := testEngine.DBMetas()
|
||||
assert.NoError(t, err)
|
||||
|
||||
assert.EqualValues(t, 1, len(tables))
|
||||
cols := tables[0].Columns()
|
||||
assert.EqualValues(t, 2, len(cols))
|
||||
if testEngine.Dialect().URI().DBType == schemas.MYSQL {
|
||||
assert.EqualValues(t, "UNSIGNED FLOAT", cols[1].SQLType.Name)
|
||||
}
|
||||
|
||||
idbean := &UnsignedFloat{UnsignedFloat: 12345678.90123456}
|
||||
cnt, err := testEngine.Insert(idbean)
|
||||
assert.NoError(t, err)
|
||||
assert.EqualValues(t, 1, cnt)
|
||||
|
||||
bean := new(UnsignedFloat)
|
||||
has, err := testEngine.Get(bean)
|
||||
assert.NoError(t, err)
|
||||
assert.True(t, has)
|
||||
assert.EqualValues(t, bean.Id, idbean.Id)
|
||||
|
||||
beans := make([]UnsignedFloat, 0)
|
||||
err = testEngine.Find(&beans)
|
||||
assert.NoError(t, err)
|
||||
assert.EqualValues(t, 1, len(beans))
|
||||
assert.EqualValues(t, *bean, beans[0])
|
||||
}
|
||||
|
||||
func TestStringPK(t *testing.T) {
|
||||
assert.NoError(t, PrepareEngine())
|
||||
|
||||
|
|
Loading…
Reference in New Issue