Offset issue resolved for scanning results back into struct (#5227)
This commit is contained in:
		
							parent
							
								
									38a24606da
								
							
						
					
					
						commit
						81c4024232
					
				
							
								
								
									
										2
									
								
								scan.go
									
									
									
									
									
								
							
							
						
						
									
										2
									
								
								scan.go
									
									
									
									
									
								
							| @ -196,7 +196,7 @@ func Scan(rows Rows, db *DB, mode ScanMode) { | ||||
| 				for idx, column := range columns { | ||||
| 					if field := sch.LookUpField(column); field != nil && field.Readable { | ||||
| 						if curIndex, ok := selectedColumnsMap[column]; ok { | ||||
| 							for fieldIndex, selectField := range sch.Fields[curIndex:] { | ||||
| 							for fieldIndex, selectField := range sch.Fields[curIndex+1:] { | ||||
| 								if selectField.DBName == column && selectField.Readable { | ||||
| 									selectedColumnsMap[column] = curIndex + fieldIndex + 1 | ||||
| 									fields[idx] = selectField | ||||
|  | ||||
| @ -184,11 +184,34 @@ func TestScanToEmbedded(t *testing.T) { | ||||
| 		t.Errorf("Failed to run join query, got error: %v", err) | ||||
| 	} | ||||
| 
 | ||||
| 	personMatched := false | ||||
| 	addressMatched := false | ||||
| 
 | ||||
| 	for _, info := range personAddressInfoList { | ||||
| 		if info.Person != nil { | ||||
| 			if info.Person.ID == person1.ID && info.Person.Name != person1.Name { | ||||
| 		if info.Person == nil { | ||||
| 			t.Fatalf("Failed, expected not nil, got person nil") | ||||
| 		} | ||||
| 		if info.Address == nil { | ||||
| 			t.Fatalf("Failed, expected not nil, got address nil") | ||||
| 		} | ||||
| 		if info.Person.ID == person1.ID { | ||||
| 			personMatched = true | ||||
| 			if info.Person.Name != person1.Name { | ||||
| 				t.Errorf("Failed, expected %v, got %v", person1.Name, info.Person.Name) | ||||
| 			} | ||||
| 		} | ||||
| 		if info.Address.ID == address1.ID { | ||||
| 			addressMatched = true | ||||
| 			if info.Address.Name != address1.Name { | ||||
| 				t.Errorf("Failed, expected %v, got %v", address1.Name, info.Address.Name) | ||||
| 			} | ||||
| 		} | ||||
| 	} | ||||
| 
 | ||||
| 	if !personMatched { | ||||
| 		t.Errorf("Failed, no person matched") | ||||
| 	} | ||||
| 	if !addressMatched { | ||||
| 		t.Errorf("Failed, no address matched") | ||||
| 	} | ||||
| } | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user
	 Hasan
						Hasan