dialect/sql: override RETURNING clause on postgres

Summary: Pull Request resolved: https://github.com/facebookincubator/ent/pull/192

Reviewed By: dlvhdr

Differential Revision: D18685852

fbshipit-source-id: 90ddd1057a7d6cfa00470a7b11fb237862edcc2b
This commit is contained in:
Ariel Mashraki
2019-11-25 07:23:10 -08:00
committed by Facebook Github Bot
parent 038dc2899a
commit d2fb1b5548
2 changed files with 6 additions and 1 deletions

View File

@@ -539,7 +539,7 @@ func (i *InsertBuilder) Default() *InsertBuilder {
// Returning adds the `RETURNING` clause to the insert statement. PostgreSQL only.
func (i *InsertBuilder) Returning(columns ...string) *InsertBuilder {
i.returning = append(i.returning, columns...)
i.returning = columns
return i
}

View File

@@ -200,6 +200,11 @@ func TestBuilder(t *testing.T) {
wantQuery: `INSERT INTO "users" ("age") VALUES ($1) RETURNING "id"`,
wantArgs: []interface{}{1},
},
{
input: Dialect(dialect.Postgres).Insert("users").Columns("age").Values(1).Returning("id").Returning("name"),
wantQuery: `INSERT INTO "users" ("age") VALUES ($1) RETURNING "name"`,
wantArgs: []interface{}{1},
},
{
input: Insert("users").Columns("name", "age").Values("a8m", 10),
wantQuery: "INSERT INTO `users` (`name`, `age`) VALUES (?, ?)",