Changeset 19100


Ignore:
Timestamp:
07/30/18 23:01:03 (6 years ago)
Author:
tbretz
Message:
Warnings are displayed if they happen.
File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/FACT++/src/rootifysql.cc

    r19096 r19100  
    3838        ("no-fill",       po_switch(),                 "Do not fill events into the root file (mainly for debugging purposes, e.g. performance studies)")
    3939        ("delimiter",     var<string>(""),             "The delimiter used if contents are displayed with --display (default=\\t)")
    40         ("explain",       po_switch(),                 "Requests an EXPLAIN from the server (shows the serveroptimized query)")
     40        ("explain",       po_switch(),                 "Requests an EXPLAIN from the server (shows the server optimized query)\nsee also https://dev.mysql.com/doc/refman/explain-output.html")
    4141        ("profiling",     po_switch(),                 "Turn on profiling and print profile")
    4242        ("var.*",         var<string>(),               "Predefined SQL user variables (@VAR)")
     
    391391
    392392    if (verbose>0)
    393         cout << "\n--------------------- Rootify SQL ----------------------" << endl;
     393        cout << "\n------------------------ Rootify SQL -------------------------" << endl;
    394394
    395395    string query  = conf.Get<string>("query");
     
    800800        cout << "File closed.\n";
    801801        cout << "Execution time: " << Time().UnixTime()-start.UnixTime() << "s\n";
    802         cout << "--------------------------------------------------------" << endl;
     802        cout << "--------------------------------------------------------------" << endl;
     803
     804        try
     805        {
     806            const auto resw =
     807                connection.query("SHOW WARNINGS").store();
     808
     809            if (resw.num_rows()>0)
     810                cout << "\nWARNINGS:\n\n";
     811
     812            for (size_t i=0; i<resw.num_rows(); i++)
     813            {
     814                const mysqlpp::Row &roww = resw[i];
     815
     816                cout << roww["Level"] << '[' << roww["Code"] << "]: ";
     817                cout << roww["Message"] << '\n' << endl;
     818            }
     819
     820        }
     821        catch (const exception &e)
     822        {
     823            cerr << "\nSHOW WARNINGS\n\n";
     824            cerr << "SQL query failed:\n" << e.what() << endl;
     825            return 6;
     826        }
    803827    }
    804828
     
    807831        try
    808832        {
     833            const auto N =
     834                connection.query("SHOW PROFILES").store().num_rows();
     835
    809836            const auto resp =
    810                 connection.query("SHOW PROFILE ALL").store();
     837                connection.query("SHOW PROFILE ALL FOR QUERY "+to_string(verbose?N-1:N)).store();
    811838
    812839            cout << '\n';
    813840            cout << left;
    814             cout << setw(20) << "Status"     << ' ';
     841            cout << setw(26) << "Status"     << ' ';
    815842            cout << right;
    816843            cout << setw(11) << "Duration"   << ' ';
    817844            cout << setw(11) << "CPU User"   << ' ';
    818845            cout << setw(11) << "CPU System" << '\n';
    819             cout << "--------------------------------------------------------\n";
     846            cout << "--------------------------------------------------------------\n";
    820847            for (size_t i=0; i<resp.num_rows(); i++)
    821848            {
     
    823850
    824851                cout << left;
    825                 cout << setw(20) << rowp["Status"] << ' ';
     852                cout << setw(26) << rowp["Status"] << ' ';
    826853                cout << right;
    827854                cout << setw(11) << rowp["Duration"] << ' ';
     
    829856                cout << setw(11) << rowp["CPU_system"] << '\n';
    830857            }
    831             cout << "--------------------------------------------------------\n";
     858            cout << "--------------------------------------------------------------\n";
    832859            cout << endl;
    833860        }
Note: See TracChangeset for help on using the changeset viewer.