Apply `:skip_default_order` to the `group/{id}/audit_events` API
What does this MR do and why?
In this commit, We want to experiment with passing the
skip_default_order
to the paginate query behind our FF
background context
In issue 337757, we added a query to return all of the project audit events under a group in addition to the group-level audit events.
We then also added without_count: true
in issue 414578 to get
rid of a problematic COUNT
wrapping the query
the good news, the COUNT
is gone.
the bad news, still timing out requests on larger groups
eg:
- works: https://gitlab.com/api/v4/groups/5753100/audit_events
- doesnt work: https://gitlab.com/api/v4/groups/785414/audit_events
from the logs, it appears something is adding an id
ordering at the
end of the query:
SELECT (records).*
FROM "recursive_keyset_cte" AS "audit_events"
WHERE (count <> $1)) audit_events
ORDER BY "id" DESC
LIMIT $26 OFFSET $25
The original query should already be ordered by created_at
SELECT (records).*
FROM "recursive_keyset_cte" AS "audit_events"
WHERE (count <> 0)) audit_events
LIMIT 10
- Changelog: changed
- EE: true
Screenshots or screen recordings
Screenshots are required for UI changes, and strongly recommended for all other merge requests.
Before | After |
---|---|
How to set up and validate locally
Numbered steps to set up and validate the change are strongly suggested.
MR acceptance checklist
This checklist encourages us to confirm any changes have been analyzed to reduce risks in quality, performance, reliability, security, and maintainability.
-
I have evaluated the MR acceptance checklist for this MR.
Related to #415163 (closed)