mirror of
				https://github.com/MariaDB/server.git
				synced 2025-11-04 04:46:15 +01:00 
			
		
		
		
	- Moved view checks after privilege tables are fixed. This is to avoid warnings about wrongly defined mysql.proc when checking views. - Don't use stat tables before they have been fixed. - Don't run mysql_fix_view() if 'FOR MYSQL' is used if the view is already a MariaDB view. - Added 'FOR UPGRADE' as an option for 'REPAIR VIEW' to be able to detect if the REPAIR command comes from mariadb_upgrade. In this case we get a warning, instead of an error, if a definer of a view does not exists.
		
			
				
	
	
		
			86 lines
		
	
	
	
		
			3.9 KiB
		
	
	
	
		
			Text
		
	
	
	
	
	
			
		
		
	
	
			86 lines
		
	
	
	
		
			3.9 KiB
		
	
	
	
		
			Text
		
	
	
	
	
	
#
 | 
						|
# MDEV-11942 BLACKHOLE is no longer active in 10.1 by default, mysql_upgrade not handling the situation
 | 
						|
#
 | 
						|
source include/mysql_upgrade_preparation.inc;
 | 
						|
source include/have_innodb.inc;
 | 
						|
source include/not_embedded.inc;
 | 
						|
 | 
						|
if (!$HA_BLACKHOLE_SO) {
 | 
						|
  skip Need blackhole plugin;
 | 
						|
}
 | 
						|
if (!$HA_ARCHIVE_SO) {
 | 
						|
  skip Need Archive plugin;
 | 
						|
}
 | 
						|
 | 
						|
source include/switch_to_mysql_user.inc;
 | 
						|
drop view mysql.user_bak;
 | 
						|
 | 
						|
let $datadir= `select @@datadir`;
 | 
						|
 | 
						|
install soname 'ha_blackhole';
 | 
						|
install soname 'ha_archive';
 | 
						|
 | 
						|
vertical_results;
 | 
						|
create table t1 (a int) engine=blackhole;
 | 
						|
create table t2 (a int) engine=archive;
 | 
						|
select table_catalog, table_schema, table_name, table_type, engine, row_format, table_rows, data_length, table_comment from information_schema.tables where table_schema='test' and table_name='t1';
 | 
						|
select table_catalog, table_schema, table_name, table_type, engine, row_format, table_rows, data_length, table_comment from information_schema.tables where table_schema='test' and table_name='t2';
 | 
						|
 | 
						|
flush tables;
 | 
						|
uninstall plugin blackhole;
 | 
						|
uninstall plugin archive;
 | 
						|
select table_catalog, table_schema, table_name, table_type, engine, row_format, table_rows, data_length, table_comment from information_schema.tables where table_schema='test' and table_name='t1';
 | 
						|
select table_catalog, table_schema, table_name, table_type, engine, row_format, table_rows, data_length, table_comment from information_schema.tables where table_schema='test' and table_name='t2';
 | 
						|
 | 
						|
--echo # upgrade from 10.1 - engines aren't enabled
 | 
						|
--replace_regex /\d\d\.\d*\.\d*[^ .\n]*/MariaDB /
 | 
						|
exec $MYSQL_UPGRADE --silent 2>&1;
 | 
						|
select table_catalog, table_schema, table_name, table_type, engine, row_format, table_rows, data_length, table_comment from information_schema.tables where table_schema='test' and table_name='t1';
 | 
						|
select table_catalog, table_schema, table_name, table_type, engine, row_format, table_rows, data_length, table_comment from information_schema.tables where table_schema='test' and table_name='t2';
 | 
						|
 | 
						|
drop table mysql.global_priv;
 | 
						|
rename table mysql.global_priv_bak to mysql.global_priv;
 | 
						|
source include/switch_to_mysql_user.inc;
 | 
						|
drop view mysql.user_bak;
 | 
						|
 | 
						|
# pretend it's an upgrade from 10.0
 | 
						|
alter table mysql.user drop column default_role, drop column max_statement_time;
 | 
						|
 | 
						|
# but mysql_upgrade_info tells otherwise
 | 
						|
remove_file $datadir/mysql_upgrade_info;
 | 
						|
write_file $datadir/mysql_upgrade_info;
 | 
						|
10.1.10-MariaDB
 | 
						|
EOF
 | 
						|
 | 
						|
--echo # still upgrade from 10.1
 | 
						|
--replace_regex /\d\d\.\d*\.\d*[^ .\n]*/MariaDB /
 | 
						|
exec $MYSQL_UPGRADE --silent 2>&1;
 | 
						|
select table_catalog, table_schema, table_name, table_type, engine, row_format, table_rows, data_length, table_comment from information_schema.tables where table_schema='test' and table_name='t1';
 | 
						|
select table_catalog, table_schema, table_name, table_type, engine, row_format, table_rows, data_length, table_comment from information_schema.tables where table_schema='test' and table_name='t2';
 | 
						|
 | 
						|
drop table mysql.global_priv;
 | 
						|
rename table mysql.global_priv_bak to mysql.global_priv;
 | 
						|
source include/switch_to_mysql_user.inc;
 | 
						|
drop view mysql.user_bak;
 | 
						|
 | 
						|
alter table mysql.user drop column default_role, drop column max_statement_time;
 | 
						|
remove_file $datadir/mysql_upgrade_info;
 | 
						|
 | 
						|
--echo # upgrade from 10.0 - engines are enabled
 | 
						|
--replace_regex /\d\d\.\d*\.\d*[^ .\n]*/MariaDB /
 | 
						|
exec $MYSQL_UPGRADE --silent 2>&1;
 | 
						|
select table_catalog, table_schema, table_name, table_type, engine, row_format, table_rows, data_length, table_comment from information_schema.tables where table_schema='test' and table_name='t1';
 | 
						|
select table_catalog, table_schema, table_name, table_type, engine, row_format, table_rows, data_length, table_comment from information_schema.tables where table_schema='test' and table_name='t2';
 | 
						|
 | 
						|
drop table t1, t2;
 | 
						|
 | 
						|
remove_file $datadir/mysql_upgrade_info;
 | 
						|
# This is needed as mysql_upgrade can load the plugins
 | 
						|
uninstall plugin blackhole;
 | 
						|
uninstall plugin archive;
 | 
						|
 | 
						|
drop table mysql.global_priv;
 | 
						|
rename table mysql.global_priv_bak to mysql.global_priv;
 | 
						|
 | 
						|
FLUSH PRIVILEGES;
 | 
						|
SHOW GRANTS FOR root@localhost;
 |