fix querystring bit type (#711)
* fix querystring bit type * fix bit type on postgres
This commit is contained in:
parent
3dad119dd6
commit
8439b76875
|
@ -781,6 +781,9 @@ func (db *postgres) SqlType(c *core.Column) string {
|
||||||
case core.TinyInt:
|
case core.TinyInt:
|
||||||
res = core.SmallInt
|
res = core.SmallInt
|
||||||
return res
|
return res
|
||||||
|
case core.Bit:
|
||||||
|
res = core.Boolean
|
||||||
|
return res
|
||||||
case core.MediumInt, core.Int, core.Integer:
|
case core.MediumInt, core.Int, core.Integer:
|
||||||
if c.IsAutoIncrement {
|
if c.IsAutoIncrement {
|
||||||
return core.Serial
|
return core.Serial
|
||||||
|
|
|
@ -39,6 +39,9 @@ func reflect2value(rawValue *reflect.Value) (str string, err error) {
|
||||||
case reflect.Uint8:
|
case reflect.Uint8:
|
||||||
data := rawValue.Interface().([]byte)
|
data := rawValue.Interface().([]byte)
|
||||||
str = string(data)
|
str = string(data)
|
||||||
|
if str == "\x00" {
|
||||||
|
str = "0"
|
||||||
|
}
|
||||||
default:
|
default:
|
||||||
err = fmt.Errorf("Unsupported struct type %v", vv.Type().Name())
|
err = fmt.Errorf("Unsupported struct type %v", vv.Type().Name())
|
||||||
}
|
}
|
||||||
|
|
|
@ -44,6 +44,30 @@ func TestQueryString(t *testing.T) {
|
||||||
assert.Equal(t, "1.5", records[0]["money"])
|
assert.Equal(t, "1.5", records[0]["money"])
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func TestQueryString2(t *testing.T) {
|
||||||
|
assert.NoError(t, prepareEngine())
|
||||||
|
|
||||||
|
type GetVar3 struct {
|
||||||
|
Id int64 `xorm:"autoincr pk"`
|
||||||
|
Msg bool `xorm:"bit"`
|
||||||
|
}
|
||||||
|
|
||||||
|
assert.NoError(t, testEngine.Sync2(new(GetVar3)))
|
||||||
|
|
||||||
|
var data = GetVar3{
|
||||||
|
Msg: false,
|
||||||
|
}
|
||||||
|
_, err := testEngine.Insert(data)
|
||||||
|
assert.NoError(t, err)
|
||||||
|
|
||||||
|
records, err := testEngine.QueryString("select * from get_var3")
|
||||||
|
assert.NoError(t, err)
|
||||||
|
assert.Equal(t, 1, len(records))
|
||||||
|
assert.Equal(t, 2, len(records[0]))
|
||||||
|
assert.Equal(t, "1", records[0]["id"])
|
||||||
|
assert.True(t, "0" == records[0]["msg"] || "false" == records[0]["msg"])
|
||||||
|
}
|
||||||
|
|
||||||
func toString(i interface{}) string {
|
func toString(i interface{}) string {
|
||||||
switch i.(type) {
|
switch i.(type) {
|
||||||
case []byte:
|
case []byte:
|
||||||
|
|
Loading…
Reference in New Issue