mirror of
				https://github.com/MariaDB/server.git
				synced 2025-11-03 14:33:32 +03:00 
			
		
		
		
	Invalid (old?) table or database name in logs Problem was still not completely fixed, due to qouting. This is the server side only fix (in explain_filename), the change from filename_to_tablename to use explain_filename in the InnoDB code must be done before the bug is fixed. mysql-test/include/have_not_innodb_plugin.inc: Bug#32430: 'show innodb status' causes errors Invalid (old?) table or database name in logs Added include file to allow test for only the 'old' built-in innodb engine mysql-test/r/not_true.require: Bug#32430: 'show innodb status' causes errors Invalid (old?) table or database name in logs Added require to match 'not' TRUE mysql-test/r/partition_innodb_builtin.result: Bug#32430: 'show innodb status' causes errors Invalid (old?) table or database name in logs New result file for partitioning specific to the 'old' built-in innodb engine mysql-test/r/partition_innodb_plugin.result: Bug#32430: 'show innodb status' causes errors Invalid (old?) table or database name in logs New result file for partitioning specific to the new plugin innodb engine mysql-test/t/disabled.def: Bug#32430: 'show innodb status' causes errors Invalid (old?) table or database name in logs Disabling the new test until the fix is included in the InnoDB source too. mysql-test/t/partition_innodb_builtin.test: Bug#32430: 'show innodb status' causes errors Invalid (old?) table or database name in logs New test file for partitioning specific to the 'old' built-in innodb engine mysql-test/t/partition_innodb_plugin.test: Bug#32430: 'show innodb status' causes errors Invalid (old?) table or database name in logs New test file for partitioning specific to the new plugin innodb engine sql/mysql_priv.h: Bug#32430: 'show innodb status' causes errors Invalid (old?) table or database name in logs Added thd as a parameter to explain_filename to be able to use the correct quote character sql/sql_table.cc: Bug#32430: 'show innodb status' causes errors Invalid (old?) table or database name in logs Changed explain_filename, so that it does qouting correctly according to the sessions qoute char.
		
			
				
	
	
		
			68 lines
		
	
	
		
			2.2 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			68 lines
		
	
	
		
			2.2 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
--source include/have_partition.inc
 | 
						|
--source include/have_innodb.inc
 | 
						|
--source include/have_not_innodb_plugin.inc
 | 
						|
 | 
						|
#
 | 
						|
# Bug#32430 - show engine innodb status causes errors
 | 
						|
#
 | 
						|
SET NAMES utf8;
 | 
						|
CREATE TABLE `t``\""e` (a INT, PRIMARY KEY (a))
 | 
						|
ENGINE=InnoDB
 | 
						|
PARTITION BY RANGE (a)
 | 
						|
SUBPARTITION BY HASH (a)
 | 
						|
(PARTITION `p0``\""e` VALUES LESS THAN (100)
 | 
						|
 (SUBPARTITION `sp0``\""e`,
 | 
						|
  SUBPARTITION `sp1``\""e`),
 | 
						|
 PARTITION `p1``\""e` VALUES LESS THAN (MAXVALUE)
 | 
						|
 (SUBPARTITION `sp2``\""e`,
 | 
						|
  SUBPARTITION `sp3``\""e`));
 | 
						|
INSERT INTO `t``\""e` VALUES (0), (2), (6), (10), (14), (18), (22);
 | 
						|
START TRANSACTION;
 | 
						|
--echo # con1
 | 
						|
connect(con1,localhost,root,,);
 | 
						|
SET NAMES utf8;
 | 
						|
START TRANSACTION;
 | 
						|
--echo # default connection
 | 
						|
connection default;
 | 
						|
UPDATE `t``\""e` SET a = 16 WHERE a = 0;
 | 
						|
--echo # con1
 | 
						|
connection con1;
 | 
						|
UPDATE `t``\""e` SET a = 8 WHERE a = 22;
 | 
						|
let $id_1= `SELECT CONNECTION_ID()`;
 | 
						|
SEND;
 | 
						|
UPDATE `t``\""e` SET a = 12 WHERE a = 0;
 | 
						|
--echo # default connection
 | 
						|
connection default;
 | 
						|
let $wait_timeout= 2;
 | 
						|
let $wait_condition= SELECT 1 FROM INFORMATION_SCHEMA.PROCESSLIST
 | 
						|
WHERE ID = $id_1 AND STATE = 'Searching rows for update';
 | 
						|
--source include/wait_condition.inc
 | 
						|
#--echo # tested wait condition $wait_condition_reps times
 | 
						|
--error ER_LOCK_DEADLOCK
 | 
						|
UPDATE `t``\""e` SET a = 4 WHERE a = 22;
 | 
						|
--echo # First table reported in 'SHOW ENGINE InnoDB STATUS'
 | 
						|
# RECORD LOCKS space id 0 page no 50 n bits 80 index `PRIMARY` in \
 | 
						|
# Database `test`, Table `t1`, Partition `p0`, Subpartition `sp0` \
 | 
						|
# trx id 0 775
 | 
						|
# NOTE: replace_regex is very slow on match copy/past '(.*)' regex's
 | 
						|
# on big texts, removing a lot of text before + after makes it much faster.
 | 
						|
#/.*in (.*) trx.*/\1/
 | 
						|
--replace_regex /.*RECORD LOCKS space id [0-9]* page no [0-9]* n bits [0-9]* // / trx id .*// /.*index .* in //
 | 
						|
SHOW ENGINE InnoDB STATUS;
 | 
						|
set @old_sql_mode = @@sql_mode;
 | 
						|
set sql_mode = 'ANSI_QUOTES';
 | 
						|
# INNODB_LOCKS only exists in innodb_plugin
 | 
						|
#SELECT * FROM INFORMATION_SCHEMA.INNODB_LOCKS;
 | 
						|
--replace_regex /.*RECORD LOCKS space id [0-9]* page no [0-9]* n bits [0-9]* // / trx id .*// /.*index .* in //
 | 
						|
SHOW ENGINE InnoDB STATUS;
 | 
						|
set @@sql_mode = @old_sql_mode;
 | 
						|
--echo # con1
 | 
						|
connection con1;
 | 
						|
REAP;
 | 
						|
ROLLBACK;
 | 
						|
disconnect con1;
 | 
						|
--echo # default connection
 | 
						|
connection default;
 | 
						|
DROP TABLE `t``\""e`;
 | 
						|
SET NAMES DEFAULT;
 |