Skip to content

Commit

Permalink
Return all columns not in both insert and update columns when doing u…
Browse files Browse the repository at this point in the history
…psert
  • Loading branch information
adsa95 committed Sep 12, 2023
1 parent cc34619 commit 3ae5024
Show file tree
Hide file tree
Showing 4 changed files with 12 additions and 5 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -71,7 +71,7 @@ func (o *{{$alias.UpSingular}}) Upsert({{if .NoContext}}exec boil.Executor{{else
var err error

if !cached {
insert, ret := insertColumns.InsertColumnSet(
insert, _ := insertColumns.InsertColumnSet(
{{$alias.DownSingular}}AllColumns,
{{$alias.DownSingular}}ColumnsWithDefault,
{{$alias.DownSingular}}ColumnsWithoutDefault,
Expand All @@ -98,6 +98,8 @@ func (o *{{$alias.UpSingular}}) Upsert({{if .NoContext}}exec boil.Executor{{else
insert = strmangle.SetComplement(insert, {{$alias.DownSingular}}GeneratedColumns)
{{end}}

ret := strmangle.SetComplement({{$alias.DownSingular}}AllColumns, strmangle.SetIntersect(insert, update))

if !updateColumns.IsNone() && len(update) == 0 {
return errors.New("{{.PkgName}}: unable to upsert {{.Table.Name}}, could not build update column list")
}
Expand Down
5 changes: 3 additions & 2 deletions drivers/sqlboiler-mysql/driver/override/main/17_upsert.go.tpl
Original file line number Diff line number Diff line change
Expand Up @@ -89,7 +89,7 @@ func (o *{{$alias.UpSingular}}) Upsert({{if .NoContext}}exec boil.Executor{{else
var err error

if !cached {
insert, ret := insertColumns.InsertColumnSet(
insert, _ := insertColumns.InsertColumnSet(
{{$alias.DownSingular}}AllColumns,
{{$alias.DownSingular}}ColumnsWithDefault,
{{$alias.DownSingular}}ColumnsWithoutDefault,
Expand All @@ -109,7 +109,8 @@ func (o *{{$alias.UpSingular}}) Upsert({{if .NoContext}}exec boil.Executor{{else
return errors.New("{{.PkgName}}: unable to upsert {{.Table.Name}}, could not build update column list")
}

ret = strmangle.SetComplement(ret, nzUniques)
ret := strmangle.SetComplement({{$alias.DownSingular}}AllColumns, strmangle.SetIntersect(insert, update))

cache.query = buildUpsertQueryMySQL(dialect, "{{$schemaTable}}", update, insert)
cache.retQuery = fmt.Sprintf(
"SELECT %s FROM {{.LQ}}{{.Table.Name}}{{.RQ}} WHERE %s",
Expand Down
4 changes: 3 additions & 1 deletion drivers/sqlboiler-psql/driver/override/main/17_upsert.go.tpl
Original file line number Diff line number Diff line change
Expand Up @@ -82,7 +82,7 @@ func (o *{{$alias.UpSingular}}) Upsert({{if .NoContext}}exec boil.Executor{{else
var err error

if !cached {
insert, ret := insertColumns.InsertColumnSet(
insert, _ := insertColumns.InsertColumnSet(
{{$alias.DownSingular}}AllColumns,
{{$alias.DownSingular}}ColumnsWithDefault,
{{$alias.DownSingular}}ColumnsWithoutDefault,
Expand All @@ -102,6 +102,8 @@ func (o *{{$alias.UpSingular}}) Upsert({{if .NoContext}}exec boil.Executor{{else
return errors.New("{{.PkgName}}: unable to upsert {{.Table.Name}}, could not build update column list")
}

ret := strmangle.SetComplement({{$alias.DownSingular}}AllColumns, strmangle.SetIntersect(insert, update))

conflict := conflictColumns
if len(conflict) == 0 {
conflict = make([]string, len({{$alias.DownSingular}}PrimaryKeyColumns))
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -82,7 +82,7 @@ func (o *{{$alias.UpSingular}}) Upsert({{if .NoContext}}exec boil.Executor{{else
var err error

if !cached {
insert, ret := insertColumns.InsertColumnSet(
insert, _ := insertColumns.InsertColumnSet(
{{$alias.DownSingular}}AllColumns,
{{$alias.DownSingular}}ColumnsWithDefault,
{{$alias.DownSingular}}ColumnsWithoutDefault,
Expand All @@ -97,6 +97,8 @@ func (o *{{$alias.UpSingular}}) Upsert({{if .NoContext}}exec boil.Executor{{else
return errors.New("{{.PkgName}}: unable to upsert {{.Table.Name}}, could not build update column list")
}

ret := strmangle.SetComplement({{$alias.DownSingular}}AllColumns, strmangle.SetIntersect(insert, update))

conflict := conflictColumns
if len(conflict) == 0 {
conflict = make([]string, len({{$alias.DownSingular}}PrimaryKeyColumns))
Expand Down

0 comments on commit 3ae5024

Please sign in to comment.