mirror of
https://github.com/ent/ent.git
synced 2026-05-02 23:50:54 +03:00
dialect/sql: support passing selectors to basic predicates
Closed https://github.com/ent/ent/issues/2236
This commit is contained in:
committed by
Ariel Mashraki
parent
d9cdec1094
commit
deb63d0292
@@ -411,6 +411,31 @@ func TestBuilder(t *testing.T) {
|
||||
wantQuery: "UPDATE `users` SET `name` = ?, `age` = ? WHERE `name` = ?",
|
||||
wantArgs: []interface{}{"foo", 10, "foo"},
|
||||
},
|
||||
{
|
||||
input: Dialect(dialect.Postgres).
|
||||
Update("users").
|
||||
Add("rank", 10).
|
||||
Where(
|
||||
Or(
|
||||
EQ("rank", Select("rank").From(Table("ranks")).Where(EQ("name", "foo"))),
|
||||
GT("score", Select("score").From(Table("scores")).Where(GT("count", 0))),
|
||||
),
|
||||
),
|
||||
wantQuery: `UPDATE "users" SET "rank" = COALESCE("users"."rank", 0) + $1 WHERE "rank" = (SELECT "rank" FROM "ranks" WHERE "name" = $2) OR "score" > (SELECT "score" FROM "scores" WHERE "count" > $3)`,
|
||||
wantArgs: []interface{}{10, "foo", 0},
|
||||
},
|
||||
{
|
||||
input: Update("users").
|
||||
Add("rank", 10).
|
||||
Where(
|
||||
Or(
|
||||
EQ("rank", Select("rank").From(Table("ranks")).Where(EQ("name", "foo"))),
|
||||
GT("score", Select("score").From(Table("scores")).Where(GT("count", 0))),
|
||||
),
|
||||
),
|
||||
wantQuery: "UPDATE `users` SET `rank` = COALESCE(`users`.`rank`, 0) + ? WHERE `rank` = (SELECT `rank` FROM `ranks` WHERE `name` = ?) OR `score` > (SELECT `score` FROM `scores` WHERE `count` > ?)",
|
||||
wantArgs: []interface{}{10, "foo", 0},
|
||||
},
|
||||
{
|
||||
input: Dialect(dialect.Postgres).
|
||||
Update("users").
|
||||
|
||||
Reference in New Issue
Block a user