Skip to content

Commit

Permalink
dont use placeholders in returning clause
Browse files Browse the repository at this point in the history
  • Loading branch information
b-a-merritt committed Jun 20, 2024
1 parent 0c38b9d commit 91ddf20
Show file tree
Hide file tree
Showing 2 changed files with 7 additions and 9 deletions.
12 changes: 5 additions & 7 deletions insert.go
Original file line number Diff line number Diff line change
Expand Up @@ -52,16 +52,14 @@ func (s *SQURL) formatInsert() (query string, parameters []any, err error) {

if s.fields != nil {
fieldParams := ""
i := len(*s.changeKeys) + 1
i := 0
for val := range *s.fields {
if i < len(*s.fields)+len(*s.changeKeys) {
placeholders += fmt.Sprintf("$%v,%v", i, s.delimiter)
fieldParams += fmt.Sprintf("$%v,%v", i, s.delimiter)
fieldParams += fmt.Sprintf(`"%v".%v`, s.table, val)
if i < len(*s.fields)-1 {
fieldParams += fmt.Sprintf(",%v", s.delimiter)
} else {
placeholders += fmt.Sprintf("$%v%v", i, s.delimiter)
fieldParams += fmt.Sprintf("$%v%v", i, s.delimiter)
fieldParams += s.delimiter
}
parameters = append(parameters, val)
i++
}
query += fmt.Sprintf(`RETURNING %s`, fieldParams)
Expand Down
4 changes: 2 additions & 2 deletions tests/insert_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -59,10 +59,10 @@ func TestReturning(t *testing.T) {
t.Error(err)
}

expected := `INSERT INTO public."User" ( id, first_name, last_name ) VALUES ( $1, $2, $3 ) RETURNING $4, $5, $6 `
expected := `INSERT INTO public."User" ( id, first_name, last_name ) VALUES ( $1, $2, $3 ) RETURNING "User".id, "User".first_name, "User".last_name `
if !strings.HasPrefix(query, `INSERT INTO public."User" ( `) ||
!strings.Contains(query, `) VALUES ( $1, $2, $3 ) `) ||
!strings.HasSuffix(query, `RETURNING $4, $5, $6 `) {
!strings.HasSuffix(query, `RETURNING "User".id, "User".first_name, "User".last_name `) {
t.Errorf("query mismatch\nexpected:\n'%v'\n actual:\n'%v'", expected, query)
}
}

0 comments on commit 91ddf20

Please sign in to comment.