| From b4112ee6fa662316b52395ed154a657582dc6b23 Mon Sep 17 00:00:00 2001 |
| From: Sasha Levin <sashal@kernel.org> |
| Date: Mon, 12 May 2025 12:39:32 +0300 |
| Subject: perf scripts python: exported-sql-viewer.py: Fix pattern matching |
| with Python 3 |
| |
| From: Adrian Hunter <adrian.hunter@intel.com> |
| |
| [ Upstream commit 17e548405a81665fd14cee960db7d093d1396400 ] |
| |
| The script allows the user to enter patterns to find symbols. |
| |
| The pattern matching characters are converted for use in SQL. |
| |
| For PostgreSQL the conversion involves using the Python maketrans() |
| method which is slightly different in Python 3 compared with Python 2. |
| |
| Fix to work in Python 3. |
| |
| Fixes: beda0e725e5f06ac ("perf script python: Add Python3 support to exported-sql-viewer.py") |
| Signed-off-by: Adrian Hunter <adrian.hunter@intel.com> |
| Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com> |
| Cc: Ian Rogers <irogers@google.com> |
| Cc: Jiri Olsa <jolsa@kernel.org> |
| Cc: Kan Liang <kan.liang@linux.intel.com> |
| Cc: Namhyung Kim <namhyung@kernel.org> |
| Cc: Tony Jones <tonyj@suse.de> |
| Link: https://lore.kernel.org/r/20250512093932.79854-4-adrian.hunter@intel.com |
| Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com> |
| Signed-off-by: Sasha Levin <sashal@kernel.org> |
| --- |
| tools/perf/scripts/python/exported-sql-viewer.py | 5 ++++- |
| 1 file changed, 4 insertions(+), 1 deletion(-) |
| |
| diff --git a/tools/perf/scripts/python/exported-sql-viewer.py b/tools/perf/scripts/python/exported-sql-viewer.py |
| index 01acf3ea7619d..21473d6df5b9a 100755 |
| --- a/tools/perf/scripts/python/exported-sql-viewer.py |
| +++ b/tools/perf/scripts/python/exported-sql-viewer.py |
| @@ -667,7 +667,10 @@ class CallGraphModelBase(TreeModel): |
| s = value.replace("%", "\%") |
| s = s.replace("_", "\_") |
| # Translate * and ? into SQL LIKE pattern characters % and _ |
| - trans = string.maketrans("*?", "%_") |
| + if sys.version_info[0] == 3: |
| + trans = str.maketrans("*?", "%_") |
| + else: |
| + trans = string.maketrans("*?", "%_") |
| match = " LIKE '" + str(s).translate(trans) + "'" |
| else: |
| match = " GLOB '" + str(value) + "'" |
| -- |
| 2.39.5 |
| |