mirror of
https://github.com/MariaDB/server.git
synced 2026-04-19 14:55:32 +02:00
Merge from mysql-5.5.11-release
This commit is contained in:
commit
50a1629f64
8 changed files with 254 additions and 195 deletions
|
|
@ -279,6 +279,38 @@ disconnect con2;
|
|||
disconnect con3;
|
||||
|
||||
|
||||
--echo #
|
||||
--echo # Bug#11815600 [ERROR] INNODB COULD NOT FIND INDEX PRIMARY
|
||||
--echo # KEY NO 0 FOR TABLE IN ERROR LOG
|
||||
--echo #
|
||||
|
||||
--disable_warnings
|
||||
DROP TABLE IF EXISTS t1;
|
||||
--enable_warnings
|
||||
|
||||
--connect (con1,localhost,root)
|
||||
|
||||
--echo # Connection default
|
||||
connection default;
|
||||
CREATE TABLE t1 (id INT PRIMARY KEY, value INT) ENGINE = InnoDB;
|
||||
INSERT INTO t1 VALUES (1, 12345);
|
||||
START TRANSACTION;
|
||||
SELECT * FROM t1;
|
||||
|
||||
--echo # Connection con1
|
||||
--connection con1
|
||||
SET lock_wait_timeout=1;
|
||||
--error ER_LOCK_WAIT_TIMEOUT
|
||||
ALTER TABLE t1 ADD INDEX idx(value);
|
||||
|
||||
--echo # Connection default
|
||||
--connection default
|
||||
SELECT * FROM t1;
|
||||
COMMIT;
|
||||
DROP TABLE t1;
|
||||
disconnect con1;
|
||||
|
||||
|
||||
# Check that all connections opened by test cases in this file are really
|
||||
# gone so execution of other tests won't be affected by their presence.
|
||||
--source include/wait_until_count_sessions.inc
|
||||
|
|
|
|||
|
|
@ -152,129 +152,133 @@ disconnect con1;
|
|||
--echo # that implement add_index
|
||||
--echo #
|
||||
|
||||
--disable_warnings
|
||||
DROP DATABASE IF EXISTS db1;
|
||||
DROP TABLE IF EXISTS t1;
|
||||
--enable_warnings
|
||||
--echo #
|
||||
--echo # DISABLED due to Bug#11815600
|
||||
--echo #
|
||||
|
||||
connect(con1,localhost,root);
|
||||
connect(con2,localhost,root);
|
||||
|
||||
--echo # Test 1: Secondary index, should not block reads (original test case).
|
||||
|
||||
--echo # Connection default
|
||||
connection default;
|
||||
CREATE DATABASE db1;
|
||||
CREATE TABLE db1.t1(id INT NOT NULL AUTO_INCREMENT PRIMARY KEY, value INT) engine=innodb;
|
||||
INSERT INTO db1.t1(value) VALUES (1), (2);
|
||||
SET DEBUG_SYNC= "alter_table_manage_keys SIGNAL manage WAIT_FOR query";
|
||||
--echo # Sending:
|
||||
--send ALTER TABLE db1.t1 ADD INDEX(value)
|
||||
|
||||
--echo # Connection con1
|
||||
connection con1;
|
||||
SET DEBUG_SYNC= "now WAIT_FOR manage";
|
||||
# Neither of these two statements should be blocked
|
||||
USE db1;
|
||||
SELECT * FROM t1;
|
||||
SET DEBUG_SYNC= "now SIGNAL query";
|
||||
|
||||
--echo # Connection default
|
||||
connection default;
|
||||
--echo # Reaping: ALTER TABLE db1.t1 ADD INDEX(value)
|
||||
--reap
|
||||
DROP DATABASE db1;
|
||||
|
||||
--echo # Test 2: Primary index (implicit), should block reads.
|
||||
|
||||
CREATE TABLE t1(a INT NOT NULL, b INT NOT NULL) engine=innodb;
|
||||
SET DEBUG_SYNC= "alter_table_manage_keys SIGNAL manage WAIT_FOR query";
|
||||
--echo # Sending:
|
||||
--send ALTER TABLE t1 ADD UNIQUE INDEX(a)
|
||||
|
||||
--echo # Connection con1
|
||||
connection con1;
|
||||
SET DEBUG_SYNC= "now WAIT_FOR manage";
|
||||
USE test;
|
||||
--echo # Sending:
|
||||
--send SELECT * FROM t1
|
||||
|
||||
--echo # Connection con2
|
||||
connection con2;
|
||||
--echo # Waiting for SELECT to be blocked by the metadata lock on t1
|
||||
let $wait_condition= SELECT COUNT(*)= 1 FROM information_schema.processlist
|
||||
WHERE state= 'Waiting for table metadata lock'
|
||||
AND info='SELECT * FROM t1';
|
||||
--source include/wait_condition.inc
|
||||
SET DEBUG_SYNC= "now SIGNAL query";
|
||||
|
||||
--echo # Connection default
|
||||
connection default;
|
||||
--echo # Reaping: ALTER TABLE t1 ADD UNIQUE INDEX(a)
|
||||
--reap
|
||||
|
||||
--echo # Connection con1
|
||||
connection con1;
|
||||
--echo # Reaping: SELECT * FROM t1
|
||||
--reap
|
||||
|
||||
--echo # Test 3: Primary index (explicit), should block reads.
|
||||
|
||||
--echo # Connection default
|
||||
connection default;
|
||||
ALTER TABLE t1 DROP INDEX a;
|
||||
SET DEBUG_SYNC= "alter_table_manage_keys SIGNAL manage WAIT_FOR query";
|
||||
--echo # Sending:
|
||||
--send ALTER TABLE t1 ADD PRIMARY KEY (a)
|
||||
|
||||
--echo # Connection con1
|
||||
connection con1;
|
||||
SET DEBUG_SYNC= "now WAIT_FOR manage";
|
||||
--echo # Sending:
|
||||
--send SELECT * FROM t1
|
||||
|
||||
--echo # Connection con2
|
||||
connection con2;
|
||||
--echo # Waiting for SELECT to be blocked by the metadata lock on t1
|
||||
let $wait_condition= SELECT COUNT(*)= 1 FROM information_schema.processlist
|
||||
WHERE state= 'Waiting for table metadata lock'
|
||||
AND info='SELECT * FROM t1';
|
||||
--source include/wait_condition.inc
|
||||
SET DEBUG_SYNC= "now SIGNAL query";
|
||||
|
||||
--echo # Connection default
|
||||
connection default;
|
||||
--echo # Reaping: ALTER TABLE t1 ADD PRIMARY KEY (a)
|
||||
--reap
|
||||
|
||||
--echo # Connection con1
|
||||
connection con1;
|
||||
--echo # Reaping: SELECT * FROM t1
|
||||
--reap
|
||||
|
||||
--echo # Test 4: Secondary unique index, should not block reads.
|
||||
|
||||
--echo # Connection default
|
||||
connection default;
|
||||
SET DEBUG_SYNC= "alter_table_manage_keys SIGNAL manage WAIT_FOR query";
|
||||
--echo # Sending:
|
||||
--send ALTER TABLE t1 ADD UNIQUE (b)
|
||||
|
||||
--echo # Connection con1
|
||||
connection con1;
|
||||
SET DEBUG_SYNC= "now WAIT_FOR manage";
|
||||
SELECT * FROM t1;
|
||||
SET DEBUG_SYNC= "now SIGNAL query";
|
||||
|
||||
--echo # Connection default
|
||||
connection default;
|
||||
--echo # Reaping: ALTER TABLE t1 ADD UNIQUE (b)
|
||||
--reap
|
||||
|
||||
disconnect con1;
|
||||
disconnect con2;
|
||||
SET DEBUG_SYNC= "RESET";
|
||||
DROP TABLE t1;
|
||||
#--disable_warnings
|
||||
#DROP DATABASE IF EXISTS db1;
|
||||
#DROP TABLE IF EXISTS t1;
|
||||
#--enable_warnings
|
||||
#
|
||||
#connect(con1,localhost,root);
|
||||
#connect(con2,localhost,root);
|
||||
#
|
||||
#--echo # Test 1: Secondary index, should not block reads (original test case).
|
||||
#
|
||||
#--echo # Connection default
|
||||
#connection default;
|
||||
#CREATE DATABASE db1;
|
||||
#CREATE TABLE db1.t1(id INT NOT NULL AUTO_INCREMENT PRIMARY KEY, value INT) engine=innodb;
|
||||
#INSERT INTO db1.t1(value) VALUES (1), (2);
|
||||
#SET DEBUG_SYNC= "alter_table_manage_keys SIGNAL manage WAIT_FOR query";
|
||||
#--echo # Sending:
|
||||
#--send ALTER TABLE db1.t1 ADD INDEX(value)
|
||||
#
|
||||
#--echo # Connection con1
|
||||
#connection con1;
|
||||
#SET DEBUG_SYNC= "now WAIT_FOR manage";
|
||||
# # Neither of these two statements should be blocked
|
||||
#USE db1;
|
||||
#SELECT * FROM t1;
|
||||
#SET DEBUG_SYNC= "now SIGNAL query";
|
||||
#
|
||||
#--echo # Connection default
|
||||
#connection default;
|
||||
#--echo # Reaping: ALTER TABLE db1.t1 ADD INDEX(value)
|
||||
#--reap
|
||||
#DROP DATABASE db1;
|
||||
#
|
||||
#--echo # Test 2: Primary index (implicit), should block reads.
|
||||
#
|
||||
#CREATE TABLE t1(a INT NOT NULL, b INT NOT NULL) engine=innodb;
|
||||
#SET DEBUG_SYNC= "alter_table_manage_keys SIGNAL manage WAIT_FOR query";
|
||||
#--echo # Sending:
|
||||
#--send ALTER TABLE t1 ADD UNIQUE INDEX(a)
|
||||
#
|
||||
#--echo # Connection con1
|
||||
#connection con1;
|
||||
#SET DEBUG_SYNC= "now WAIT_FOR manage";
|
||||
#USE test;
|
||||
#--echo # Sending:
|
||||
#--send SELECT * FROM t1
|
||||
#
|
||||
#--echo # Connection con2
|
||||
#connection con2;
|
||||
#--echo # Waiting for SELECT to be blocked by the metadata lock on t1
|
||||
#let $wait_condition= SELECT COUNT(*)= 1 FROM information_schema.processlist
|
||||
# WHERE state= 'Waiting for table metadata lock'
|
||||
# AND info='SELECT * FROM t1';
|
||||
#--source include/wait_condition.inc
|
||||
#SET DEBUG_SYNC= "now SIGNAL query";
|
||||
#
|
||||
#--echo # Connection default
|
||||
#connection default;
|
||||
#--echo # Reaping: ALTER TABLE t1 ADD UNIQUE INDEX(a)
|
||||
#--reap
|
||||
#
|
||||
#--echo # Connection con1
|
||||
#connection con1;
|
||||
#--echo # Reaping: SELECT * FROM t1
|
||||
#--reap
|
||||
#
|
||||
#--echo # Test 3: Primary index (explicit), should block reads.
|
||||
#
|
||||
#--echo # Connection default
|
||||
#connection default;
|
||||
#ALTER TABLE t1 DROP INDEX a;
|
||||
#SET DEBUG_SYNC= "alter_table_manage_keys SIGNAL manage WAIT_FOR query";
|
||||
#--echo # Sending:
|
||||
#--send ALTER TABLE t1 ADD PRIMARY KEY (a)
|
||||
#
|
||||
#--echo # Connection con1
|
||||
#connection con1;
|
||||
#SET DEBUG_SYNC= "now WAIT_FOR manage";
|
||||
#--echo # Sending:
|
||||
#--send SELECT * FROM t1
|
||||
#
|
||||
#--echo # Connection con2
|
||||
#connection con2;
|
||||
#--echo # Waiting for SELECT to be blocked by the metadata lock on t1
|
||||
#let $wait_condition= SELECT COUNT(*)= 1 FROM information_schema.processlist
|
||||
# WHERE state= 'Waiting for table metadata lock'
|
||||
# AND info='SELECT * FROM t1';
|
||||
#--source include/wait_condition.inc
|
||||
#SET DEBUG_SYNC= "now SIGNAL query";
|
||||
#
|
||||
#--echo # Connection default
|
||||
#connection default;
|
||||
#--echo # Reaping: ALTER TABLE t1 ADD PRIMARY KEY (a)
|
||||
#--reap
|
||||
#
|
||||
#--echo # Connection con1
|
||||
#connection con1;
|
||||
#--echo # Reaping: SELECT * FROM t1
|
||||
#--reap
|
||||
#
|
||||
#--echo # Test 4: Secondary unique index, should not block reads.
|
||||
#
|
||||
#--echo # Connection default
|
||||
#connection default;
|
||||
#SET DEBUG_SYNC= "alter_table_manage_keys SIGNAL manage WAIT_FOR query";
|
||||
#--echo # Sending:
|
||||
#--send ALTER TABLE t1 ADD UNIQUE (b)
|
||||
#
|
||||
#--echo # Connection con1
|
||||
#connection con1;
|
||||
#SET DEBUG_SYNC= "now WAIT_FOR manage";
|
||||
#SELECT * FROM t1;
|
||||
#SET DEBUG_SYNC= "now SIGNAL query";
|
||||
#
|
||||
#--echo # Connection default
|
||||
#connection default;
|
||||
#--echo # Reaping: ALTER TABLE t1 ADD UNIQUE (b)
|
||||
#--reap
|
||||
#
|
||||
#disconnect con1;
|
||||
#disconnect con2;
|
||||
#SET DEBUG_SYNC= "RESET";
|
||||
#DROP TABLE t1;
|
||||
|
||||
|
||||
# Check that all connections opened by test cases in this file are really
|
||||
|
|
|
|||
|
|
@ -490,4 +490,26 @@ SELECT IS_NULLABLE, COLUMN_NAME FROM INFORMATION_SCHEMA.COLUMNS WHERE
|
|||
TABLE_SCHEMA='mysql'
|
||||
ORDER BY COLUMN_NAME;
|
||||
|
||||
|
||||
--echo #
|
||||
--echo # Bug #11936829: diff. between mysql.user (authentication_string)
|
||||
--echo # in fresh and upgraded 5.5.11
|
||||
--echo #
|
||||
|
||||
SELECT IS_NULLABLE, COLUMN_NAME FROM INFORMATION_SCHEMA.COLUMNS
|
||||
WHERE TABLE_SCHEMA= 'mysql' AND TABLE_NAME= 'user' AND
|
||||
COLUMN_NAME IN ('plugin', 'authentication_string')
|
||||
ORDER BY COLUMN_NAME;
|
||||
ALTER TABLE mysql.user MODIFY plugin char(64) DEFAULT '' NOT NULL;
|
||||
ALTER TABLE mysql.user MODIFY authentication_string TEXT NOT NULL;
|
||||
|
||||
--echo Run mysql_upgrade on a 5.5.10 external authentication column layout
|
||||
--exec $MYSQL_UPGRADE --skip-verbose --force 2>&1
|
||||
|
||||
SELECT IS_NULLABLE, COLUMN_NAME FROM INFORMATION_SCHEMA.COLUMNS
|
||||
WHERE TABLE_SCHEMA= 'mysql' AND TABLE_NAME= 'user' AND
|
||||
COLUMN_NAME IN ('plugin', 'authentication_string')
|
||||
ORDER BY COLUMN_NAME;
|
||||
|
||||
|
||||
--echo End of 5.5 tests
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue