perf scripts python: export-to-postgresql.py: Fix invalid input syntax for integer...
authorAdrian Hunter <adrian.hunter@intel.com>
Thu, 28 Feb 2019 13:00:26 +0000 (15:00 +0200)
committerArnaldo Carvalho de Melo <acme@redhat.com>
Fri, 1 Mar 2019 17:53:12 +0000 (14:53 -0300)
Fix SQL query error "invalid input syntax for integer":

  Traceback (most recent call last):
    File "tools/perf/scripts/python/export-to-postgresql.py", line 465, in <module>
      do_query(query, 'CREATE VIEW calls_view AS '
    File "tools/perf/scripts/python/export-to-postgresql.py", line 274, in do_query
      raise Exception("Query failed: " + q.lastError().text())
  Exception: Query failed: ERROR:  invalid input syntax for integer: ""
  LINE 1: ...ch_count,call_id,return_id,CASE WHEN flags=0 THEN '' WHEN fl...
                                                               ^
  (22P02) QPSQL: Unable to create query
  Error running python script tools/perf/scripts/python/export-to-postgresql.py

Signed-off-by: Adrian Hunter <adrian.hunter@intel.com>
Cc: Jiri Olsa <jolsa@redhat.com>
Fixes: f08046cb3082 ("perf thread-stack: Represent jmps to the start of a different symbol")
Link: https://lkml.kernel.org/n/tip-strfpdozrvg7bi1xzrivxzqt@git.kernel.org
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
tools/perf/scripts/python/export-to-postgresql.py

index 30130213da7eade424fd8b28eea05fb66a33438f..6358522a69f612c7740ab79918c11633f1606819 100644 (file)
@@ -478,7 +478,7 @@ if perf_db_export_calls:
                        'branch_count,'
                        'call_id,'
                        'return_id,'
-                       'CASE WHEN flags=0 THEN \'\' WHEN flags=1 THEN \'no call\' WHEN flags=2 THEN \'no return\' WHEN flags=3 THEN \'no call/return\' WHEN flags=6 THEN \'jump\' ELSE flags END AS flags,'
+                       'CASE WHEN flags=0 THEN \'\' WHEN flags=1 THEN \'no call\' WHEN flags=2 THEN \'no return\' WHEN flags=3 THEN \'no call/return\' WHEN flags=6 THEN \'jump\' ELSE CAST ( flags AS VARCHAR(6) ) END AS flags,'
                        'parent_call_path_id'
                ' FROM calls INNER JOIN call_paths ON call_paths.id = call_path_id')