• Michael Widenius's avatar
    Added progress reporting for alter table, LOAD DATA INFILE and for aria... · 3c78bfe7
    Michael Widenius authored
    Added progress reporting for alter table, LOAD DATA INFILE and for aria tables: check table, repair table, analyze table.
    - The client gets a progress report message that triggers a callback function if requested with mysql_options(MYSQL_PROGRESS_CALLBACK, function)
    - Added Progress field last to 'show processlist'
    - Stage, Max_stage and Progress field added to information_schema.progresslist
    - The 'mysql' client by defaults enables progress reports when the output is a tty.
    - Added progress_report_time time variable to configure how often progress reports is sent to client
    Added read only system variable 'in_transaction' which is 1 if we have executed a BEGIN statement.
    
    
    client/client_priv.h:
      Added OPT_REPORT_PROGRESS
    client/mysql.cc:
      Added option --progress-reports (on by default if not batch mode)
      Progress reports is written to stdout for long running commands
    include/Makefile.am:
      Added mysql/service_progress_report.h
    include/myisamchk.h:
      Added variables to be able to do progress reporting in Aria and later in MyISAM
    include/mysql.h:
      Added new mysql_options() parameter: MYSQL_PROGRESS_CALLBACK
    include/mysql.h.pp:
      Added new mysql_options() parameter: MYSQL_PROGRESS_CALLBACK
    include/mysql/plugin.h:
      Added functions for reporting progress.
    include/mysql/plugin_auth.h.pp:
      Added functions for reporting progress.
    include/mysql_com.h:
      Added CLIENT_PROGRESS mysql_real_connect() flag.
    include/sql_common.h:
      Added callback function for reporting progress
    mysql-test/r/old-mode.result:
      Ensure that SHOW PROGRESSLIST doesn't have the Progress column in old mode.
    mysql-test/suite/funcs_1/datadict/datadict_priv.inc:
      Added new column
    mysql-test/suite/funcs_1/datadict/processlist_priv.inc:
      Test all new PROCESSLIST columns
    mysql-test/suite/funcs_1/r/is_columns_is.result:
      Updated results
    mysql-test/suite/funcs_1/r/is_columns_is_embedded.result:
      Updated results
    mysql-test/suite/funcs_1/r/is_columns_mysql_embedded.result:
      Updated results
    mysql-test/suite/funcs_1/r/is_tables_is_embedded.result:
      Updated results
    mysql-test/suite/funcs_1/r/processlist_priv_no_prot.result:
      Updated results
    mysql-test/suite/funcs_1/r/processlist_priv_ps.result:
      Updated results
    mysql-test/suite/funcs_1/r/processlist_val_no_prot.result:
      Updated results
    mysql-test/suite/funcs_1/r/processlist_val_ps.result:
      Updated results
    mysql-test/suite/pbxt/r/pbxt_locking.result:
      Updated results
    mysql-test/suite/pbxt/r/skip_name_resolve.result:
      Updated results
    mysql-test/t/old-mode.test:
      Ensure that SHOW PROGRESSLIST doesn't have the Progress column in old mode.
    plugin/handler_socket/handlersocket/Makefile.am:
      Added -lmysqlservices
    scripts/mytop.sh:
      Made 'State' field width dynamic.
      Added 'Progress' to process list display.
    sql-common/client.c:
      Added handling of progress messages.
      Removed check_license() function.
    sql/mysql_priv.h:
      Added opt_progress_report_time
    sql/mysqld.cc:
      Added progress_report_time time variable to configure how often progress reports is sent to client
    sql/protocol.cc:
      Added net_send_progress_packet()
    sql/protocol.h:
      New prototypes
    sql/set_var.cc:
      Added variables progress_report_time and in_transaction
    sql/sql_acl.cc:
      Safety fix: Made client_capabilities ulonglong
    sql/sql_class.cc:
      Added interface functions for progress reporting
    sql/sql_class.h:
      Added varibles in THD for progress reporting.
      Added CF_REPORT_PROGRESS
    sql/sql_load.cc:
      Added progress reporting for LOAD DATA INFILE
    sql/sql_parse.cc:
      Added CF_REPORT_PROGRESS for top level commands for which it's safe to send progress reports to client
    sql/sql_show.cc:
      Added Progress field last to 'show processlist'
      Stage, Max_stage and Progress field added to information_schema.progresslist
    sql/sql_table.cc:
      Added progress reporting for ALTER TABLE
      Added THD as argument to copy_data_between_tables()
    storage/maria/ha_maria.cc:
      Added progress reporting for check table, repair table, analyze table
      Fixed a bug in start_bulk_insert() that caused alter table to always run with all keys enabled.
    storage/maria/ma_check.c:
      Added progress reporting
      Remember old state before starting repair. This removes some warnings from optimize_table if create-with-sort fails.
    storage/maria/ma_check_standalone.h:
      Added dummy reporting function for standalone Aria programs.
    storage/maria/ma_sort.c:
      Added progress reporting
    storage/maria/maria_chk.c:
      Updated version
    storage/maria/maria_def.h:
      Added new prototypes
    tests/mysql_client_test.c:
      Added test case for progress reporting
    3c78bfe7
sql_plugin_services.h 1.57 KB