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)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Fri, 13 Dec 2019 07:42:16 +0000 (08:42 +0100)
commit af833988c088d3fed3e7188e7c3dd9ca17178dc3 upstream.

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>
[Adrian: backported to v5.3, v5.4]
Signed-off-by: Adrian Hunter <adrian.hunter@intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
tools/perf/scripts/python/exported-sql-viewer.py

index 61b3911..4b28c9d 100755 (executable)
@@ -625,7 +625,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():
@@ -905,7 +905,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():
@@ -3509,6 +3509,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