Fixed Empty Returning Clause Merge Bug (#7339)
This commit is contained in:
parent
4ef3af10ed
commit
8503287ca4
@ -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