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
|
// MergeClause merge order by clauses
|
||||||
func (returning Returning) MergeClause(clause *Clause) {
|
func (returning Returning) MergeClause(clause *Clause) {
|
||||||
if v, ok := clause.Expression.(Returning); ok {
|
if v, ok := clause.Expression.(Returning); ok && len(returning.Columns) > 0 {
|
||||||
returning.Columns = append(v.Columns, returning.Columns...)
|
if v.Columns != nil {
|
||||||
|
returning.Columns = append(v.Columns, returning.Columns...)
|
||||||
|
} else {
|
||||||
|
returning.Columns = nil
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
clause.Expression = returning
|
clause.Expression = returning
|
||||||
}
|
}
|
||||||
|
@ -26,6 +26,22 @@ func TestReturning(t *testing.T) {
|
|||||||
}},
|
}},
|
||||||
"SELECT * FROM `users` RETURNING `users`.`id`,`name`,`age`", nil,
|
"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 {
|
for idx, result := range results {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user