entc/gen/features/multischema: pass schema to count query (#1390)

Fixed #1385
This commit is contained in:
Ariel Mashraki
2021-03-25 13:48:32 +02:00
committed by GitHub
parent d62b810096
commit 2d09c8f846
6 changed files with 17 additions and 2 deletions

File diff suppressed because one or more lines are too long

View File

@@ -78,6 +78,12 @@ func ({{ $receiver }} *{{ $builder }}) sqlAll(ctx context.Context) ([]*{{ $.Name
func ({{ $receiver }} *{{ $builder }}) sqlCount(ctx context.Context) (int, error) {
_spec := {{ $receiver }}.querySpec()
{{- /* Allow mutating the sqlgraph.QuerySpec by ent extensions or user templates.*/}}
{{- with $tmpls := matchTemplate "dialect/sql/query/spec/*" }}
{{- range $tmpl := $tmpls }}
{{- xtemplate $tmpl $ }}
{{- end }}
{{- end }}
return sqlgraph.CountNodes(ctx, {{ $receiver }}.driver, _spec)
}

View File

@@ -455,6 +455,8 @@ func (gq *GroupQuery) sqlAll(ctx context.Context) ([]*Group, error) {
func (gq *GroupQuery) sqlCount(ctx context.Context) (int, error) {
_spec := gq.querySpec()
_spec.Node.Schema = gq.schemaConfig.Group
ctx = internal.NewSchemaConfigContext(ctx, gq.schemaConfig)
return sqlgraph.CountNodes(ctx, gq.driver, _spec)
}

View File

@@ -425,6 +425,8 @@ func (pq *PetQuery) sqlAll(ctx context.Context) ([]*Pet, error) {
func (pq *PetQuery) sqlCount(ctx context.Context) (int, error) {
_spec := pq.querySpec()
_spec.Node.Schema = pq.schemaConfig.Pet
ctx = internal.NewSchemaConfigContext(ctx, pq.schemaConfig)
return sqlgraph.CountNodes(ctx, pq.driver, _spec)
}

View File

@@ -524,6 +524,8 @@ func (uq *UserQuery) sqlAll(ctx context.Context) ([]*User, error) {
func (uq *UserQuery) sqlCount(ctx context.Context) (int, error) {
_spec := uq.querySpec()
_spec.Node.Schema = uq.schemaConfig.User
ctx = internal.NewSchemaConfigContext(ctx, uq.schemaConfig)
return sqlgraph.CountNodes(ctx, uq.driver, _spec)
}

View File

@@ -80,6 +80,9 @@ func TestMySQL(t *testing.T) {
pedro = pedro.Update().ClearOwner().SaveX(ctx)
exist = pedro.QueryOwner().ExistX(ctx)
require.False(t, exist)
require.Equal(t, client.User.Query().CountX(ctx), len(client.User.Query().AllX(ctx)))
require.Equal(t, client.Pet.Query().CountX(ctx), len(client.Pet.Query().AllX(ctx)))
}
func setupSchema(t *testing.T, drv *sql.Driver) {