From c3bb6aaa828867eec72dd8571d111e442688f85f Mon Sep 17 00:00:00 2001 From: Jinzhu Date: Fri, 11 Aug 2017 23:24:00 +0800 Subject: [PATCH] Fix QueryExpr tests --- main.go | 2 +- main_test.go | 32 ++++++++++++++++---------------- 2 files changed, 17 insertions(+), 17 deletions(-) diff --git a/main.go b/main.go index 6dc192b9..16fa0b79 100644 --- a/main.go +++ b/main.go @@ -174,7 +174,7 @@ func (s *DB) QueryExpr() *expr { scope.InstanceSet("skip_bindvar", true) scope.prepareQuerySQL() - return Expr("("+scope.SQL+")", scope.SQLVars...) + return Expr(scope.SQL, scope.SQLVars...) } // Where return a new relation, filter records with given conditions, accepts `map`, `struct` or `string` as conditions, refer http://jinzhu.github.io/gorm/crud.html#query diff --git a/main_test.go b/main_test.go index 62ad1c47..34f96a86 100644 --- a/main_test.go +++ b/main_test.go @@ -608,25 +608,25 @@ func TestHaving(t *testing.T) { } func TestQueryBuilderSubselectInWhere(t *testing.T) { - user := User{Name: "ruser1", Email: "root@user1.com", Age: 32} + user := User{Name: "query_expr_select_ruser1", Email: "root@user1.com", Age: 32} DB.Save(&user) - user = User{Name: "ruser2", Email: "nobody@user2.com", Age: 16} + user = User{Name: "query_expr_select_ruser2", Email: "nobody@user2.com", Age: 16} DB.Save(&user) - user = User{Name: "ruser3", Email: "root@user3.com", Age: 64} + user = User{Name: "query_expr_select_ruser3", Email: "root@user3.com", Age: 64} DB.Save(&user) - user = User{Name: "ruser4", Email: "somebody@user3.com", Age: 128} + user = User{Name: "query_expr_select_ruser4", Email: "somebody@user3.com", Age: 128} DB.Save(&user) var users []User DB.Select("*").Where("name IN (?)", DB. - Select("name").Table("users").Where("email LIKE ?", "root@%").SubqueryExpr()).Find(&users) + Select("name").Table("users").Where("name LIKE ?", "query_expr_select%").QueryExpr()).Find(&users) - if len(users) != 2 { - t.Errorf("Two users should be found, instead found %d", len(users)) + if len(users) != 4 { + t.Errorf("Four users should be found, instead found %d", len(users)) } - DB.Select("*").Where("email LIKE ?", "root%").Where("age >= (?)", DB. - Select("AVG(age)").Table("users").SubqueryExpr()).Find(&users) + DB.Select("*").Where("name LIKE ?", "query_expr_select%").Where("age >= (?)", DB. + Select("AVG(age)").Table("users").Where("name LIKE ?", "query_expr_select%").QueryExpr()).Find(&users) if len(users) != 2 { t.Errorf("Two users should be found, instead found %d", len(users)) @@ -634,21 +634,21 @@ func TestQueryBuilderSubselectInWhere(t *testing.T) { } func TestQueryBuilderSubselectInHaving(t *testing.T) { - user := User{Name: "ruser1", Email: "root@user1.com", Age: 64} + user := User{Name: "query_expr_having_ruser1", Email: "root@user1.com", Age: 64} DB.Save(&user) - user = User{Name: "ruser2", Email: "root@user2.com", Age: 128} + user = User{Name: "query_expr_having_ruser2", Email: "root@user2.com", Age: 128} DB.Save(&user) - user = User{Name: "ruser3", Email: "root@user1.com", Age: 64} + user = User{Name: "query_expr_having_ruser3", Email: "root@user1.com", Age: 64} DB.Save(&user) - user = User{Name: "ruser4", Email: "root@user2.com", Age: 128} + user = User{Name: "query_expr_having_ruser4", Email: "root@user2.com", Age: 128} DB.Save(&user) var users []User - DB.Select("AVG(age) as avgage").Where("email LIKE ?", "root%").Group("email").Having("AVG(age) > (?)", DB. - Select("AVG(age)").Where("email LIKE ?", "root%").Table("users").SubqueryExpr()).Find(&users) + DB.Select("AVG(age) as avgage").Where("name LIKE ?", "query_expr_having_%").Group("email").Having("AVG(age) > (?)", DB. + Select("AVG(age)").Where("name LIKE ?", "query_expr_having_%").Table("users").QueryExpr()).Find(&users) if len(users) != 1 { - t.Errorf("One user group should be found, instead found %d", len(users)) + t.Errorf("Two user group should be found, instead found %d", len(users)) } }