MCPcopy
hub / github.com/go-gorm/gorm / Build

Method Build

clause/on_conflict.go:18–54  ·  view source on GitHub ↗

Build build onConflict clause

(builder Builder)

Source from the content-addressed store, hash-verified

16
17// Build build onConflict clause
18func (onConflict OnConflict) Build(builder Builder) {
19 if onConflict.OnConstraint != "" {
20 builder.WriteString("ON CONSTRAINT ")
21 builder.WriteString(onConflict.OnConstraint)
22 builder.WriteByte(' ')
23 } else {
24 if len(onConflict.Columns) > 0 {
25 builder.WriteByte('(')
26 for idx, column := range onConflict.Columns {
27 if idx > 0 {
28 builder.WriteByte(',')
29 }
30 builder.WriteQuoted(column)
31 }
32 builder.WriteString(`) `)
33 }
34
35 if len(onConflict.TargetWhere.Exprs) > 0 {
36 builder.WriteString(" WHERE ")
37 onConflict.TargetWhere.Build(builder)
38 builder.WriteByte(' ')
39 }
40 }
41
42 if onConflict.DoNothing {
43 builder.WriteString("DO NOTHING")
44 } else {
45 builder.WriteString("DO UPDATE SET ")
46 onConflict.DoUpdates.Build(builder)
47 }
48
49 if len(onConflict.Where.Exprs) > 0 {
50 builder.WriteString(" WHERE ")
51 onConflict.Where.Build(builder)
52 builder.WriteByte(' ')
53 }
54}
55
56// MergeClause merge onConflict clauses
57func (onConflict OnConflict) MergeClause(clause *Clause) {

Callers

nothing calls this directly

Calls 4

WriteStringMethod · 0.65
WriteByteMethod · 0.65
WriteQuotedMethod · 0.65
BuildMethod · 0.65

Tested by

no test coverage detected