Fixed Empty Returning Clause Merge Bug
This commit is contained in:
		
							parent
							
								
									f482f25c71
								
							
						
					
					
						commit
						2579dc888a
					
				| @ -26,9 +26,12 @@ func (returning Returning) Build(builder Builder) { | ||||
| 
 | ||||
| // MergeClause merge order by clauses
 | ||||
| func (returning Returning) MergeClause(clause *Clause) { | ||||
| 	if v, ok := clause.Expression.(Returning); ok { | ||||
| 		returning.Columns = append(v.Columns, returning.Columns...) | ||||
| 	if v, ok := clause.Expression.(Returning); ok && len(returning.Columns) > 0 { | ||||
| 		if v.Columns != nil { | ||||
| 			returning.Columns = append(v.Columns, returning.Columns...) | ||||
| 		} else { | ||||
| 			returning.Columns = nil | ||||
| 		} | ||||
| 	} | ||||
| 
 | ||||
| 	clause.Expression = returning | ||||
| } | ||||
|  | ||||
| @ -26,6 +26,22 @@ func TestReturning(t *testing.T) { | ||||
| 			}}, | ||||
| 			"SELECT * FROM `users` RETURNING `users`.`id`,`name`,`age`", nil, | ||||
| 		}, | ||||
| 		{ | ||||
| 			[]clause.Interface{clause.Select{}, clause.From{}, clause.Returning{ | ||||
| 				[]clause.Column{clause.PrimaryColumn}, | ||||
| 			}, clause.Returning{}, clause.Returning{ | ||||
| 				[]clause.Column{{Name: "name"}, {Name: "age"}}, | ||||
| 			}}, | ||||
| 			"SELECT * FROM `users` RETURNING *", nil, | ||||
| 		}, | ||||
| 		{ | ||||
| 			[]clause.Interface{clause.Select{}, clause.From{}, clause.Returning{ | ||||
| 				[]clause.Column{clause.PrimaryColumn}, | ||||
| 			}, clause.Returning{ | ||||
| 				[]clause.Column{{Name: "name"}, {Name: "age"}}, | ||||
| 			}, clause.Returning{}}, | ||||
| 			"SELECT * FROM `users` RETURNING *", nil, | ||||
| 		}, | ||||
| 	} | ||||
| 
 | ||||
| 	for idx, result := range results { | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user
	 aviyamivgi
						aviyamivgi