• 
      

    Avoid fetching a StatusUpdate per Review on the review request page.

    Review Request #14313 — Created Jan. 29, 2025 and submitted

    Information

    Review Board
    release-7.1.x

    Reviewers

    We had code in the review request page that checked for the presence of
    the Review.status_update attribute. This in turn triggered a query for
    the object on the other end of that relation, regardless of whether it
    existed. That led to a useless query per review, especially since we had
    already fetched all status updates on the page.

    This change adds some pre-processing, creating a map of reviews to
    status updates, and utilizes that map instead of performing the
    attribute check.

    This offers a pretty large savings on most review requests.

    Unit tests passed.

    Verified in Django Debug Toolbar that the repeated SQL queries for
    status updates were no longer present.

    Summary ID
    Avoid fetching a StatusUpdate per Review on the review request page.
    We had code in the review request page that checked for the presence of the `Review.status_update` attribute. This in turn triggered a query for the object on the other end of that relation, regardless of whether it existed. That led to a useless query per review, especially since we had already fetched all status updates on the page. This change adds some pre-processing, creating a map of reviews to status updates, and utilizes that map instead of performing the attribute check. This offers a pretty large savings on most review requests.
    9510e1c617706e9c3a0362a8c289fa469e3c75a8
    david
    1. Ship It!
    2. 
        
    chipx86
    maubin
    1. Ship It!
    2. 
        
    chipx86
    Review request changed
    Status:
    Completed
    Change Summary:
    Pushed to release-7.1.x (389906d)