Use CTE optimization fence for loading projects in dashboard
Certain users experienced Error 500s when loading projects from the dashboard because the PostgreSQL query planner attempted to scan all projects rather than just the user's authorized projects. This would cause the query to hit a statement timeout. To fix this, we add support for a CTE optimization fence to load authorized projects first, which can be optionally used by `ProjectsFinder` via the `use_cte` parameter. To be safe, we only enable it for the finder call that loads the list of projects behind the `use_cte_for_projects_finder` feature flag. Closes https://gitlab.com/gitlab-org/gitlab/issues/198440
Showing
This diff is collapsed.
Please register or sign in to comment