Open
Description
Go version
1.24
GoFrame version
2.9.0
Can this bug be reproduced with the latest release?
Option Yes
What did you do?
子查询使用子查询时输出了错误日志,通过调试后发现,在如下位置进入后就会输出错误日志 :
gf/database/gdb/gdb_model_soft_time.go
Line 276 in 1534abd
package test
import (
"context"
"fmt"
"testing"
"github.com/gogf/gf/v2/frame/g"
"github.com/gogf/gf/v2/test/gtest"
)
func createTable() string {
db := g.DB()
db.SetDebug(true)
tableName := "test_bug"
if _, err := db.Exec(context.Background(), fmt.Sprintf(`
CREATE TABLE %s (
id int(10) unsigned NOT NULL AUTO_INCREMENT,
name varchar(255) DEFAULT NULL,
age int(10) DEFAULT NULL,
PRIMARY KEY (id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
`, tableName,
)); err != nil {
gtest.Fatal(err)
}
return tableName
}
func dropTable(table string) {
db := g.DB()
if _, err := db.Exec(context.Background(), fmt.Sprintf("DROP TABLE IF EXISTS `%s`", table)); err != nil {
gtest.Error(err)
}
}
func Test_mainFile(t *testing.T) {
db := g.DB()
tableName := createTable()
defer dropTable(tableName)
gtest.C(t, func(t *gtest.T) {
_, err := db.Model("? as u", g.Model("test_bug").Fields("name", "age")).Where("age", 18).Count()
t.Assert(err, nil)
_, err = db.Model("? as u", g.Model("test_bug").Group("name").Group("age").Having("age > ", 1)).Where("age", 18).Count()
t.Assert(err, nil)
})
}