From dc790ede36d6961c2bedd2a8cfeb72a496c01d4c Mon Sep 17 00:00:00 2001
From: Jorrit Schaap <schaap@astron.nl>
Date: Fri, 21 Jul 2017 08:13:47 +0000
Subject: [PATCH] Task #11090: log query execution time and numrows results

---
 .../ResourceAssignmentDatabase/radb.py                   | 9 ++++++---
 1 file changed, 6 insertions(+), 3 deletions(-)

diff --git a/SAS/ResourceAssignment/ResourceAssignmentDatabase/radb.py b/SAS/ResourceAssignment/ResourceAssignmentDatabase/radb.py
index 14f3e7599d3..d799c0f3d86 100644
--- a/SAS/ResourceAssignment/ResourceAssignmentDatabase/radb.py
+++ b/SAS/ResourceAssignment/ResourceAssignmentDatabase/radb.py
@@ -71,13 +71,16 @@ class RADatabase:
     def _executeQuery(self, query, qargs=None, fetch=_FETCH_NONE):
         ''' Execute the query and reconnect upon OperationalError '''
 
-        if self.log_queries:
-            logger.info('executing query: %s' % self._queryAsSingleLine(query, qargs))
-
         # Allow for 5 connection retries
         for i in range(5):
             try:
+                start = datetime.utcnow()
                 self.cursor.execute(query, qargs)
+                if self.log_queries:
+                    elapsed = datetime.utcnow() - start
+                    logger.info('executed query in %s yielding %s rows: %s', elapsed,
+                                                                             self.cursor.rowcount,
+                                                                             self._queryAsSingleLine(query, qargs))
                 break
             except (psycopg2.OperationalError, AttributeError) as e:
                 if isinstance(e, psycopg2.OperationalError):
-- 
GitLab