Documentation Home
MySQL Shell 8.0
Related Documentation Download this Manual
PDF (US Ltr) - 463.0Kb
PDF (A4) - 459.6Kb
HTML Download (TGZ) - 92.4Kb
HTML Download (Zip) - 103.9Kb


MySQL Shell 8.0  /  ...  /  Example MySQL Shell Report

6.1.4 Example MySQL Shell Report

This example user-defined report sessions shows which sessions currently exist.

    def sessions(session, args, options):
        sys = session.get_schema('sys')
        session_view = sys.get_table('session')
        query = session_view.select(
            'thd_id', 'conn_id', 'user', 'db', 'current_statement',
            'statement_latency AS latency', 'current_memory AS memory')
        try:
            limit = int(options['limit'])
        except SystemError:
            limit = 0
        if limit > 0:
            query.limit(limit)

        result = query.execute()
        report = [result.get_column_names()]
        for row in result.fetch_all():
            report.append(list(row))

        return {'report': report}

    shell.register_report(
        'sessions',
        'list',
        sessions,
        {
            'brief': 'Shows which sessions exist.',
            'details': ['You need the SELECT privilege on sys.session view and the underlying tables and functions used by it.'],
            'options': [
                {
                    'name': 'limit',
                    'brief': 'The maximum number of rows to return.',
                    'shortcut': 'l',
                    'type': 'integer'
                }
            ],
            'argc': '0'
        }
    )