mirror of
				https://github.com/MariaDB/server.git
				synced 2025-11-03 14:33:32 +03:00 
			
		
		
		
	
		
			
				
	
	
		
			109 lines
		
	
	
		
			3.5 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			109 lines
		
	
	
		
			3.5 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
# Embedded server doesn't support external clients
 | 
						|
--source include/not_embedded.inc
 | 
						|
 | 
						|
# Don't run this test if $MYSQL_FIX_SYSTEM_TABLES isn't set
 | 
						|
# to the location of mysql_fix_privilege_tables.sql
 | 
						|
if (`SELECT LENGTH("$MYSQL_FIX_SYSTEM_TABLES") <= 0`)
 | 
						|
{
 | 
						|
  skip Test need MYSQL_FIX_SYSTEM_TABLES;
 | 
						|
}
 | 
						|
# check that CSV engine was compiled in, as the test relies on the presence
 | 
						|
# of the log tables (which are CSV-based)
 | 
						|
--source include/have_csv.inc
 | 
						|
 | 
						|
#
 | 
						|
# This is the test for mysql_fix_privilege_tables
 | 
						|
# It checks that a system tables from mysql 3.20
 | 
						|
# can be upgraded to current system table format
 | 
						|
#
 | 
						|
# Note: If this test fails, don't be confused about the errors reported
 | 
						|
# by mysql-test-run This shows warnings generated by
 | 
						|
# mysql_fix_system_tables which should be ignored.
 | 
						|
# Instead, concentrate on the errors in r/system_mysql_db.reject
 | 
						|
 | 
						|
-- disable_result_log
 | 
						|
-- disable_query_log
 | 
						|
 | 
						|
use test;
 | 
						|
 | 
						|
# create system tables as in mysql-3.20
 | 
						|
 | 
						|
--disable_warnings
 | 
						|
CREATE TABLE db (
 | 
						|
  Host char(60) binary DEFAULT '' NOT NULL,
 | 
						|
  Db char(32) binary DEFAULT '' NOT NULL,
 | 
						|
  User char(16) binary DEFAULT '' NOT NULL,
 | 
						|
  Select_priv enum('N','Y') DEFAULT 'N' NOT NULL,
 | 
						|
  Insert_priv enum('N','Y') DEFAULT 'N' NOT NULL,
 | 
						|
  Update_priv enum('N','Y') DEFAULT 'N' NOT NULL,
 | 
						|
  Delete_priv enum('N','Y') DEFAULT 'N' NOT NULL,
 | 
						|
  Create_priv enum('N','Y') DEFAULT 'N' NOT NULL,
 | 
						|
  Drop_priv enum('N','Y') DEFAULT 'N' NOT NULL,
 | 
						|
  PRIMARY KEY Host (Host,Db,User),
 | 
						|
  KEY User (User)
 | 
						|
)
 | 
						|
engine=MyISAM;
 | 
						|
--enable_warnings
 | 
						|
 | 
						|
INSERT INTO db VALUES ('%','test',   '','Y','Y','Y','Y','Y','Y');
 | 
						|
INSERT INTO db VALUES ('%','test\_%','','Y','Y','Y','Y','Y','Y');
 | 
						|
 | 
						|
--disable_warnings
 | 
						|
CREATE TABLE host (
 | 
						|
  Host char(60) binary DEFAULT '' NOT NULL,
 | 
						|
  Db char(32) binary DEFAULT '' NOT NULL,
 | 
						|
  Select_priv enum('N','Y') DEFAULT 'N' NOT NULL,
 | 
						|
  Insert_priv enum('N','Y') DEFAULT 'N' NOT NULL,
 | 
						|
  Update_priv enum('N','Y') DEFAULT 'N' NOT NULL,
 | 
						|
  Delete_priv enum('N','Y') DEFAULT 'N' NOT NULL,
 | 
						|
  Create_priv enum('N','Y') DEFAULT 'N' NOT NULL,
 | 
						|
  Drop_priv enum('N','Y') DEFAULT 'N' NOT NULL,
 | 
						|
  PRIMARY KEY Host (Host,Db)
 | 
						|
)
 | 
						|
engine=MyISAM;
 | 
						|
--enable_warnings
 | 
						|
 | 
						|
--disable_warnings
 | 
						|
CREATE TABLE user (
 | 
						|
  Host char(60) binary DEFAULT '' NOT NULL,
 | 
						|
  User char(16) binary DEFAULT '' NOT NULL,
 | 
						|
  Password char(16),
 | 
						|
  Select_priv enum('N','Y') DEFAULT 'N' NOT NULL,
 | 
						|
  Insert_priv enum('N','Y') DEFAULT 'N' NOT NULL,
 | 
						|
  Update_priv enum('N','Y') DEFAULT 'N' NOT NULL,
 | 
						|
  Delete_priv enum('N','Y') DEFAULT 'N' NOT NULL,
 | 
						|
  Create_priv enum('N','Y') DEFAULT 'N' NOT NULL,
 | 
						|
  Drop_priv enum('N','Y') DEFAULT 'N' NOT NULL,
 | 
						|
  Reload_priv enum('N','Y') DEFAULT 'N' NOT NULL,
 | 
						|
  Shutdown_priv enum('N','Y') DEFAULT 'N' NOT NULL,
 | 
						|
  Process_priv enum('N','Y') DEFAULT 'N' NOT NULL,
 | 
						|
  PRIMARY KEY Host (Host,User)
 | 
						|
)
 | 
						|
engine=MyISAM;
 | 
						|
--enable_warnings
 | 
						|
 | 
						|
INSERT INTO user VALUES ('localhost','root','','Y','Y','Y','Y','Y','Y','Y','Y','Y');
 | 
						|
INSERT INTO user VALUES ('localhost','',    '','N','N','N','N','N','N','N','N','N');
 | 
						|
 | 
						|
# Call the "shell script" $MYSQL_FIX_SYSTEM_TABLES using system
 | 
						|
-- system $MYSQL_FIX_SYSTEM_TABLES --database=test > $MYSQLTEST_VARDIR/log/system_mysql_db_fix30020.log 2>&1
 | 
						|
-- enable_query_log
 | 
						|
-- enable_result_log
 | 
						|
 | 
						|
-- source include/system_db_struct.inc
 | 
						|
 | 
						|
-- disable_query_log
 | 
						|
 | 
						|
DROP TABLE db, host, user, func, plugin, tables_priv, columns_priv,
 | 
						|
procs_priv, servers, help_category, help_keyword, help_relation, help_topic, proc,
 | 
						|
time_zone, time_zone_leap_second, time_zone_name, time_zone_transition,
 | 
						|
time_zone_transition_type, general_log, slow_log, event, ndb_binlog_index;
 | 
						|
 | 
						|
-- enable_query_log
 | 
						|
 | 
						|
# check that we dropped all system tables
 | 
						|
show tables;
 | 
						|
 | 
						|
exit;
 | 
						|
# End of 4.1 tests
 |