Merge remote-tracking branch 'upstream/master' into stmt-cache

This commit is contained in:
go-jet 2024-07-30 14:11:24 +02:00
commit adfa331ece
21 changed files with 218 additions and 54 deletions

View file

@ -267,6 +267,24 @@ func TestInsertOnConflict(t *testing.T) {
t.Run("do nothing", func(t *testing.T) {
link := model.Link{ID: rand.Int31()}
stmt := Link.INSERT(Link.AllColumns).
MODEL(link).
MODEL(link).
ON_CONFLICT().DO_NOTHING()
testutils.AssertStatementSql(t, stmt, `
INSERT INTO link (id, url, name, description)
VALUES (?, ?, ?, ?),
(?, ?, ?, ?)
ON CONFLICT DO NOTHING;
`)
testutils.AssertExecAndRollback(t, stmt, sampleDB, 1)
requireLogged(t, stmt)
})
t.Run("do nothing with index", func(t *testing.T) {
link := model.Link{ID: rand.Int31()}
stmt := Link.INSERT(Link.AllColumns).
MODEL(link).
MODEL(link).
@ -341,6 +359,21 @@ ON CONFLICT (id) WHERE (id * 2) > 10 DO UPDATE
testutils.AssertExecAndRollback(t, stmt, sampleDB)
requireLogged(t, stmt)
})
t.Run("nil action removes ON CONFLICT clause", func(t *testing.T) {
link := model.Link{ID: rand.Int31()}
stmt := Link.INSERT(Link.AllColumns).
MODEL(link).
ON_CONFLICT().DO_UPDATE(nil)
testutils.AssertStatementSql(t, stmt, `
INSERT INTO link (id, url, name, description)
VALUES (?, ?, ?, ?);
`)
testutils.AssertExecAndRollback(t, stmt, sampleDB, 1)
requireLogged(t, stmt)
})
}
func TestInsertContextDeadlineExceeded(t *testing.T) {