summaryrefslogtreecommitdiff
path: root/vendor/github.com/uptrace/bun/query_insert.go
diff options
context:
space:
mode:
authorLibravatar tobi <31960611+tsmethurst@users.noreply.github.com>2021-11-27 15:26:58 +0100
committerLibravatar GitHub <noreply@github.com>2021-11-27 15:26:58 +0100
commit182b4eea73881c611a0f519576aa6ad2aa6799c2 (patch)
tree230fac469690fcee8797b13585e739be148d4789 /vendor/github.com/uptrace/bun/query_insert.go
parentRequire confirmed email when checking oauth token (#332) (diff)
downloadgotosocial-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.go13
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 "...)