Fixed Upsert statement for postgres, mysql

This commit is contained in:
Sergey Kurt 2017-04-02 12:27:33 +03:00
parent b2acda8ade
commit fd2c7ad764

View file

@ -79,7 +79,7 @@ func (o *{{$tableNameSingular}}) Upsert(exec boil.Executor, {{if eq .DriverName
nzDefaults, nzDefaults,
whitelist, whitelist,
) )
{{- if eq .DriverName "mssql"}} {{if eq .DriverName "mssql" -}}
insert = strmangle.SetComplement(insert, {{$varNameSingular}}ColumnsWithAuto) insert = strmangle.SetComplement(insert, {{$varNameSingular}}ColumnsWithAuto)
for i, v := range insert { for i, v := range insert {
if strmangle.ContainsAny({{$varNameSingular}}PrimaryKeyColumns, v) && strmangle.ContainsAny({{$varNameSingular}}ColumnsWithDefault, v) { if strmangle.ContainsAny({{$varNameSingular}}PrimaryKeyColumns, v) && strmangle.ContainsAny({{$varNameSingular}}ColumnsWithDefault, v) {
@ -93,17 +93,16 @@ func (o *{{$tableNameSingular}}) Upsert(exec boil.Executor, {{if eq .DriverName
ret = strmangle.SetMerge(ret, {{$varNameSingular}}ColumnsWithAuto) ret = strmangle.SetMerge(ret, {{$varNameSingular}}ColumnsWithAuto)
ret = strmangle.SetMerge(ret, {{$varNameSingular}}ColumnsWithDefault) ret = strmangle.SetMerge(ret, {{$varNameSingular}}ColumnsWithDefault)
{{end -}} {{end}}
update := strmangle.UpdateColumnSet( update := strmangle.UpdateColumnSet(
{{$varNameSingular}}Columns, {{$varNameSingular}}Columns,
{{$varNameSingular}}PrimaryKeyColumns, {{$varNameSingular}}PrimaryKeyColumns,
updateColumns, updateColumns,
) )
{{if eq .DriverName "mssql" -}}
{{- if eq .DriverName "mssql"}}
update = strmangle.SetComplement(update, {{$varNameSingular}}ColumnsWithAuto) update = strmangle.SetComplement(update, {{$varNameSingular}}ColumnsWithAuto)
{{end -}} {{end -}}
if len(update) == 0 { if len(update) == 0 {
return errors.New("{{.PkgName}}: unable to upsert {{.Table.Name}}, could not build update column list") return errors.New("{{.PkgName}}: unable to upsert {{.Table.Name}}, could not build update column list")
} }
@ -128,7 +127,7 @@ func (o *{{$tableNameSingular}}) Upsert(exec boil.Executor, {{if eq .DriverName
whitelist = append(whitelist, insert...) whitelist = append(whitelist, insert...)
{{- end}} {{- end}}
cache.valueMapping, err = queries.BindMapping({{$varNameSingular}}Type, {{$varNameSingular}}Mapping, whitelist) cache.valueMapping, err = queries.BindMapping({{$varNameSingular}}Type, {{$varNameSingular}}Mapping, {{if eq .DriverName "mssql"}}whitelist{{else}}insert{{end}})
if err != nil { if err != nil {
return err return err
} }