add Target where clause for on conflict

This commit is contained in:
Vitaliy Shein 2021-06-04 20:49:28 +03:00
parent cf079b8b7d
commit 96f48fc5e4

View File

@ -3,6 +3,7 @@ package clause
type OnConflict struct { type OnConflict struct {
Columns []Column Columns []Column
Where Where Where Where
TargetWhere Where
OnConstraint string OnConstraint string
DoNothing bool DoNothing bool
DoUpdates Set DoUpdates Set
@ -25,6 +26,12 @@ func (onConflict OnConflict) Build(builder Builder) {
} }
builder.WriteString(`) `) builder.WriteString(`) `)
} }
if len(onConflict.TargetWhere.Exprs) > 0 {
builder.WriteString(" WHERE ")
onConflict.TargetWhere.Build(builder)
builder.WriteByte(' ')
}
if onConflict.OnConstraint != "" { if onConflict.OnConstraint != "" {
builder.WriteString("ON CONSTRAINT ") builder.WriteString("ON CONSTRAINT ")