Fix scanIntoStruct (#5241)
* Reproduces error case * Fix scanIntoStruct Co-authored-by: Filippo Del Moro <filippo.delmoro@facile.it>
This commit is contained in:
		
							parent
							
								
									74e07b049c
								
							
						
					
					
						commit
						6aa6d37fc4
					
				
							
								
								
									
										2
									
								
								scan.go
									
									
									
									
									
								
							
							
						
						
									
										2
									
								
								scan.go
									
									
									
									
									
								
							| @ -74,7 +74,7 @@ func (db *DB) scanIntoStruct(rows Rows, reflectValue reflect.Value, values []int | |||||||
| 				relValue := joinFields[idx][0].ReflectValueOf(db.Statement.Context, reflectValue) | 				relValue := joinFields[idx][0].ReflectValueOf(db.Statement.Context, reflectValue) | ||||||
| 				if relValue.Kind() == reflect.Ptr && relValue.IsNil() { | 				if relValue.Kind() == reflect.Ptr && relValue.IsNil() { | ||||||
| 					if value := reflect.ValueOf(values[idx]).Elem(); value.Kind() == reflect.Ptr && value.IsNil() { | 					if value := reflect.ValueOf(values[idx]).Elem(); value.Kind() == reflect.Ptr && value.IsNil() { | ||||||
| 						return | 						continue | ||||||
| 					} | 					} | ||||||
| 
 | 
 | ||||||
| 					relValue.Set(reflect.New(relValue.Type().Elem())) | 					relValue.Set(reflect.New(relValue.Type().Elem())) | ||||||
|  | |||||||
| @ -10,12 +10,12 @@ import ( | |||||||
| ) | ) | ||||||
| 
 | 
 | ||||||
| func TestJoins(t *testing.T) { | func TestJoins(t *testing.T) { | ||||||
| 	user := *GetUser("joins-1", Config{Company: true, Manager: true, Account: true}) | 	user := *GetUser("joins-1", Config{Company: true, Manager: true, Account: true, NamedPet: false}) | ||||||
| 
 | 
 | ||||||
| 	DB.Create(&user) | 	DB.Create(&user) | ||||||
| 
 | 
 | ||||||
| 	var user2 User | 	var user2 User | ||||||
| 	if err := DB.Joins("Company").Joins("Manager").Joins("Account").First(&user2, "users.name = ?", user.Name).Error; err != nil { | 	if err := DB.Joins("NamedPet").Joins("Company").Joins("Manager").Joins("Account").First(&user2, "users.name = ?", user.Name).Error; err != nil { | ||||||
| 		t.Fatalf("Failed to load with joins, got error: %v", err) | 		t.Fatalf("Failed to load with joins, got error: %v", err) | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
|  | |||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user
	 Filippo Del Moro
						Filippo Del Moro