diff --git a/dialect/sql/sqlgraph/graph.go b/dialect/sql/sqlgraph/graph.go index ac6a77aeb..4dc392fe1 100644 --- a/dialect/sql/sqlgraph/graph.go +++ b/dialect/sql/sqlgraph/graph.go @@ -1070,6 +1070,7 @@ func (q *query) selector(ctx context.Context) (*sql.Selector, error) { WithContext(ctx) if q.From != nil { selector = q.From + selector.WithContext(ctx) } selector.Select(selector.Columns(q.Node.Columns...)...) if order := q.Order; order != nil { diff --git a/entc/integration/multischema/multischema_test.go b/entc/integration/multischema/multischema_test.go index 1c1dbc4b3..6cac3382e 100644 --- a/entc/integration/multischema/multischema_test.go +++ b/entc/integration/multischema/multischema_test.go @@ -164,6 +164,13 @@ func TestMySQL(t *testing.T) { require.Len(t, sib, 2) require.True(t, slices.ContainsFunc(sib, func(u *ent.User) bool { return u.Name == el.Name })) require.True(t, slices.ContainsFunc(sib, func(u *ent.User) bool { return u.Name == jo.Name })) + + // Cross-schema edge predicate: QueryGroups().Where(HasUsersWith(...)) + // must qualify group_users with db2, since the connection defaults to db1. + got := a8m.QueryGroups(). + Where(group.HasUsersWith(user.ID(a8m.ID))). + CountX(ctx) + require.Equal(t, 1, got) // a8m was removed from GitHub above; only GitLab remains } func TestVersionedMigration(t *testing.T) {