From fd2c7ad764db44de2307fdcc842fe4f83ba5b58e Mon Sep 17 00:00:00 2001 From: Sergey Kurt <sergeykurt@outlook.com> Date: Sun, 2 Apr 2017 12:27:33 +0300 Subject: [PATCH] Fixed Upsert statement for postgres, mysql --- templates/17_upsert.tpl | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/templates/17_upsert.tpl b/templates/17_upsert.tpl index fb9c2d0..e45a87e 100644 --- a/templates/17_upsert.tpl +++ b/templates/17_upsert.tpl @@ -79,7 +79,7 @@ func (o *{{$tableNameSingular}}) Upsert(exec boil.Executor, {{if eq .DriverName nzDefaults, whitelist, ) - {{- if eq .DriverName "mssql"}} + {{if eq .DriverName "mssql" -}} insert = strmangle.SetComplement(insert, {{$varNameSingular}}ColumnsWithAuto) for i, v := range insert { 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}}ColumnsWithDefault) - {{end -}} + {{end}} update := strmangle.UpdateColumnSet( {{$varNameSingular}}Columns, {{$varNameSingular}}PrimaryKeyColumns, updateColumns, ) - - {{- if eq .DriverName "mssql"}} + {{if eq .DriverName "mssql" -}} update = strmangle.SetComplement(update, {{$varNameSingular}}ColumnsWithAuto) {{end -}} - + if len(update) == 0 { 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...) {{- 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 { return err }