@@ -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+
34023434func (s * QueryTestSuite ) TestSharedLock () {
34033435 for driver , query := range s .queries {
34043436 if driver == sqlite .Name {
0 commit comments