问题发生在 Windows 上,使用 Go 1.5,win 分支上的 driver-go,taos 2.1.0.0。
对于一个简单的用例:
func myexecute(db *sql.DB, sql string, id int, wg *sync.WaitGroup) {
defer wg.Add(1)
rows, err := db.Query(sql)
checkErr(err, sql)
count := 0
for rows.Next() {
// do scan and print
count++
}
}
func main() {
// ...
wg := &sync.WaitGroup{}
sqls := make([]string, 2)
sqls[0] = "select * from stb1 where t1='v1' limit 1"
sqls[1] = "select * from stb1 where t1='v2' limit 5"
for i := 0; i < 2; i++ {
go myexecute(db, sqls[i], i, wg)
}
wg.Wait()
//...
}
结果与 sqls 随机不匹配 - 这意味着 sql B 结果具有使用 sql A 选择的结果。