diff options
author | 2021-11-27 15:26:58 +0100 | |
---|---|---|
committer | 2021-11-27 15:26:58 +0100 | |
commit | 182b4eea73881c611a0f519576aa6ad2aa6799c2 (patch) | |
tree | 230fac469690fcee8797b13585e739be148d4789 /vendor/github.com/uptrace/bun/query_insert.go | |
parent | Require confirmed email when checking oauth token (#332) (diff) | |
download | gotosocial-182b4eea73881c611a0f519576aa6ad2aa6799c2.tar.xz |
Update dependencies (#333)
Diffstat (limited to 'vendor/github.com/uptrace/bun/query_insert.go')
-rw-r--r-- | vendor/github.com/uptrace/bun/query_insert.go | 13 |
1 files changed, 10 insertions, 3 deletions
diff --git a/vendor/github.com/uptrace/bun/query_insert.go b/vendor/github.com/uptrace/bun/query_insert.go index 42ee49962..240077dd8 100644 --- a/vendor/github.com/uptrace/bun/query_insert.go +++ b/vendor/github.com/uptrace/bun/query_insert.go @@ -133,9 +133,16 @@ func (q *InsertQuery) hasReturning() bool { //------------------------------------------------------------------------------ -// Ignore generates an `INSERT IGNORE INTO` query (MySQL). +// Ignore generates different queries depending on the DBMS: +// - On MySQL, it generates `INSERT IGNORE INTO`. +// - On PostgreSQL, it generates `ON CONFLICT DO NOTHING`. func (q *InsertQuery) Ignore() *InsertQuery { - q.ignore = true + if q.db.fmter.HasFeature(feature.InsertOnConflict) { + return q.On("CONFLICT DO NOTHING") + } + if q.db.fmter.HasFeature(feature.InsertIgnore) { + q.ignore = true + } return q } @@ -421,7 +428,7 @@ func (q *InsertQuery) appendOn(fmter schema.Formatter, b []byte) (_ []byte, err } if len(q.set) > 0 { - if fmter.HasFeature(feature.OnDuplicateKey) { + if fmter.HasFeature(feature.InsertOnDuplicateKey) { b = append(b, ' ') } else { b = append(b, " SET "...) |