func()

in encoder/msgpack.go [73:100]


func (e *msgPackEncoder) fixFieldType(dtype string, f interface{}) interface{} {
	switch v := f.(type) {
	case int64:
		switch dtype {
		case "int", "integer", "tinyint", "smallint", "mediumint", "year":
			return int32(v)
		}
	case time.Time:
		switch dtype {
		case "datetime":
			return v.In(time.UTC)
		case "timestamp":
			if v.Equal(time.Time{}) {
				return v.In(time.UTC)
			}
			return v.In(time.Local)
		}
	//There is one corner case when time can be encoded as string it's 0000-00-00 00:00:00
	case string:
		switch dtype {
		case "datetime":
			return ZeroTime
		case "timestamp":
			return ZeroTime
		}
	}
	return f
}