Query History: Count using SQL, not post query (#82208)
* Count in SQL, not externally * Fix linter
This commit is contained in:
@@ -45,7 +45,7 @@ func (s QueryHistoryService) createQuery(ctx context.Context, user *user.SignedI
|
||||
// searchQueries searches for queries in query history based on provided parameters
|
||||
func (s QueryHistoryService) searchQueries(ctx context.Context, user *user.SignedInUser, query SearchInQueryHistoryQuery) (QueryHistorySearchResult, error) {
|
||||
var dtos []QueryHistoryDTO
|
||||
var allQueries []any
|
||||
var totalCount int
|
||||
|
||||
if query.To <= 0 {
|
||||
query.To = s.now().Unix()
|
||||
@@ -73,7 +73,7 @@ func (s QueryHistoryService) searchQueries(ctx context.Context, user *user.Signe
|
||||
query_history.comment,
|
||||
query_history.queries,
|
||||
`)
|
||||
writeStarredSQL(query, s.store, &dtosBuilder)
|
||||
writeStarredSQL(query, s.store, &dtosBuilder, false)
|
||||
writeFiltersSQL(query, user, s.store, &dtosBuilder)
|
||||
writeSortSQL(query, s.store, &dtosBuilder)
|
||||
writeLimitSQL(query, s.store, &dtosBuilder)
|
||||
@@ -87,9 +87,9 @@ func (s QueryHistoryService) searchQueries(ctx context.Context, user *user.Signe
|
||||
countBuilder := db.SQLBuilder{}
|
||||
countBuilder.Write(`SELECT
|
||||
`)
|
||||
writeStarredSQL(query, s.store, &countBuilder)
|
||||
writeStarredSQL(query, s.store, &countBuilder, true)
|
||||
writeFiltersSQL(query, user, s.store, &countBuilder)
|
||||
err = session.SQL(countBuilder.GetSQLString(), countBuilder.GetParams()...).Find(&allQueries)
|
||||
_, err = session.SQL(countBuilder.GetSQLString(), countBuilder.GetParams()...).Get(&totalCount)
|
||||
return err
|
||||
})
|
||||
|
||||
@@ -99,7 +99,7 @@ func (s QueryHistoryService) searchQueries(ctx context.Context, user *user.Signe
|
||||
|
||||
response := QueryHistorySearchResult{
|
||||
QueryHistory: dtos,
|
||||
TotalCount: len(allQueries),
|
||||
TotalCount: totalCount,
|
||||
Page: query.Page,
|
||||
PerPage: query.Limit,
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user