about summary refs log tree commit diff
path: root/wqflask
diff options
context:
space:
mode:
authorPjotr Prins2016-06-23 11:37:19 +0000
committerPjotr Prins2016-06-23 11:37:19 +0000
commitda1db6ae1df0b5c3d539c1d8b2d78d05ebe393e1 (patch)
tree450065716e31195ae00e7f3841fffff538a7a81d /wqflask
parent92d2f3f51d4191b079567f251348b316fe35feff (diff)
downloadgenenetwork2-da1db6ae1df0b5c3d539c1d8b2d78d05ebe393e1.tar.gz
Log: SQL queries
Diffstat (limited to 'wqflask')
-rw-r--r--wqflask/base/data_set.py45
-rw-r--r--wqflask/db/call.py8
-rw-r--r--wqflask/utility/logger.py4
3 files changed, 33 insertions, 24 deletions
diff --git a/wqflask/base/data_set.py b/wqflask/base/data_set.py
index a75b517f..a50f5235 100644
--- a/wqflask/base/data_set.py
+++ b/wqflask/base/data_set.py
@@ -51,7 +51,7 @@ from maintenance import get_group_samplelists
 from MySQLdb import escape_string as escape
 from pprint import pformat as pf
 from db.gn_server import menu_main
-from db.call import fetchall
+from db.call import fetchall,fetchone,fetch1
 
 from utility.tools import USE_GN_SERVER, USE_REDIS
 from utility.logger import getLogger
@@ -133,7 +133,6 @@ def create_datasets_list():
 
             for dataset_type in type_dict:
                 query = "SELECT Name FROM {}".format(type_dict[dataset_type])
-                raise Exception("HELL")
                 for result in fetchall(query):
                     #The query at the beginning of this function isn't
                     #necessary here, but still would rather just reuse
@@ -264,7 +263,7 @@ class DatasetGroup(object):
     def __init__(self, dataset):
         """This sets self.group and self.group_id"""
         #logger.debug("DATASET NAME2:", dataset.name)
-        self.name, self.id = g.db.execute(dataset.query_for_group).fetchone()
+        self.name, self.id = fetchone(dataset.query_for_group)
         if self.name == 'BXD300':
             self.name = "BXD"
 
@@ -297,17 +296,17 @@ class DatasetGroup(object):
         dataset_menu = []
         logger.debug("[tape4] webqtlConfig.PUBLICTHRESH:", webqtlConfig.PUBLICTHRESH)
         logger.debug("[tape4] type webqtlConfig.PUBLICTHRESH:", type(webqtlConfig.PUBLICTHRESH))
-        results = g.db.execute('''
+        the_results = fetchall('''
              (SELECT '#PublishFreeze',PublishFreeze.FullName,PublishFreeze.Name
               FROM PublishFreeze,InbredSet
               WHERE PublishFreeze.InbredSetId = InbredSet.Id
-                and InbredSet.Name = %s
+                and InbredSet.Name = '%s'
                 and PublishFreeze.public > %s)
              UNION
              (SELECT '#GenoFreeze',GenoFreeze.FullName,GenoFreeze.Name
               FROM GenoFreeze, InbredSet
               WHERE GenoFreeze.InbredSetId = InbredSet.Id
-                and InbredSet.Name = %s
+                and InbredSet.Name = '%s'
                 and GenoFreeze.public > %s)
              UNION
              (SELECT Tissue.Name, ProbeSetFreeze.FullName,ProbeSetFreeze.Name
@@ -318,11 +317,9 @@ class DatasetGroup(object):
                 and InbredSet.Name like %s
                 and ProbeSetFreeze.public > %s
               ORDER BY Tissue.Name, ProbeSetFreeze.CreateTime desc, ProbeSetFreeze.AvgId)
-            ''', (self.name, webqtlConfig.PUBLICTHRESH,
+            ''' % (self.name, webqtlConfig.PUBLICTHRESH,
                   self.name, webqtlConfig.PUBLICTHRESH,
-                  "%" + self.name + "%", webqtlConfig.PUBLICTHRESH))
-
-        the_results = results.fetchall()
+                  "'" + self.name + "'", webqtlConfig.PUBLICTHRESH))
 
         #for tissue_name, dataset in itertools.groupby(the_results, itemgetter(0)):
         for dataset_item in the_results:
@@ -485,14 +482,14 @@ class DataSet(object):
                     self.name,
                     self.name))
 
-                self.id, self.name, self.fullname, self.shortname, self.data_scale, self.tissue = g.db.execute("""
+                self.id, self.name, self.fullname, self.shortname, self.data_scale, self.tissue = fetchone("""
                         SELECT ProbeSetFreeze.Id, ProbeSetFreeze.Name, ProbeSetFreeze.FullName, ProbeSetFreeze.ShortName, ProbeSetFreeze.DataScale, Tissue.Name
                         FROM ProbeSetFreeze, ProbeFreeze, Tissue
                         WHERE ProbeSetFreeze.public > %s AND
                               ProbeSetFreeze.ProbeFreezeId = ProbeFreeze.Id AND
                               ProbeFreeze.TissueId = Tissue.Id AND
                              (ProbeSetFreeze.Name = '%s' OR ProbeSetFreeze.FullName = '%s' OR ProbeSetFreeze.ShortName = '%s')
-                  """ % (query_args)).fetchone()
+                  """ % (query_args))
             else:
                 query_args = tuple(escape(x) for x in (
                     (self.type + "Freeze"),
@@ -502,12 +499,12 @@ class DataSet(object):
                     self.name))
 
                 self.tissue = "N/A"
-                self.id, self.name, self.fullname, self.shortname = g.db.execute("""
+                self.id, self.name, self.fullname, self.shortname = fetchone("""
                         SELECT Id, Name, FullName, ShortName
                         FROM %s
                         WHERE public > %s AND
                              (Name = '%s' OR FullName = '%s' OR ShortName = '%s')
-                  """ % (query_args)).fetchone()
+                  """ % (query_args))
 
         except TypeError:
             logger.debug("Dataset {} is not yet available in GeneNetwork.".format(self.name))
@@ -529,6 +526,7 @@ class DataSet(object):
             and Strain.SpeciesId=Species.Id
             and Species.name = '{}'
             """.format(create_in_clause(self.samplelist), *mescape(self.group.species))
+        logger.sql(query)
         results = dict(g.db.execute(query).fetchall())
         sample_ids = [results[item] for item in self.samplelist]
 
@@ -579,6 +577,7 @@ class DataSet(object):
 
             #logger.debug("trait data query: ", query)
 
+            logger.sql(query)
             results = g.db.execute(query).fetchall()
             #logger.debug("query results:", results)
             trait_sample_data.append(results)
@@ -663,6 +662,7 @@ class PhenotypeDataSet(DataSet):
             where PublishFreeze.InbredSetId=PublishXRef.InbredSetId
             and PublishFreeze.Id = {}
             """.format(escape(str(self.id)))
+        logger.sql(query)
         results = g.db.execute(query).fetchall()
         trait_data = {}
         for trait in results:
@@ -754,6 +754,7 @@ class PhenotypeDataSet(DataSet):
                     Order BY
                             Strain.Name
                     """
+        logger.sql(query)
         results = g.db.execute(query, (trait, self.id)).fetchall()
         return results
 
@@ -801,6 +802,7 @@ class GenotypeDataSet(DataSet):
             where GenoXRef.GenoId = Geno.Id
             and GenoFreezeId = {}
             """.format(escape(str(self.id)))
+        logger.sql(query)
         results = g.db.execute(query).fetchall()
         trait_data = {}
         for trait in results:
@@ -845,6 +847,7 @@ class GenotypeDataSet(DataSet):
                     Order BY
                             Strain.Name
                     """
+        logger.sql(query)
         results = g.db.execute(query,
                                (webqtlDatabaseFunction.retrieve_species_id(self.group.name),
                                 trait, self.name)).fetchall()
@@ -927,6 +930,7 @@ class MrnaAssayDataSet(DataSet):
             where ProbeSetXRef.ProbeSetId = ProbeSet.Id
             and ProbeSetFreezeId = {}
             """.format(escape(str(self.id)))
+        logger.sql(query)
         results = g.db.execute(query).fetchall()
         trait_data = {}
         for trait in results:
@@ -996,7 +1000,7 @@ class MrnaAssayDataSet(DataSet):
                    escape(this_trait.name)))
 
             #logger.debug("query is:", pf(query))
-
+            logger.sql(query)
             result = g.db.execute(query).fetchone()
 
             mean = result[0] if result else 0
@@ -1018,6 +1022,7 @@ class MrnaAssayDataSet(DataSet):
                         Geno.Name = '{}' and
                         Geno.SpeciesId = Species.Id
                 """.format(species, this_trait.locus)
+                logger.sql(query)
                 result = g.db.execute(query).fetchone()
 
                 if result:
@@ -1053,6 +1058,7 @@ class MrnaAssayDataSet(DataSet):
                             ProbeSet.Name = %s
                             ProbeSetFreeze.Name = %s
                 """ % (escape(self.name), escape(self.dataset.name))
+        logger.sql(query)
         results = g.db.execute(query).fetchone()
         return results[0]
 
@@ -1073,6 +1079,7 @@ class MrnaAssayDataSet(DataSet):
                     Order BY
                             Strain.Name
                     """ % (escape(trait), escape(self.name))
+        logger.sql(query)
         results = g.db.execute(query).fetchall()
         #logger.debug("RETRIEVED RESULTS HERE:", results)
         return results
@@ -1085,6 +1092,7 @@ class MrnaAssayDataSet(DataSet):
                     where ProbeSetXRef.ProbeSetFreezeId = %s and
                     ProbeSetXRef.ProbeSetId=ProbeSet.Id;
                 """ % (column_name, escape(str(self.id)))
+        logger.sql(query)
         results = g.db.execute(query).fetchall()
 
         return dict(results)
@@ -1121,7 +1129,9 @@ class TempDataSet(DataSet):
         return desc
 
     def get_desc(self):
-        g.db.execute('SELECT description FROM Temp WHERE Name=%s', self.name)
+        query = 'SELECT description FROM Temp WHERE Name=%s' % self.name
+        logger.sql(query)
+        g.db.execute(query)
         desc = g.db.fetchone()[0]
         desc = self.handle_pca(desc)
         return desc
@@ -1153,6 +1163,7 @@ class TempDataSet(DataSet):
                         Strain.Name
                 """ % escape(trait.name)
 
+        logger.sql(query)
         results = g.db.execute(query).fetchall()
 
 
@@ -1162,7 +1173,7 @@ def geno_mrna_confidentiality(ob):
 
     query = '''SELECT Id, Name, FullName, confidentiality,
                         AuthorisedUsers FROM %s WHERE Name = %%s''' % (dataset_table)
-
+    logger.sql(query)
     result = g.db.execute(query, ob.name)
 
     (dataset_id,
diff --git a/wqflask/db/call.py b/wqflask/db/call.py
index 4cea7e66..194a7650 100644
--- a/wqflask/db/call.py
+++ b/wqflask/db/call.py
@@ -11,7 +11,7 @@ from utility.benchmark import Bench
 from utility.logger import getLogger
 logger = getLogger(__name__ )
 
-from inspect import stack
+# from inspect import stack
 
 def fetch1(query, path=None, func=None):
     """Fetch one result using either a SQL query or the URI path to
@@ -37,8 +37,7 @@ original fetchone, but with logging)
         def helper(query):
             res = g.db.execute(query)
             return res.fetchone()
-        callername = stack()[2][3]
-        return logger.sql(callername, query, helper)
+        return logger.sql(query, helper)
 
 def fetchall(query):
     """Return row iterator by calling SQL directly (the
@@ -49,8 +48,7 @@ original fetchall, but with logging)
         def helper(query):
             res = g.db.execute(query)
             return res.fetchall()
-        callername = stack()[2][3]
-        return logger.sql(callername, query, helper)
+        return logger.sql(query, helper)
 
 def gn_server(path):
     """Return JSON record by calling GN_SERVER
diff --git a/wqflask/utility/logger.py b/wqflask/utility/logger.py
index ff53977e..c62ea2fe 100644
--- a/wqflask/utility/logger.py
+++ b/wqflask/utility/logger.py
@@ -77,10 +77,10 @@ class GNLogger:
         if self.logger.getEffectiveLevel() < 20:
             self.collectf(self.logger.debug,*args)
 
-    def sql(self, description, sqlcommand, fun = None):
+    def sql(self, sqlcommand, fun = None):
         """Log SQL command, optionally invoking a timed fun"""
         if LOG_SQL:
-            self.info(description,sqlcommand)
+            self.info(stack()[1][3],sqlcommand)
         if fun:
             result = fun(sqlcommand)
             if LOG_SQL: