Commit 3b9423fd authored by Daniel Black's avatar Daniel Black Committed by Vicențiu Ciorbaru

MDEV-7384: Add --persistent option for mysqlcheck

10.0 has an "analyze table .. persistent for all" syntax. This adds
--persistent to mysqlcheck(mysqlanalyize) to perform this extended
analyze table option.
Signed-off-by: default avatarVicențiu Ciorbaru <vicentiu@mariadb.org>
parent 5efb8f16
...@@ -43,7 +43,7 @@ static my_bool opt_alldbs = 0, opt_check_only_changed = 0, opt_extended = 0, ...@@ -43,7 +43,7 @@ static my_bool opt_alldbs = 0, opt_check_only_changed = 0, opt_extended = 0,
opt_silent = 0, opt_auto_repair = 0, ignore_errors = 0, opt_silent = 0, opt_auto_repair = 0, ignore_errors = 0,
tty_password= 0, opt_frm= 0, debug_info_flag= 0, debug_check_flag= 0, tty_password= 0, opt_frm= 0, debug_info_flag= 0, debug_check_flag= 0,
opt_fix_table_names= 0, opt_fix_db_names= 0, opt_upgrade= 0, opt_fix_table_names= 0, opt_fix_db_names= 0, opt_upgrade= 0,
opt_do_tables= 1; opt_persistent_all= 0, opt_do_tables= 1;
static my_bool opt_write_binlog= 1, opt_flush_tables= 0; static my_bool opt_write_binlog= 1, opt_flush_tables= 0;
static uint verbose = 0, opt_mysql_port=0; static uint verbose = 0, opt_mysql_port=0;
static int my_end_arg; static int my_end_arg;
...@@ -160,6 +160,10 @@ static struct my_option my_long_options[] = ...@@ -160,6 +160,10 @@ static struct my_option my_long_options[] =
{"password", 'p', {"password", 'p',
"Password to use when connecting to server. If password is not given, it's solicited on the tty.", "Password to use when connecting to server. If password is not given, it's solicited on the tty.",
0, 0, 0, GET_STR, OPT_ARG, 0, 0, 0, 0, 0, 0}, 0, 0, 0, GET_STR, OPT_ARG, 0, 0, 0, 0, 0, 0},
{"persistent", 'Z',
"When using ANALYZE TABLE use the PERSISTENT FOR ALL option.",
&opt_persistent_all, &opt_persistent_all, 0, GET_BOOL, NO_ARG,
0, 0, 0, 0, 0, 0},
#ifdef __WIN__ #ifdef __WIN__
{"pipe", 'W', "Use named pipes to connect to server.", 0, 0, 0, GET_NO_ARG, {"pipe", 'W', "Use named pipes to connect to server.", 0, 0, 0, GET_NO_ARG,
NO_ARG, 0, 0, 0, 0, 0, 0}, NO_ARG, 0, 0, 0, 0, 0, 0},
...@@ -909,6 +913,7 @@ static int handle_request_for_tables(char *tables, size_t length, my_bool view) ...@@ -909,6 +913,7 @@ static int handle_request_for_tables(char *tables, size_t length, my_bool view)
case DO_ANALYZE: case DO_ANALYZE:
DBUG_ASSERT(!view); DBUG_ASSERT(!view);
op= (opt_write_binlog) ? "ANALYZE" : "ANALYZE NO_WRITE_TO_BINLOG"; op= (opt_write_binlog) ? "ANALYZE" : "ANALYZE NO_WRITE_TO_BINLOG";
if (opt_persistent_all) end = strmov(end, " PERSISTENT FOR ALL");
break; break;
case DO_OPTIMIZE: case DO_OPTIMIZE:
DBUG_ASSERT(!view); DBUG_ASSERT(!view);
......
'\" t '\" t
.\" .\"
.TH "\FBMYSQLCHECK\FR" "1" "04/08/2015" "MariaDB 10\&.0" "MariaDB Database System" .TH "\FBMYSQLCHECK\FR" "1" "27/12/2015" "MariaDB 10\&.0" "MariaDB Database System"
.\" ----------------------------------------------------------------- .\" -----------------------------------------------------------------
.\" * set default formatting .\" * set default formatting
.\" ----------------------------------------------------------------- .\" -----------------------------------------------------------------
...@@ -677,6 +677,22 @@ Specifying a password on the command line should be considered insecure\&. You c ...@@ -677,6 +677,22 @@ Specifying a password on the command line should be considered insecure\&. You c
.sp -1 .sp -1
.IP \(bu 2.3 .IP \(bu 2.3
.\} .\}
.\" mysqlcheck: persisent option
.\" persistent option: mysql
\fB\-\-persistent\fR,
\fB\-Z\fR
.sp
Used with ANALYZE TABLE to append the option PERSISENT FOR ALL.
.RE
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
.\" mysqlcheck: pipe option .\" mysqlcheck: pipe option
.\" pipe option: mysql .\" pipe option: mysql
\fB\-\-pipe\fR, \fB\-\-pipe\fR,
......
...@@ -347,6 +347,9 @@ CREATE TABLE test.`t.1` (id int); ...@@ -347,6 +347,9 @@ CREATE TABLE test.`t.1` (id int);
mysqlcheck test t.1 mysqlcheck test t.1
test.t.1 OK test.t.1 OK
drop table test.`t.1`; drop table test.`t.1`;
#
# MDEV-8123 mysqlcheck: new --process-views option conflicts with --quick, --extended and such
#
create view v1 as select 1; create view v1 as select 1;
mysqlcheck --process-views test mysqlcheck --process-views test
test.v1 OK test.v1 OK
...@@ -361,6 +364,9 @@ test.v1 OK ...@@ -361,6 +364,9 @@ test.v1 OK
mysqlcheck --process-views --check-upgrade test mysqlcheck --process-views --check-upgrade test
test.v1 OK test.v1 OK
drop view v1; drop view v1;
#
# MDEV-8124 mysqlcheck: --auto-repair runs REPAIR TABLE instead of REPAIR VIEW on views
#
create table t1(a int); create table t1(a int);
mysqlcheck --process-views --check-upgrade --auto-repair test mysqlcheck --process-views --check-upgrade --auto-repair test
test.t1 OK test.t1 OK
...@@ -370,3 +376,16 @@ Repairing views ...@@ -370,3 +376,16 @@ Repairing views
test.v1 OK test.v1 OK
drop view v1; drop view v1;
drop table t1; drop table t1;
#
#MDEV-7384 [PATCH] add PERSISENT FOR ALL option to mysqlanalyze/mysqlcheck
#
create table t1(a int);
insert into t1 (a) values (1), (2), (3);
select * from mysql.column_stats;
db_name table_name column_name min_value max_value nulls_ratio avg_length avg_frequency hist_size hist_type histogram
test.t1 Engine-independent statistics collected
status : OK
select * from mysql.column_stats where db_name = 'test' and table_name = 't1';
db_name table_name column_name min_value max_value nulls_ratio avg_length avg_frequency hist_size hist_type histogram
test t1 a 1 3 0.0000 4.0000 1.0000 0 NULL NULL
drop table t1;
...@@ -319,9 +319,9 @@ CREATE TABLE test.`t.1` (id int); ...@@ -319,9 +319,9 @@ CREATE TABLE test.`t.1` (id int);
drop table test.`t.1`; drop table test.`t.1`;
# --echo #
# MDEV-8123 mysqlcheck: new --process-views option conflicts with --quick, --extended and such --echo # MDEV-8123 mysqlcheck: new --process-views option conflicts with --quick, --extended and such
# --echo #
create view v1 as select 1; create view v1 as select 1;
--echo mysqlcheck --process-views test --echo mysqlcheck --process-views test
--exec $MYSQL_CHECK --process-views test --exec $MYSQL_CHECK --process-views test
...@@ -340,12 +340,22 @@ create view v1 as select 1; ...@@ -340,12 +340,22 @@ create view v1 as select 1;
drop view v1; drop view v1;
# --echo #
# MDEV-8124 mysqlcheck: --auto-repair runs REPAIR TABLE instead of REPAIR VIEW on views --echo # MDEV-8124 mysqlcheck: --auto-repair runs REPAIR TABLE instead of REPAIR VIEW on views
# --echo #
create table t1(a int); create table t1(a int);
--copy_file $MYSQL_TEST_DIR/std_data/mysql_upgrade/v1.frm $MYSQLD_DATADIR/test/v1.frm --copy_file $MYSQL_TEST_DIR/std_data/mysql_upgrade/v1.frm $MYSQLD_DATADIR/test/v1.frm
--echo mysqlcheck --process-views --check-upgrade --auto-repair test --echo mysqlcheck --process-views --check-upgrade --auto-repair test
--exec $MYSQL_CHECK --process-views --check-upgrade --auto-repair test --exec $MYSQL_CHECK --process-views --check-upgrade --auto-repair test
drop view v1; drop view v1;
drop table t1; drop table t1;
--echo #
--echo #MDEV-7384 [PATCH] add PERSISENT FOR ALL option to mysqlanalyze/mysqlcheck
--echo #
create table t1(a int);
insert into t1 (a) values (1), (2), (3);
select * from mysql.column_stats;
--exec $MYSQL_CHECK --analyze test t1 --persistent
select * from mysql.column_stats where db_name = 'test' and table_name = 't1';
drop table t1;
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment