perf scripts python: exported-sql-viewer.py: Fix use of TRUE with SQLite
authorAdrian Hunter <adrian.hunter@intel.com>
Wed, 13 Nov 2019 12:02:06 +0000 (14:02 +0200)
committerArnaldo Carvalho de Melo <acme@redhat.com>
Wed, 13 Nov 2019 12:13:16 +0000 (09:13 -0300)
Prior to version 3.23 SQLite does not support TRUE or FALSE, so always
use 1 and 0 for SQLite.

Fixes: 26c11206f433 ("perf scripts python: exported-sql-viewer.py: Use new 'has_calls' column")
Signed-off-by: Adrian Hunter <adrian.hunter@intel.com>
Cc: Jiri Olsa <jolsa@redhat.com>
Cc: stable@vger.kernel.org # v5.3+
Link: http://lore.kernel.org/lkml/20191113120206.26957-1-adrian.hunter@intel.com
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
tools/perf/scripts/python/exported-sql-viewer.py

index ebc6a2e..26d7be7 100755 (executable)
@@ -637,7 +637,7 @@ class CallGraphRootItem(CallGraphLevelItemBase):
                self.query_done = True
                if_has_calls = ""
                if IsSelectable(glb.db, "comms", columns = "has_calls"):
-                       if_has_calls = " WHERE has_calls = TRUE"
+                       if_has_calls = " WHERE has_calls = " + glb.dbref.TRUE
                query = QSqlQuery(glb.db)
                QueryExec(query, "SELECT id, comm FROM comms" + if_has_calls)
                while query.next():
@@ -918,7 +918,7 @@ class CallTreeRootItem(CallGraphLevelItemBase):
                self.query_done = True
                if_has_calls = ""
                if IsSelectable(glb.db, "comms", columns = "has_calls"):
-                       if_has_calls = " WHERE has_calls = TRUE"
+                       if_has_calls = " WHERE has_calls = " + glb.dbref.TRUE
                query = QSqlQuery(glb.db)
                QueryExec(query, "SELECT id, comm FROM comms" + if_has_calls)
                while query.next():
@@ -1290,7 +1290,7 @@ class SwitchGraphData(GraphData):
                QueryExec(query, "SELECT id, c_time"
                                        " FROM comms"
                                        " WHERE c_thread_id = " + str(thread_id) +
-                                       "   AND exec_flag = TRUE"
+                                       "   AND exec_flag = " + self.collection.glb.dbref.TRUE +
                                        "   AND c_time >= " + str(start_time) +
                                        "   AND c_time <= " + str(end_time) +
                                        " ORDER BY c_time, id")
@@ -5016,6 +5016,12 @@ class DBRef():
        def __init__(self, is_sqlite3, dbname):
                self.is_sqlite3 = is_sqlite3
                self.dbname = dbname
+               self.TRUE = "TRUE"
+               self.FALSE = "FALSE"
+               # SQLite prior to version 3.23 does not support TRUE and FALSE
+               if self.is_sqlite3:
+                       self.TRUE = "1"
+                       self.FALSE = "0"
 
        def Open(self, connection_name):
                dbname = self.dbname