From f09eeb8ab55578ba743f87d5657665cf046a0b2d Mon Sep 17 00:00:00 2001 From: Kyle Conroy Date: Mon, 10 Feb 2020 15:06:40 -0800 Subject: [PATCH] internal/endtoend: Add update test for named params --- .../testdata/named_param/go/query.sql.go | 22 +++++++++++++++++++ .../endtoend/testdata/named_param/query.sql | 9 ++++++++ 2 files changed, 31 insertions(+) diff --git a/internal/endtoend/testdata/named_param/go/query.sql.go b/internal/endtoend/testdata/named_param/go/query.sql.go index 3b2bcdf45a..7c9cd9b3fe 100644 --- a/internal/endtoend/testdata/named_param/go/query.sql.go +++ b/internal/endtoend/testdata/named_param/go/query.sql.go @@ -70,3 +70,25 @@ func (q *Queries) FuncParams(ctx context.Context, arg FuncParamsParams) ([]strin } return items, nil } + +const update = `-- name: Update :one +UPDATE foo +SET + name = CASE WHEN $1::bool + THEN $2::text + ELSE name + END +RETURNING name, bio +` + +type UpdateParams struct { + SetName bool + Name string +} + +func (q *Queries) Update(ctx context.Context, arg UpdateParams) (Foo, error) { + row := q.db.QueryRowContext(ctx, update, arg.SetName, arg.Name) + var i Foo + err := row.Scan(&i.Name, &i.Bio) + return i, err +} diff --git a/internal/endtoend/testdata/named_param/query.sql b/internal/endtoend/testdata/named_param/query.sql index 35dba4c476..76c4e1a4d4 100644 --- a/internal/endtoend/testdata/named_param/query.sql +++ b/internal/endtoend/testdata/named_param/query.sql @@ -5,3 +5,12 @@ SELECT name FROM foo WHERE name = sqlc.arg(slug) AND sqlc.arg(filter)::bool; -- name: AtParams :many SELECT name FROM foo WHERE name = @slug AND @filter::bool; + +-- name: Update :one +UPDATE foo +SET + name = CASE WHEN @set_name::bool + THEN @name::text + ELSE name + END +RETURNING *;