• Stan Hu's avatar
    Optimize issue search when sorting by weight · 90a01bbd
    Stan Hu authored
    When searching for issues within a project or group, `IssuableFinder`
    has an optimization that uses a CTE to filter the list of authorized
    issues before searching within the list for text. This CTE optimization
    fence is currently only used when the user specifies a simple sorting
    parameter, such as `created_at`, and not popularity. These attributes
    are generally stored directly with the model, so the CTE can easily do
    an `ORDER BY` without joining another table (e.g. `award_emoji` for
    popularity).
    
    In EE, `weight` is another simple sorting parameter, and we should take
    advantage of the CTE for that. This commit adds `weight` to
    `Issue.simple_sorts`. When a user sorts by weight, this should help
    speed up the search query and avoid a database statement timeout.
    
    Improves https://gitlab.com/gitlab-org/gitlab/issues/34661
    90a01bbd
issue_spec.rb 18.1 KB