diff options
Diffstat (limited to 'tools/perf/scripts/python/export-to-postgresql.py')
| -rw-r--r-- | tools/perf/scripts/python/export-to-postgresql.py | 43 |
1 files changed, 34 insertions, 9 deletions
diff --git a/tools/perf/scripts/python/export-to-postgresql.py b/tools/perf/scripts/python/export-to-postgresql.py index c3eae1d77d36..b2f481b0d28d 100644 --- a/tools/perf/scripts/python/export-to-postgresql.py +++ b/tools/perf/scripts/python/export-to-postgresql.py | |||
| @@ -27,18 +27,31 @@ import datetime | |||
| 27 | # | 27 | # |
| 28 | # fedora: | 28 | # fedora: |
| 29 | # | 29 | # |
| 30 | # $ sudo yum install postgresql postgresql-server python-pyside qt-postgresql | 30 | # $ sudo yum install postgresql postgresql-server qt-postgresql |
| 31 | # $ sudo su - postgres -c initdb | 31 | # $ sudo su - postgres -c initdb |
| 32 | # $ sudo service postgresql start | 32 | # $ sudo service postgresql start |
| 33 | # $ sudo su - postgres | 33 | # $ sudo su - postgres |
| 34 | # $ createuser <your user id here> | 34 | # $ createuser -s <your user id here> # Older versions may not support -s, in which case answer the prompt below: |
| 35 | # Shall the new role be a superuser? (y/n) y | 35 | # Shall the new role be a superuser? (y/n) y |
| 36 | # $ sudo yum install python-pyside | ||
| 37 | # | ||
| 38 | # Alternately, to use Python3 and/or pyside 2, one of the following: | ||
| 39 | # $ sudo yum install python3-pyside | ||
| 40 | # $ pip install --user PySide2 | ||
| 41 | # $ pip3 install --user PySide2 | ||
| 36 | # | 42 | # |
| 37 | # ubuntu: | 43 | # ubuntu: |
| 38 | # | 44 | # |
| 39 | # $ sudo apt-get install postgresql python-pyside.qtsql libqt4-sql-psql | 45 | # $ sudo apt-get install postgresql |
| 40 | # $ sudo su - postgres | 46 | # $ sudo su - postgres |
| 41 | # $ createuser -s <your user id here> | 47 | # $ createuser -s <your user id here> |
| 48 | # $ sudo apt-get install python-pyside.qtsql libqt4-sql-psql | ||
| 49 | # | ||
| 50 | # Alternately, to use Python3 and/or pyside 2, one of the following: | ||
| 51 | # | ||
| 52 | # $ sudo apt-get install python3-pyside.qtsql libqt4-sql-psql | ||
| 53 | # $ sudo apt-get install python-pyside2.qtsql libqt5sql5-psql | ||
| 54 | # $ sudo apt-get install python3-pyside2.qtsql libqt5sql5-psql | ||
| 42 | # | 55 | # |
| 43 | # An example of using this script with Intel PT: | 56 | # An example of using this script with Intel PT: |
| 44 | # | 57 | # |
| @@ -199,7 +212,16 @@ import datetime | |||
| 199 | # print "{0:>6} {1:>10} {2:>9} {3:<30} {4:>6} {5:<30}".format(query.value(0), query.value(1), query.value(2), query.value(3), query.value(4), query.value(5)) | 212 | # print "{0:>6} {1:>10} {2:>9} {3:<30} {4:>6} {5:<30}".format(query.value(0), query.value(1), query.value(2), query.value(3), query.value(4), query.value(5)) |
| 200 | # call_path_id = query.value(6) | 213 | # call_path_id = query.value(6) |
| 201 | 214 | ||
| 202 | from PySide.QtSql import * | 215 | pyside_version_1 = True |
| 216 | if not "pyside-version-1" in sys.argv: | ||
| 217 | try: | ||
| 218 | from PySide2.QtSql import * | ||
| 219 | pyside_version_1 = False | ||
| 220 | except: | ||
| 221 | pass | ||
| 222 | |||
| 223 | if pyside_version_1: | ||
| 224 | from PySide.QtSql import * | ||
| 203 | 225 | ||
| 204 | if sys.version_info < (3, 0): | 226 | if sys.version_info < (3, 0): |
| 205 | def toserverstr(str): | 227 | def toserverstr(str): |
| @@ -255,11 +277,12 @@ def printdate(*args, **kw_args): | |||
| 255 | print(datetime.datetime.today(), *args, sep=' ', **kw_args) | 277 | print(datetime.datetime.today(), *args, sep=' ', **kw_args) |
| 256 | 278 | ||
| 257 | def usage(): | 279 | def usage(): |
| 258 | printerr("Usage is: export-to-postgresql.py <database name> [<columns>] [<calls>] [<callchains>]") | 280 | printerr("Usage is: export-to-postgresql.py <database name> [<columns>] [<calls>] [<callchains>] [<pyside-version-1>]"); |
| 259 | printerr("where: columns 'all' or 'branches'") | 281 | printerr("where: columns 'all' or 'branches'"); |
| 260 | printerr(" calls 'calls' => create calls and call_paths table") | 282 | printerr(" calls 'calls' => create calls and call_paths table"); |
| 261 | printerr(" callchains 'callchains' => create call_paths table") | 283 | printerr(" callchains 'callchains' => create call_paths table"); |
| 262 | raise Exception("Too few arguments") | 284 | printerr(" pyside-version-1 'pyside-version-1' => use pyside version 1"); |
| 285 | raise Exception("Too few or bad arguments") | ||
| 263 | 286 | ||
| 264 | if (len(sys.argv) < 2): | 287 | if (len(sys.argv) < 2): |
| 265 | usage() | 288 | usage() |
| @@ -281,6 +304,8 @@ for i in range(3,len(sys.argv)): | |||
| 281 | perf_db_export_calls = True | 304 | perf_db_export_calls = True |
| 282 | elif (sys.argv[i] == "callchains"): | 305 | elif (sys.argv[i] == "callchains"): |
| 283 | perf_db_export_callchains = True | 306 | perf_db_export_callchains = True |
| 307 | elif (sys.argv[i] == "pyside-version-1"): | ||
| 308 | pass | ||
| 284 | else: | 309 | else: |
| 285 | usage() | 310 | usage() |
| 286 | 311 | ||
