github.com/systematiccaos/gorm@v1.22.6/clause/returning.go (about) 1 package clause 2 3 type Returning struct { 4 Columns []Column 5 } 6 7 // Name where clause name 8 func (returning Returning) Name() string { 9 return "RETURNING" 10 } 11 12 // Build build where clause 13 func (returning Returning) Build(builder Builder) { 14 if len(returning.Columns) > 0 { 15 for idx, column := range returning.Columns { 16 if idx > 0 { 17 builder.WriteByte(',') 18 } 19 20 builder.WriteQuoted(column) 21 } 22 } else { 23 builder.WriteByte('*') 24 } 25 } 26 27 // MergeClause merge order by clauses 28 func (returning Returning) MergeClause(clause *Clause) { 29 if v, ok := clause.Expression.(Returning); ok { 30 returning.Columns = append(v.Columns, returning.Columns...) 31 } 32 33 clause.Expression = returning 34 }