perf scripts python: exported-sql-viewer.py: Fix use of TRUE with SQLite

Prior to version 3.23 SQLite does not support TRUE or FALSE, so always
use 1 and 0 for SQLite.

Fixes: 26c11206f4 ("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>
This commit is contained in:
Adrian Hunter 2019-11-13 14:02:06 +02:00 committed by Arnaldo Carvalho de Melo
parent da3ef7f6cd
commit af833988c0

View File

@ -637,7 +637,7 @@ class CallGraphRootItem(CallGraphLevelItemBase):
self.query_done = True self.query_done = True
if_has_calls = "" if_has_calls = ""
if IsSelectable(glb.db, "comms", columns = "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) query = QSqlQuery(glb.db)
QueryExec(query, "SELECT id, comm FROM comms" + if_has_calls) QueryExec(query, "SELECT id, comm FROM comms" + if_has_calls)
while query.next(): while query.next():
@ -918,7 +918,7 @@ class CallTreeRootItem(CallGraphLevelItemBase):
self.query_done = True self.query_done = True
if_has_calls = "" if_has_calls = ""
if IsSelectable(glb.db, "comms", columns = "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) query = QSqlQuery(glb.db)
QueryExec(query, "SELECT id, comm FROM comms" + if_has_calls) QueryExec(query, "SELECT id, comm FROM comms" + if_has_calls)
while query.next(): while query.next():
@ -1290,7 +1290,7 @@ class SwitchGraphData(GraphData):
QueryExec(query, "SELECT id, c_time" QueryExec(query, "SELECT id, c_time"
" FROM comms" " FROM comms"
" WHERE c_thread_id = " + str(thread_id) + " 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(start_time) +
" AND c_time <= " + str(end_time) + " AND c_time <= " + str(end_time) +
" ORDER BY c_time, id") " ORDER BY c_time, id")
@ -5016,6 +5016,12 @@ class DBRef():
def __init__(self, is_sqlite3, dbname): def __init__(self, is_sqlite3, dbname):
self.is_sqlite3 = is_sqlite3 self.is_sqlite3 = is_sqlite3
self.dbname = dbname 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): def Open(self, connection_name):
dbname = self.dbname dbname = self.dbname