mirror of
				https://github.com/MariaDB/server.git
				synced 2025-10-31 15:50:51 +03:00 
			
		
		
		
	---------------------------------------------------------- revno: 2630.10.1 committer: Konstantin Osipov <konstantin@mysql.com> branch nick: mysql-6.0-lock-tables-tidyup timestamp: Wed 2008-06-11 15:49:58 +0400 message: WL#3726, review fixes. Now that we have metadata locks, we don't need to keep a crippled TABLE instance in the table cache to indicate that a table is locked. Remove all code that used this technique. Instead, rely on metadata locks and use the standard open_table() and close_thread_table() to manipulate with the table cache tables. Removes a list of functions that have become unused (see the comment for sql_base.cc for details). Under LOCK TABLES, keep a TABLE_LIST instance for each table that may be temporarily closed. For that, implement an own class for LOCK TABLES mode, Locked_tables_list. This is a pre-requisite patch for WL#4144. This is not exactly a backport: there is no new online ALTER table in Celosia, so the old alter table code was changed to work with the new table cache API.
		
			
				
	
	
		
			44 lines
		
	
	
		
			2.4 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			44 lines
		
	
	
		
			2.4 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
| DELETE FROM mysql.user WHERE User LIKE 'mysqltest_%';
 | |
| DELETE FROM mysql.db WHERE User LIKE 'mysqltest_%';
 | |
| DELETE FROM mysql.tables_priv WHERE User LIKE 'mysqltest_%';
 | |
| DELETE FROM mysql.columns_priv WHERE User LIKE 'mysqltest_%';
 | |
| FLUSH PRIVILEGES;
 | |
| DROP DATABASE IF EXISTS mysqltest_db1;
 | |
| CREATE DATABASE mysqltest_db1;
 | |
| CREATE USER mysqltest_dfn@localhost;
 | |
| CREATE USER mysqltest_inv@localhost;
 | |
| GRANT CREATE, TRIGGER ON mysqltest_db1.* TO mysqltest_dfn@localhost;
 | |
| 
 | |
| ---> connection: wl2818_definer_con
 | |
| CREATE TABLE t1(num_value INT);
 | |
| CREATE TABLE t2(user_str TEXT);
 | |
| CREATE TRIGGER wl2818_trg1 BEFORE INSERT ON t1 FOR EACH ROW INSERT INTO t2 VALUES(CURRENT_USER());
 | |
| 
 | |
| ---> patching t1.TRG...
 | |
| 
 | |
| CREATE TRIGGER wl2818_trg2 AFTER INSERT ON t1
 | |
| FOR EACH ROW
 | |
| INSERT INTO t2 VALUES(CURRENT_USER());
 | |
| Warnings:
 | |
| Warning	1454	No definer attribute for trigger 'mysqltest_db1'.'wl2818_trg1'. The trigger will be activated under the authorization of the invoker, which may have insufficient privileges. Please recreate the trigger.
 | |
| 
 | |
| SELECT trigger_name, definer FROM INFORMATION_SCHEMA.TRIGGERS ORDER BY trigger_name;
 | |
| trigger_name	definer
 | |
| wl2818_trg1	
 | |
| wl2818_trg2	mysqltest_dfn@localhost
 | |
| Warnings:
 | |
| Warning	1454	No definer attribute for trigger 'mysqltest_db1'.'wl2818_trg1'. The trigger will be activated under the authorization of the invoker, which may have insufficient privileges. Please recreate the trigger.
 | |
| 
 | |
| SELECT * FROM INFORMATION_SCHEMA.TRIGGERS ORDER BY trigger_name;
 | |
| TRIGGER_CATALOG	TRIGGER_SCHEMA	TRIGGER_NAME	EVENT_MANIPULATION	EVENT_OBJECT_CATALOG	EVENT_OBJECT_SCHEMA	EVENT_OBJECT_TABLE	ACTION_ORDER	ACTION_CONDITION	ACTION_STATEMENT	ACTION_ORIENTATION	ACTION_TIMING	ACTION_REFERENCE_OLD_TABLE	ACTION_REFERENCE_NEW_TABLE	ACTION_REFERENCE_OLD_ROW	ACTION_REFERENCE_NEW_ROW	CREATED	SQL_MODE	DEFINER	CHARACTER_SET_CLIENT	COLLATION_CONNECTION	DATABASE_COLLATION
 | |
| def	mysqltest_db1	wl2818_trg1	INSERT	def	mysqltest_db1	t1	0	NULL	INSERT INTO t2 VALUES(CURRENT_USER())	ROW	BEFORE	NULL	NULL	OLD	NEW	NULL			latin1	latin1_swedish_ci	latin1_swedish_ci
 | |
| def	mysqltest_db1	wl2818_trg2	INSERT	def	mysqltest_db1	t1	0	NULL	INSERT INTO t2 VALUES(CURRENT_USER())	ROW	AFTER	NULL	NULL	OLD	NEW	NULL		mysqltest_dfn@localhost	latin1	latin1_swedish_ci	latin1_swedish_ci
 | |
| DROP TRIGGER wl2818_trg1;
 | |
| DROP TRIGGER wl2818_trg2;
 | |
| use mysqltest_db1;
 | |
| DROP TABLE t1;
 | |
| DROP TABLE t2;
 | |
| DROP USER mysqltest_dfn@localhost;
 | |
| DROP USER mysqltest_inv@localhost;
 | |
| DROP DATABASE mysqltest_db1;
 |