Skip to content

Commit 77c94e3

Browse files
author
Roman A. Grigorovich
committed
revert PR #1290, closes #1312
1 parent 644d45d commit 77c94e3

File tree

2 files changed

+12
-5
lines changed

2 files changed

+12
-5
lines changed

drivers/sqlboiler-psql/driver/override/main/17_upsert.go.tpl

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -103,7 +103,11 @@ func (o *{{$alias.UpSingular}}) Upsert({{if .NoContext}}exec boil.Executor{{else
103103
}
104104

105105
conflict := conflictColumns
106-
if len(conflict) == 0 {
106+
if len(conflict) == 0 && updateOnConflict && len(update) != 0 {
107+
if len({{$alias.DownSingular}}PrimaryKeyColumns) == 0 {
108+
return errors.New("{{.PkgName}}: unable to upsert {{.Table.Name}}, could not build conflict column list")
109+
}
110+
107111
conflict = make([]string, len({{$alias.DownSingular}}PrimaryKeyColumns))
108112
copy(conflict, {{$alias.DownSingular}}PrimaryKeyColumns)
109113
}

drivers/sqlboiler-psql/driver/override/main/singleton/psql_upsert.go.tpl

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -21,13 +21,16 @@ func buildUpsertQueryPostgres(dia drivers.Dialect, tableName string, updateOnCon
2121
columns,
2222
)
2323

24-
buf.WriteByte('(')
25-
buf.WriteString(strings.Join(conflict, ", "))
24+
if len(conflict) != 0 {
25+
buf.WriteByte('(')
26+
buf.WriteString(strings.Join(conflict, ", "))
27+
buf.WriteString(") ")
28+
}
2629

2730
if !updateOnConflict || len(update) == 0 {
28-
buf.WriteString(") DO NOTHING")
31+
buf.WriteString("DO NOTHING")
2932
} else {
30-
buf.WriteString(") DO UPDATE SET ")
33+
buf.WriteString("DO UPDATE SET ")
3134
3235
for i, v := range update {
3336
if len(v) == 0 {

0 commit comments

Comments
 (0)