[LNT] r305724 - Avoid lazy queries in recent page

Chris Matthews via llvm-commits llvm-commits at lists.llvm.org
Mon Jun 19 10:58:18 PDT 2017


Author: cmatthews
Date: Mon Jun 19 12:58:17 2017
New Revision: 305724

URL: http://llvm.org/viewvc/llvm-project?rev=305724&view=rev
Log:
Avoid lazy queries in recent page

We were using lazy queries to get Order and machine info. Those are
always rendered, so fetch them unconditionally in the first query.

Modified:
    lnt/trunk/lnt/server/ui/views.py

Modified: lnt/trunk/lnt/server/ui/views.py
URL: http://llvm.org/viewvc/llvm-project/lnt/trunk/lnt/server/ui/views.py?rev=305724&r1=305723&r2=305724&view=diff
==============================================================================
--- lnt/trunk/lnt/server/ui/views.py (original)
+++ lnt/trunk/lnt/server/ui/views.py Mon Jun 19 12:58:17 2017
@@ -18,6 +18,7 @@ from flask import render_template
 from flask import request, url_for
 from flask import session
 from flask_wtf import Form
+from sqlalchemy.orm import joinedload
 from sqlalchemy.orm.exc import NoResultFound
 from typing import List, Optional
 from wtforms import SelectField, StringField, SubmitField
@@ -176,9 +177,13 @@ def v4_recent_activity():
 
     # Get the most recent runs in this tag, we just arbitrarily limit to looking
     # at the last 100 submission.
-    recent_runs = ts.query(ts.Run).\
-        order_by(ts.Run.start_time.desc()).limit(100)
-    recent_runs = list(recent_runs)
+    recent_runs = ts.query(ts.Run) \
+        .join(ts.Order) \
+        .join(ts.Machine) \
+        .options(joinedload(ts.Run.order)) \
+        .options(joinedload(ts.Run.machine)) \
+        .order_by(ts.Run.start_time.desc()).limit(100)
+    recent_runs = recent_runs.all()
 
     # Compute the active machine list.
     active_machines = dict((run.machine.name, run)




More information about the llvm-commits mailing list