mirror of
https://github.com/ent/ent.git
synced 2026-05-24 09:31:56 +03:00
ent/entc: use select/scan on id query (#1552)
Summary: Pull Request resolved: https://github.com/facebookexternal/fbc/pull/1552 Pull Request resolved: https://github.com/facebookincubator/ent/pull/93 avoids complete ent load on id query Reviewed By: a8m Differential Revision: D17906002 fbshipit-source-id: 7749a0d7c707858eab368978a1d220b581ea6dbb
This commit is contained in:
committed by
Facebook Github Bot
parent
638e34b11a
commit
5d988870bc
@@ -177,7 +177,11 @@ func (cq *CarQuery) AllX(ctx context.Context) []*Car {
|
||||
|
||||
// IDs executes the query and returns a list of Car ids.
|
||||
func (cq *CarQuery) IDs(ctx context.Context) ([]int, error) {
|
||||
return cq.sqlIDs(ctx)
|
||||
var ids []int
|
||||
if err := cq.Select(car.FieldID).Scan(ctx, &ids); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return ids, nil
|
||||
}
|
||||
|
||||
// IDsX is like IDs, but panics if an error occurs.
|
||||
@@ -323,18 +327,6 @@ func (cq *CarQuery) sqlExist(ctx context.Context) (bool, error) {
|
||||
return n > 0, nil
|
||||
}
|
||||
|
||||
func (cq *CarQuery) sqlIDs(ctx context.Context) ([]int, error) {
|
||||
vs, err := cq.sqlAll(ctx)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
var ids []int
|
||||
for _, v := range vs {
|
||||
ids = append(ids, v.ID)
|
||||
}
|
||||
return ids, nil
|
||||
}
|
||||
|
||||
func (cq *CarQuery) sqlQuery() *sql.Selector {
|
||||
t1 := sql.Table(car.Table)
|
||||
selector := sql.Select(t1.Columns(car.Columns...)...).From(t1)
|
||||
|
||||
@@ -182,7 +182,11 @@ func (gq *GroupQuery) AllX(ctx context.Context) []*Group {
|
||||
|
||||
// IDs executes the query and returns a list of Group ids.
|
||||
func (gq *GroupQuery) IDs(ctx context.Context) ([]int, error) {
|
||||
return gq.sqlIDs(ctx)
|
||||
var ids []int
|
||||
if err := gq.Select(group.FieldID).Scan(ctx, &ids); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return ids, nil
|
||||
}
|
||||
|
||||
// IDsX is like IDs, but panics if an error occurs.
|
||||
@@ -328,18 +332,6 @@ func (gq *GroupQuery) sqlExist(ctx context.Context) (bool, error) {
|
||||
return n > 0, nil
|
||||
}
|
||||
|
||||
func (gq *GroupQuery) sqlIDs(ctx context.Context) ([]int, error) {
|
||||
vs, err := gq.sqlAll(ctx)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
var ids []int
|
||||
for _, v := range vs {
|
||||
ids = append(ids, v.ID)
|
||||
}
|
||||
return ids, nil
|
||||
}
|
||||
|
||||
func (gq *GroupQuery) sqlQuery() *sql.Selector {
|
||||
t1 := sql.Table(group.Table)
|
||||
selector := sql.Select(t1.Columns(group.Columns...)...).From(t1)
|
||||
|
||||
@@ -196,7 +196,11 @@ func (uq *UserQuery) AllX(ctx context.Context) []*User {
|
||||
|
||||
// IDs executes the query and returns a list of User ids.
|
||||
func (uq *UserQuery) IDs(ctx context.Context) ([]int, error) {
|
||||
return uq.sqlIDs(ctx)
|
||||
var ids []int
|
||||
if err := uq.Select(user.FieldID).Scan(ctx, &ids); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return ids, nil
|
||||
}
|
||||
|
||||
// IDsX is like IDs, but panics if an error occurs.
|
||||
@@ -342,18 +346,6 @@ func (uq *UserQuery) sqlExist(ctx context.Context) (bool, error) {
|
||||
return n > 0, nil
|
||||
}
|
||||
|
||||
func (uq *UserQuery) sqlIDs(ctx context.Context) ([]int, error) {
|
||||
vs, err := uq.sqlAll(ctx)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
var ids []int
|
||||
for _, v := range vs {
|
||||
ids = append(ids, v.ID)
|
||||
}
|
||||
return ids, nil
|
||||
}
|
||||
|
||||
func (uq *UserQuery) sqlQuery() *sql.Selector {
|
||||
t1 := sql.Table(user.Table)
|
||||
selector := sql.Select(t1.Columns(user.Columns...)...).From(t1)
|
||||
|
||||
Reference in New Issue
Block a user