Skip to content

Commit 1a2ec57

Browse files
committed
fix: [#770] Add a SelectRaw function for the ORM
1 parent b12a15a commit 1a2ec57

File tree

3 files changed

+35
-3
lines changed

3 files changed

+35
-3
lines changed

tests/go.mod

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ require (
3131
github.com/dromara/carbon/v2 v2.6.11 // indirect
3232
github.com/gabriel-vasile/mimetype v1.4.9 // indirect
3333
github.com/go-sql-driver/mysql v1.9.3 // indirect
34-
github.com/go-viper/mapstructure/v2 v2.3.0 // indirect
34+
github.com/go-viper/mapstructure/v2 v2.4.0 // indirect
3535
github.com/golang-sql/civil v0.0.0-20220223132316-b832511892a9 // indirect
3636
github.com/golang-sql/sqlexp v0.1.0 // indirect
3737
github.com/gookit/color v1.5.4 // indirect

tests/go.sum

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -63,8 +63,8 @@ github.com/go-logr/stdr v1.2.2/go.mod h1:mMo/vtBO5dYbehREoey6XUKy/eSumjCCveDpRre
6363
github.com/go-sql-driver/mysql v1.8.1/go.mod h1:wEBSXgmK//2ZFJyE+qWnIsVGmvmEKlqwuVSjsCm7DZg=
6464
github.com/go-sql-driver/mysql v1.9.3 h1:U/N249h2WzJ3Ukj8SowVFjdtZKfu9vlLZxjPXV1aweo=
6565
github.com/go-sql-driver/mysql v1.9.3/go.mod h1:qn46aNg1333BRMNU69Lq93t8du/dwxI64Gl8i5p1WMU=
66-
github.com/go-viper/mapstructure/v2 v2.3.0 h1:27XbWsHIqhbdR5TIC911OfYvgSaW93HM+dX7970Q7jk=
67-
github.com/go-viper/mapstructure/v2 v2.3.0/go.mod h1:oJDH3BJKyqBA2TXFhDsKDGDTlndYOZ6rGS0BRZIxGhM=
66+
github.com/go-viper/mapstructure/v2 v2.4.0 h1:EBsztssimR/CONLSZZ04E8qAkxNYq4Qp9LvH92wZUgs=
67+
github.com/go-viper/mapstructure/v2 v2.4.0/go.mod h1:oJDH3BJKyqBA2TXFhDsKDGDTlndYOZ6rGS0BRZIxGhM=
6868
github.com/golang-jwt/jwt v3.2.1+incompatible/go.mod h1:8pz2t5EyA70fFQQSrl6XZXzqecmYZeUEB8OUGHkxJ+I=
6969
github.com/golang-jwt/jwt v3.2.2+incompatible h1:IfV12K8xAKAnZqdXVzCZ+TOjboZ2keLg81eXfW3O+oY=
7070
github.com/golang-jwt/jwt v3.2.2+incompatible/go.mod h1:8pz2t5EyA70fFQQSrl6XZXzqecmYZeUEB8OUGHkxJ+I=

tests/query_test.go

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3399,6 +3399,38 @@ func (s *QueryTestSuite) TestSelect() {
33993399
}
34003400
}
34013401

3402+
func (s *QueryTestSuite) TestSelectRaw() {
3403+
for driver, query := range s.queries {
3404+
s.Run(driver, func() {
3405+
user := User{Name: "select_user", Avatar: "select_avatar"}
3406+
s.Nil(query.Query().Create(&user))
3407+
s.True(user.ID > 0)
3408+
3409+
user1 := User{Name: "select_user", Avatar: "select_avatar1"}
3410+
s.Nil(query.Query().Create(&user1))
3411+
s.True(user1.ID > 0)
3412+
3413+
user2 := User{Name: "select_user1", Avatar: "select_avatar1"}
3414+
s.Nil(query.Query().Create(&user2))
3415+
s.True(user2.ID > 0)
3416+
3417+
type Result struct {
3418+
Name string
3419+
Bio string
3420+
}
3421+
var result []Result
3422+
s.Nil(query.Query().Model(&User{}).SelectRaw("name, COALESCE(bio,?) as bio", "a").Where("id in ?", []uint{user.ID, user1.ID, user2.ID}).Get(&result))
3423+
s.Equal(3, len(result))
3424+
s.Equal("select_user", result[0].Name)
3425+
s.Equal("a", result[0].Bio)
3426+
s.Equal("select_user", result[1].Name)
3427+
s.Equal("a", result[1].Bio)
3428+
s.Equal("select_user1", result[2].Name)
3429+
s.Equal("a", result[2].Bio)
3430+
})
3431+
}
3432+
}
3433+
34023434
func (s *QueryTestSuite) TestSharedLock() {
34033435
for driver, query := range s.queries {
34043436
if driver == sqlite.Name {

0 commit comments

Comments
 (0)