Build build onConflict clause
(builder Builder)
| 16 | |
| 17 | // Build build onConflict clause |
| 18 | func (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 |
| 57 | func (onConflict OnConflict) MergeClause(clause *Clause) { |
nothing calls this directly
no test coverage detected