Back to home page

OSCL-LXR

 
 

    


0001 Database Export
0002 ===============
0003 
0004 perf tool's python scripting engine:
0005 
0006         tools/perf/util/scripting-engines/trace-event-python.c
0007 
0008 supports scripts:
0009 
0010         tools/perf/scripts/python/export-to-sqlite.py
0011         tools/perf/scripts/python/export-to-postgresql.py
0012 
0013 which export data to a SQLite3 or PostgreSQL database.
0014 
0015 The export process provides records with unique sequential ids which allows the
0016 data to be imported directly to a database and provides the relationships
0017 between tables.
0018 
0019 Over time it is possible to continue to expand the export while maintaining
0020 backward and forward compatibility, by following some simple rules:
0021 
0022 1. Because of the nature of SQL, existing tables and columns can continue to be
0023 used so long as the names and meanings (and to some extent data types) remain
0024 the same.
0025 
0026 2. New tables and columns can be added, without affecting existing SQL queries,
0027 so long as the new names are unique.
0028 
0029 3. Scripts that use a database (e.g. exported-sql-viewer.py) can maintain
0030 backward compatibility by testing for the presence of new tables and columns
0031 before using them. e.g. function IsSelectable() in exported-sql-viewer.py
0032 
0033 4. The export scripts themselves maintain forward compatibility (i.e. an existing
0034 script will continue to work with new versions of perf) by accepting a variable
0035 number of arguments (e.g. def call_return_table(*x)) i.e. perf can pass more
0036 arguments which old scripts will ignore.
0037 
0038 5. The scripting engine tests for the existence of script handler functions
0039 before calling them.  The scripting engine can also test for the support of new
0040 or optional features by checking for the existence and value of script global
0041 variables.