entc/gen: move set-neighbors logic from codegen to sqlgraph

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

Reviewed By: alexsn

Differential Revision: D18644179

fbshipit-source-id: 2f2b0c03811a09c4c11240e5161187afbb2ac553
This commit is contained in:
Ariel Mashraki
2019-11-24 02:43:21 -08:00
committed by Facebook Github Bot
parent 1e49561634
commit c355ed49be
34 changed files with 659 additions and 659 deletions

View File

@@ -115,7 +115,7 @@ func SetNeighbors(dialect string, s *Step) (q *Selector) {
pk1, pk2 = pk2, pk1
}
to := builder.Table(s.To.Table)
set.Select(s.From.Column)
set.Select(set.C(s.From.Column))
join := builder.Table(s.Edge.Table)
match := builder.Select(join.C(pk1)).
From(join).
@@ -127,14 +127,14 @@ func SetNeighbors(dialect string, s *Step) (q *Selector) {
On(to.C(s.To.Column), match.C(pk1))
case r == M2O || (r == O2O && s.Edge.Inverse):
t1 := builder.Table(s.To.Table)
set.Select(s.Edge.Columns[0])
set.Select(set.C(s.Edge.Columns[0]))
q = builder.Select().
From(t1).
Join(set).
On(t1.C(s.To.Column), set.C(s.Edge.Columns[0]))
case r == O2M || (r == O2O && !s.Edge.Inverse):
t1 := builder.Table(s.To.Table)
set.Select(s.From.Column)
set.Select(set.C(s.From.Column))
q = builder.Select().
From(t1).
Join(set).

View File

@@ -227,7 +227,7 @@ func TestSetNeighbors(t *testing.T) {
step.Edge.Columns = []string{"owner_id"}
return step
}(),
wantQuery: `SELECT * FROM "pets" JOIN (SELECT "id" FROM "users" WHERE "name" = $1) AS "t1" ON "pets"."owner_id" = "t1"."id"`,
wantQuery: `SELECT * FROM "pets" JOIN (SELECT "users"."id" FROM "users" WHERE "name" = $1) AS "t1" ON "pets"."owner_id" = "t1"."id"`,
wantArgs: []interface{}{"a8m"},
},
{
@@ -244,7 +244,7 @@ func TestSetNeighbors(t *testing.T) {
step.Edge.Columns = []string{"owner_id"}
return step
}(),
wantQuery: `SELECT * FROM "users" JOIN (SELECT "owner_id" FROM "pets" WHERE "name" = $1) AS "t1" ON "users"."id" = "t1"."owner_id"`,
wantQuery: `SELECT * FROM "users" JOIN (SELECT "pets"."owner_id" FROM "pets" WHERE "name" = $1) AS "t1" ON "users"."id" = "t1"."owner_id"`,
wantArgs: []interface{}{"pedro"},
},
{
@@ -268,7 +268,7 @@ JOIN
(SELECT "user_groups"."group_id"
FROM "user_groups"
JOIN
(SELECT "id"
(SELECT "users"."id"
FROM "users"
WHERE "name" = $1) AS "t1" ON "user_groups"."user_id" = "t1"."id") AS "t1" ON "groups"."id" = "t1"."group_id"`,
wantArgs: []interface{}{"a8m"},
@@ -295,7 +295,7 @@ JOIN
(SELECT "user_groups"."user_id"
FROM "user_groups"
JOIN
(SELECT "id"
(SELECT "groups"."id"
FROM "groups"
WHERE "name" = $1) AS "t1" ON "user_groups"."group_id" = "t1"."id") AS "t1" ON "users"."id" = "t1"."user_id"`,
wantArgs: []interface{}{"GitHub"},