diff --git a/callbacks/update.go b/callbacks/update.go index 930839d7..b69198c2 100644 --- a/callbacks/update.go +++ b/callbacks/update.go @@ -66,7 +66,10 @@ func Update(db *gorm.DB) { } else { return } - db.Statement.Build("UPDATE", "SET", "WHERE", "RETURNING") + db.Statement.Build("UPDATE", "SET", "WHERE") + if db.Dialector.Name() == "postgres" { + db.Statement.Build("RETURNING") + } } if _, ok := db.Statement.Clauses["WHERE"]; !db.AllowGlobalUpdate && !ok { diff --git a/clause/returning.go b/clause/returning.go index 04bc96da..50fe5fcb 100644 --- a/clause/returning.go +++ b/clause/returning.go @@ -11,6 +11,12 @@ func (returning Returning) Name() string { // Build build where clause func (returning Returning) Build(builder Builder) { + for _, column := range returning.Columns { + if column.Name == "*" { + builder.WriteByte('*') + return + } + } for idx, column := range returning.Columns { if idx > 0 { builder.WriteByte(',')