add Target where clause for on conflict (#4442)

Co-authored-by: Vitaliy Shein <vitaliy.shein@thebricks.com>
This commit is contained in:
Vitaliy Shein 2021-06-07 05:39:00 +03:00 committed by GitHub
parent cf079b8b7d
commit dd8bf88eb9
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 7 additions and 0 deletions

View File

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