didi / gendry

a golang library for sql builder
Apache License 2.0
1.6k stars 191 forks source link

fix bug: manager settings set blank value option missing #145

Closed twz915 closed 11 months ago

twz915 commented 11 months ago
db, err = manager.New(conf.Dbname, conf.User, conf.Password, conf.Host).Driver(driver).Set(
    manager.SetParseTime(true),
    manager.SetLoc(url.QueryEscape("Asia/Shanghai")),
    manager.SetCharset(conf.Charset),
    manager.SetTimeout(conf.ConnectTimeout),
    manager.SetReadTimeout(conf.ReadTimeout),
    manager.SetWriteTimeout(conf.WriteTimeout),
    manager.SetInterpolateParams(conf.InterpolateParams)).Port(conf.Port).Open(true)

配置 charset=utf8 时的 dsn

TEST_DB:123456@tcp(127.0.0.1:3306)/TEST_DB?parseTime=true&loc=Asia%2FShanghai&charset=utf8&timeout=5s&readTimeout=5s&writeTimeout=5s&interpolateParams=false

不配置 charset=utf8 时的 dsn

TEST_DB:123456@tcp(127.0.0.1:3306)/TEST_DB?timeout=5s&readTimeout=5s&writeTimeout=5s&interpolateParams=false
caibirdme commented 11 months ago

不设置就不传入啊

twz915 commented 11 months ago

配置的时候,可能用的是结构体,结构体有零值,可能会导致这个问题。 还有,配置时间的时候,万一写错了,这个option 不生效也就罢了,不能前面的 option 都丢失了吧,这还不算 bug 么?@caibirdme

caibirdme commented 11 months ago

我理解错你的表述了,MR没问题,这里确实是个bug