Skip to content
This repository was archived by the owner on Sep 2, 2022. It is now read-only.

Commit de8fc9d

Browse files
authored
Merge pull request #4200 from prisma/CountQuery
Improve Count query when no query arguments are given
2 parents 54942c7 + ea4ed7d commit de8fc9d

2 files changed

Lines changed: 4 additions & 2 deletions

File tree

server/connectors/api-connector-jdbc/src/main/scala/com/prisma/api/connector/jdbc/database/NodeManyQueries.scala

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -25,10 +25,11 @@ trait NodeManyQueries extends BuilderBase with FilterConditionBuilder with Curso
2525

2626
def countFromModel(model: Model, queryArguments: QueryArguments): DBIO[Int] = {
2727
val baseQuery = modelQuery(model, queryArguments, SelectedFields(Set(SelectedScalarField(model.idField_!))))
28-
val query = sql.selectCount().from(baseQuery)
28+
29+
val query = if (queryArguments.isEmpty) sql.selectCount().from(modelTable(model)) else sql.selectCount().from(baseQuery)
2930

3031
queryToDBIO(query)(
31-
setParams = pp => SetParams.setQueryArgs(pp, queryArguments),
32+
setParams = pp => if (queryArguments.isEmpty) () else SetParams.setQueryArgs(pp, queryArguments),
3233
readResult = { rs =>
3334
val _ = rs.next()
3435
val count = rs.getInt(1)

server/connectors/api-connector/src/main/scala/com/prisma/api/connector/DataResolverTypes.scala

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,7 @@ case class QueryArguments(
4545
orderBy: Option[OrderBy]
4646
) {
4747
val isWithPagination = last.orElse(first).orElse(skip).isDefined
48+
val isEmpty = skip.isEmpty && after.isEmpty && first.isEmpty && before.isEmpty && last.isEmpty && filter.isEmpty && orderBy.isEmpty
4849
}
4950

5051
object QueryArguments {

0 commit comments

Comments
 (0)