mirror of
https://github.com/ent/ent.git
synced 2026-05-01 15:10:57 +03:00
entc/gen: move query-count to sqlgraph
This commit is contained in:
@@ -492,10 +492,11 @@ func (q *query) nodes(ctx context.Context, drv dialect.Driver) error {
|
||||
|
||||
func (q *query) count(ctx context.Context, drv dialect.Driver) (int, error) {
|
||||
rows := &sql.Rows{}
|
||||
selector := q.selector().Count(q.Node.ID.Column)
|
||||
selector := q.selector()
|
||||
selector.Count(selector.C(q.Node.ID.Column))
|
||||
if q.Unique {
|
||||
selector.SetDistinct(false)
|
||||
selector.Count(sql.Distinct(q.Node.ID.Column))
|
||||
selector.Count(sql.Distinct(selector.C(q.Node.ID.Column)))
|
||||
}
|
||||
query, args := selector.Query()
|
||||
if err := drv.Query(ctx, query, args, rows); err != nil {
|
||||
@@ -510,7 +511,7 @@ func (q *query) selector() *sql.Selector {
|
||||
if q.From != nil {
|
||||
selector = q.From
|
||||
}
|
||||
selector.Select(q.Node.Columns...)
|
||||
selector.Select(selector.Columns(q.Node.Columns...)...)
|
||||
if pred := q.Predicate; pred != nil {
|
||||
pred(selector)
|
||||
}
|
||||
|
||||
@@ -1155,13 +1155,13 @@ func TestDeleteNodes(t *testing.T) {
|
||||
func TestQueryNodes(t *testing.T) {
|
||||
db, mock, err := sqlmock.New()
|
||||
require.NoError(t, err)
|
||||
mock.ExpectQuery(escape("SELECT DISTINCT `id`, `age`, `name`, `fk1`, `fk2` FROM `users` WHERE `age` < ? ORDER BY `id` LIMIT ? OFFSET ?")).
|
||||
mock.ExpectQuery(escape("SELECT DISTINCT `users`.`id`, `users`.`age`, `users`.`name`, `users`.`fk1`, `users`.`fk2` FROM `users` WHERE `age` < ? ORDER BY `id` LIMIT ? OFFSET ?")).
|
||||
WithArgs(40, 3, 4).
|
||||
WillReturnRows(sqlmock.NewRows([]string{"id", "age", "name", "fk1", "fk2"}).
|
||||
AddRow(1, 10, nil, nil, nil).
|
||||
AddRow(2, 20, "", 0, 0).
|
||||
AddRow(3, 30, "a8m", 1, 1))
|
||||
mock.ExpectQuery(escape("SELECT COUNT(DISTINCT `id`) FROM `users` WHERE `age` < ? ORDER BY `id` LIMIT ? OFFSET ?")).
|
||||
mock.ExpectQuery(escape("SELECT COUNT(DISTINCT `users`.`id`) FROM `users` WHERE `age` < ? ORDER BY `id` LIMIT ? OFFSET ?")).
|
||||
WithArgs(40, 3, 4).
|
||||
WillReturnRows(sqlmock.NewRows([]string{"COUNT"}).
|
||||
AddRow(3))
|
||||
|
||||
Reference in New Issue
Block a user