ON CONFLICT DO NOTHING without a conflict target is valid SQL as far as Postgres is concerned.

This commit is contained in:
bill matlock 2024-03-18 16:38:28 -04:00
parent 1b63280b74
commit 0d250f5b41
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()