mirror of
https://github.com/MariaDB/server.git
synced 2025-07-30 16:24:05 +03:00
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: Vicențiu Ciorbaru <vicentiu@mariadb.org>
This commit is contained in:
committed by
Vicențiu Ciorbaru
parent
5efb8f1677
commit
3b9423fda2
@ -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[] =
|
|||||||
{"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)
|
|||||||
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);
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
'\" 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
|
|||||||
.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);
|
|||||||
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
|
|||||||
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
|
|||||||
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);
|
|||||||
|
|
||||||
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;
|
|||||||
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;
|
||||||
|
Reference in New Issue
Block a user