Merge pull request #335 from BillBuilt/on-conflict-do-nothing-without-conflict-target

ON CONFLICT DO NOTHING without a conflict target is valid SQL
This commit is contained in:
go-jet 2024-03-24 12:41:35 +01:00 committed by GitHub
commit 60d8f15513
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
2 changed files with 3 additions and 2 deletions

View file

@ -44,7 +44,7 @@ func (o *onConflictClause) DO_UPDATE(action conflictAction) InsertStatement {
}
func (o *onConflictClause) Serialize(statementType jet.StatementType, out *jet.SQLBuilder, options ...jet.SerializeOption) {
if len(o.indexExpressions) == 0 && o.constraint == "" {
if len(o.indexExpressions) == 0 && o.constraint == "" && o.do != jet.Keyword("DO NOTHING") {
return
}

View file

@ -8,7 +8,8 @@ func TestOnConflict(t *testing.T) {
onConflict := &onConflictClause{}
onConflict.DO_NOTHING()
assertClauseSerialize(t, onConflict, "")
assertClauseSerialize(t, onConflict, `
ON CONFLICT DO NOTHING`)
onConflict = &onConflictClause{indexExpressions: ColumnList{table1ColBool}}
onConflict.DO_NOTHING()