mirror of
https://github.com/MariaDB/server.git
synced 2025-07-30 16:24:05 +03:00
merge from 5.5 main
This commit is contained in:
@ -148,3 +148,25 @@ COMMIT;
|
|||||||
# Connection default
|
# Connection default
|
||||||
DROP TABLE t1, t2;
|
DROP TABLE t1, t2;
|
||||||
DROP VIEW v1;
|
DROP VIEW v1;
|
||||||
|
#
|
||||||
|
# Bug#11815600 [ERROR] INNODB COULD NOT FIND INDEX PRIMARY
|
||||||
|
# KEY NO 0 FOR TABLE IN ERROR LOG
|
||||||
|
#
|
||||||
|
DROP TABLE IF EXISTS t1;
|
||||||
|
# Connection default
|
||||||
|
CREATE TABLE t1 (id INT PRIMARY KEY, value INT) ENGINE = InnoDB;
|
||||||
|
INSERT INTO t1 VALUES (1, 12345);
|
||||||
|
START TRANSACTION;
|
||||||
|
SELECT * FROM t1;
|
||||||
|
id value
|
||||||
|
1 12345
|
||||||
|
# Connection con1
|
||||||
|
SET lock_wait_timeout=1;
|
||||||
|
ALTER TABLE t1 ADD INDEX idx(value);
|
||||||
|
ERROR HY000: Lock wait timeout exceeded; try restarting transaction
|
||||||
|
# Connection default
|
||||||
|
SELECT * FROM t1;
|
||||||
|
id value
|
||||||
|
1 12345
|
||||||
|
COMMIT;
|
||||||
|
DROP TABLE t1;
|
||||||
|
@ -94,74 +94,6 @@ SET DEBUG_SYNC= 'RESET';
|
|||||||
# Bug#42230 during add index, cannot do queries on storage engines
|
# Bug#42230 during add index, cannot do queries on storage engines
|
||||||
# that implement add_index
|
# that implement add_index
|
||||||
#
|
#
|
||||||
DROP DATABASE IF EXISTS db1;
|
#
|
||||||
DROP TABLE IF EXISTS t1;
|
# DISABLED due to Bug#11815600
|
||||||
# Test 1: Secondary index, should not block reads (original test case).
|
#
|
||||||
# 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";
|
|
||||||
# Sending:
|
|
||||||
ALTER TABLE db1.t1 ADD INDEX(value);
|
|
||||||
# Connection con1
|
|
||||||
SET DEBUG_SYNC= "now WAIT_FOR manage";
|
|
||||||
USE db1;
|
|
||||||
SELECT * FROM t1;
|
|
||||||
id value
|
|
||||||
1 1
|
|
||||||
2 2
|
|
||||||
SET DEBUG_SYNC= "now SIGNAL query";
|
|
||||||
# Connection default
|
|
||||||
# Reaping: ALTER TABLE db1.t1 ADD INDEX(value)
|
|
||||||
DROP DATABASE db1;
|
|
||||||
# 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";
|
|
||||||
# Sending:
|
|
||||||
ALTER TABLE t1 ADD UNIQUE INDEX(a);
|
|
||||||
# Connection con1
|
|
||||||
SET DEBUG_SYNC= "now WAIT_FOR manage";
|
|
||||||
USE test;
|
|
||||||
# Sending:
|
|
||||||
SELECT * FROM t1;
|
|
||||||
# Connection con2
|
|
||||||
# Waiting for SELECT to be blocked by the metadata lock on t1
|
|
||||||
SET DEBUG_SYNC= "now SIGNAL query";
|
|
||||||
# Connection default
|
|
||||||
# Reaping: ALTER TABLE t1 ADD UNIQUE INDEX(a)
|
|
||||||
# Connection con1
|
|
||||||
# Reaping: SELECT * FROM t1
|
|
||||||
a b
|
|
||||||
# Test 3: Primary index (explicit), should block reads.
|
|
||||||
# Connection default
|
|
||||||
ALTER TABLE t1 DROP INDEX a;
|
|
||||||
SET DEBUG_SYNC= "alter_table_manage_keys SIGNAL manage WAIT_FOR query";
|
|
||||||
# Sending:
|
|
||||||
ALTER TABLE t1 ADD PRIMARY KEY (a);
|
|
||||||
# Connection con1
|
|
||||||
SET DEBUG_SYNC= "now WAIT_FOR manage";
|
|
||||||
# Sending:
|
|
||||||
SELECT * FROM t1;
|
|
||||||
# Connection con2
|
|
||||||
# Waiting for SELECT to be blocked by the metadata lock on t1
|
|
||||||
SET DEBUG_SYNC= "now SIGNAL query";
|
|
||||||
# Connection default
|
|
||||||
# Reaping: ALTER TABLE t1 ADD PRIMARY KEY (a)
|
|
||||||
# Connection con1
|
|
||||||
# Reaping: SELECT * FROM t1
|
|
||||||
a b
|
|
||||||
# Test 4: Secondary unique index, should not block reads.
|
|
||||||
# Connection default
|
|
||||||
SET DEBUG_SYNC= "alter_table_manage_keys SIGNAL manage WAIT_FOR query";
|
|
||||||
# Sending:
|
|
||||||
ALTER TABLE t1 ADD UNIQUE (b);
|
|
||||||
# Connection con1
|
|
||||||
SET DEBUG_SYNC= "now WAIT_FOR manage";
|
|
||||||
SELECT * FROM t1;
|
|
||||||
a b
|
|
||||||
SET DEBUG_SYNC= "now SIGNAL query";
|
|
||||||
# Connection default
|
|
||||||
# Reaping: ALTER TABLE t1 ADD UNIQUE (b)
|
|
||||||
SET DEBUG_SYNC= "RESET";
|
|
||||||
DROP TABLE t1;
|
|
||||||
|
@ -175,6 +175,35 @@ TABLE_SCHEMA TABLE_NAME
|
|||||||
mysqltest_lc2 myUC
|
mysqltest_lc2 myUC
|
||||||
use test;
|
use test;
|
||||||
drop database mysqltest_LC2;
|
drop database mysqltest_LC2;
|
||||||
|
#
|
||||||
|
# Bug #11758687: 50924: object names not resolved correctly
|
||||||
|
# on lctn2 systems
|
||||||
|
#
|
||||||
|
CREATE DATABASE BUP_XPFM_COMPAT_DB2;
|
||||||
|
CREATE TABLE BUP_XPFM_COMPAT_DB2.TABLE2 (c13 INT) DEFAULT CHARSET latin1;
|
||||||
|
CREATE TABLE BUP_XPFM_COMPAT_DB2.table1 (c13 INT) DEFAULT CHARSET latin1;
|
||||||
|
CREATE TABLE bup_xpfm_compat_db2.table3 (c13 INT) DEFAULT CHARSET latin1;
|
||||||
|
CREATE TRIGGER BUP_XPFM_COMPAT_DB2.trigger1 AFTER INSERT
|
||||||
|
ON BUP_XPFM_COMPAT_DB2.table1 FOR EACH ROW
|
||||||
|
update BUP_XPFM_COMPAT_DB2.table1 set c13=12;
|
||||||
|
|
|
||||||
|
CREATE TRIGGER BUP_XPFM_COMPAT_DB2.TRIGGER2 AFTER INSERT
|
||||||
|
ON BUP_XPFM_COMPAT_DB2.TABLE2 FOR EACH ROW
|
||||||
|
update BUP_XPFM_COMPAT_DB2.table1 set c13=12;
|
||||||
|
|
|
||||||
|
CREATE TRIGGER BUP_XPFM_COMPAT_DB2.TrigGer3 AFTER INSERT
|
||||||
|
ON BUP_XPFM_COMPAT_DB2.TaBle3 FOR EACH ROW
|
||||||
|
update BUP_XPFM_COMPAT_DB2.table1 set c13=12;
|
||||||
|
|
|
||||||
|
SELECT trigger_schema, trigger_name, event_object_table FROM
|
||||||
|
INFORMATION_SCHEMA.TRIGGERS
|
||||||
|
WHERE trigger_schema COLLATE utf8_bin = 'BUP_XPFM_COMPAT_DB2'
|
||||||
|
ORDER BY trigger_schema, trigger_name;
|
||||||
|
trigger_schema trigger_name event_object_table
|
||||||
|
BUP_XPFM_COMPAT_DB2 trigger1 table1
|
||||||
|
BUP_XPFM_COMPAT_DB2 TRIGGER2 TABLE2
|
||||||
|
BUP_XPFM_COMPAT_DB2 TrigGer3 table3
|
||||||
|
DROP DATABASE BUP_XPFM_COMPAT_DB2;
|
||||||
# End of 5.1 tests
|
# End of 5.1 tests
|
||||||
#
|
#
|
||||||
# Test for bug #44738 "fill_schema_table_from_frm() opens tables without
|
# Test for bug #44738 "fill_schema_table_from_frm() opens tables without
|
||||||
|
@ -400,4 +400,51 @@ ORDER BY COLUMN_NAME;
|
|||||||
IS_NULLABLE COLUMN_NAME
|
IS_NULLABLE COLUMN_NAME
|
||||||
YES authentication_string
|
YES authentication_string
|
||||||
YES plugin
|
YES plugin
|
||||||
|
#
|
||||||
|
# Bug #11936829: diff. between mysql.user (authentication_string)
|
||||||
|
# in fresh and upgraded 5.5.11
|
||||||
|
#
|
||||||
|
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;
|
||||||
|
IS_NULLABLE COLUMN_NAME
|
||||||
|
YES authentication_string
|
||||||
|
YES plugin
|
||||||
|
ALTER TABLE mysql.user MODIFY plugin char(64) DEFAULT '' NOT NULL;
|
||||||
|
ALTER TABLE mysql.user MODIFY authentication_string TEXT NOT NULL;
|
||||||
|
Run mysql_upgrade on a 5.5.10 external authentication column layout
|
||||||
|
mtr.global_suppressions OK
|
||||||
|
mtr.test_suppressions OK
|
||||||
|
mysql.columns_priv OK
|
||||||
|
mysql.db OK
|
||||||
|
mysql.event OK
|
||||||
|
mysql.func OK
|
||||||
|
mysql.general_log OK
|
||||||
|
mysql.help_category OK
|
||||||
|
mysql.help_keyword OK
|
||||||
|
mysql.help_relation OK
|
||||||
|
mysql.help_topic OK
|
||||||
|
mysql.host OK
|
||||||
|
mysql.ndb_binlog_index OK
|
||||||
|
mysql.plugin OK
|
||||||
|
mysql.proc OK
|
||||||
|
mysql.procs_priv OK
|
||||||
|
mysql.proxies_priv OK
|
||||||
|
mysql.servers OK
|
||||||
|
mysql.slow_log OK
|
||||||
|
mysql.tables_priv OK
|
||||||
|
mysql.time_zone OK
|
||||||
|
mysql.time_zone_leap_second OK
|
||||||
|
mysql.time_zone_name OK
|
||||||
|
mysql.time_zone_transition OK
|
||||||
|
mysql.time_zone_transition_type OK
|
||||||
|
mysql.user OK
|
||||||
|
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;
|
||||||
|
IS_NULLABLE COLUMN_NAME
|
||||||
|
YES authentication_string
|
||||||
|
YES plugin
|
||||||
End of 5.5 tests
|
End of 5.5 tests
|
||||||
|
@ -279,6 +279,38 @@ disconnect con2;
|
|||||||
disconnect con3;
|
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
|
# 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.
|
# gone so execution of other tests won't be affected by their presence.
|
||||||
--source include/wait_until_count_sessions.inc
|
--source include/wait_until_count_sessions.inc
|
||||||
|
@ -152,129 +152,133 @@ disconnect con1;
|
|||||||
--echo # that implement add_index
|
--echo # that implement add_index
|
||||||
--echo #
|
--echo #
|
||||||
|
|
||||||
--disable_warnings
|
--echo #
|
||||||
DROP DATABASE IF EXISTS db1;
|
--echo # DISABLED due to Bug#11815600
|
||||||
DROP TABLE IF EXISTS t1;
|
--echo #
|
||||||
--enable_warnings
|
|
||||||
|
|
||||||
connect(con1,localhost,root);
|
#--disable_warnings
|
||||||
connect(con2,localhost,root);
|
#DROP DATABASE IF EXISTS db1;
|
||||||
|
#DROP TABLE IF EXISTS t1;
|
||||||
--echo # Test 1: Secondary index, should not block reads (original test case).
|
#--enable_warnings
|
||||||
|
#
|
||||||
--echo # Connection default
|
#connect(con1,localhost,root);
|
||||||
connection default;
|
#connect(con2,localhost,root);
|
||||||
CREATE DATABASE db1;
|
#
|
||||||
CREATE TABLE db1.t1(id INT NOT NULL AUTO_INCREMENT PRIMARY KEY, value INT) engine=innodb;
|
#--echo # Test 1: Secondary index, should not block reads (original test case).
|
||||||
INSERT INTO db1.t1(value) VALUES (1), (2);
|
#
|
||||||
SET DEBUG_SYNC= "alter_table_manage_keys SIGNAL manage WAIT_FOR query";
|
#--echo # Connection default
|
||||||
--echo # Sending:
|
#connection default;
|
||||||
--send ALTER TABLE db1.t1 ADD INDEX(value)
|
#CREATE DATABASE db1;
|
||||||
|
#CREATE TABLE db1.t1(id INT NOT NULL AUTO_INCREMENT PRIMARY KEY, value INT) engine=innodb;
|
||||||
--echo # Connection con1
|
#INSERT INTO db1.t1(value) VALUES (1), (2);
|
||||||
connection con1;
|
#SET DEBUG_SYNC= "alter_table_manage_keys SIGNAL manage WAIT_FOR query";
|
||||||
SET DEBUG_SYNC= "now WAIT_FOR manage";
|
#--echo # Sending:
|
||||||
# Neither of these two statements should be blocked
|
#--send ALTER TABLE db1.t1 ADD INDEX(value)
|
||||||
USE db1;
|
#
|
||||||
SELECT * FROM t1;
|
#--echo # Connection con1
|
||||||
SET DEBUG_SYNC= "now SIGNAL query";
|
#connection con1;
|
||||||
|
#SET DEBUG_SYNC= "now WAIT_FOR manage";
|
||||||
--echo # Connection default
|
# # Neither of these two statements should be blocked
|
||||||
connection default;
|
#USE db1;
|
||||||
--echo # Reaping: ALTER TABLE db1.t1 ADD INDEX(value)
|
#SELECT * FROM t1;
|
||||||
--reap
|
#SET DEBUG_SYNC= "now SIGNAL query";
|
||||||
DROP DATABASE db1;
|
#
|
||||||
|
#--echo # Connection default
|
||||||
--echo # Test 2: Primary index (implicit), should block reads.
|
#connection default;
|
||||||
|
#--echo # Reaping: ALTER TABLE db1.t1 ADD INDEX(value)
|
||||||
CREATE TABLE t1(a INT NOT NULL, b INT NOT NULL) engine=innodb;
|
#--reap
|
||||||
SET DEBUG_SYNC= "alter_table_manage_keys SIGNAL manage WAIT_FOR query";
|
#DROP DATABASE db1;
|
||||||
--echo # Sending:
|
#
|
||||||
--send ALTER TABLE t1 ADD UNIQUE INDEX(a)
|
#--echo # Test 2: Primary index (implicit), should block reads.
|
||||||
|
#
|
||||||
--echo # Connection con1
|
#CREATE TABLE t1(a INT NOT NULL, b INT NOT NULL) engine=innodb;
|
||||||
connection con1;
|
#SET DEBUG_SYNC= "alter_table_manage_keys SIGNAL manage WAIT_FOR query";
|
||||||
SET DEBUG_SYNC= "now WAIT_FOR manage";
|
#--echo # Sending:
|
||||||
USE test;
|
#--send ALTER TABLE t1 ADD UNIQUE INDEX(a)
|
||||||
--echo # Sending:
|
#
|
||||||
--send SELECT * FROM t1
|
#--echo # Connection con1
|
||||||
|
#connection con1;
|
||||||
--echo # Connection con2
|
#SET DEBUG_SYNC= "now WAIT_FOR manage";
|
||||||
connection con2;
|
#USE test;
|
||||||
--echo # Waiting for SELECT to be blocked by the metadata lock on t1
|
#--echo # Sending:
|
||||||
let $wait_condition= SELECT COUNT(*)= 1 FROM information_schema.processlist
|
#--send SELECT * FROM t1
|
||||||
WHERE state= 'Waiting for table metadata lock'
|
#
|
||||||
AND info='SELECT * FROM t1';
|
#--echo # Connection con2
|
||||||
--source include/wait_condition.inc
|
#connection con2;
|
||||||
SET DEBUG_SYNC= "now SIGNAL query";
|
#--echo # Waiting for SELECT to be blocked by the metadata lock on t1
|
||||||
|
#let $wait_condition= SELECT COUNT(*)= 1 FROM information_schema.processlist
|
||||||
--echo # Connection default
|
# WHERE state= 'Waiting for table metadata lock'
|
||||||
connection default;
|
# AND info='SELECT * FROM t1';
|
||||||
--echo # Reaping: ALTER TABLE t1 ADD UNIQUE INDEX(a)
|
#--source include/wait_condition.inc
|
||||||
--reap
|
#SET DEBUG_SYNC= "now SIGNAL query";
|
||||||
|
#
|
||||||
--echo # Connection con1
|
#--echo # Connection default
|
||||||
connection con1;
|
#connection default;
|
||||||
--echo # Reaping: SELECT * FROM t1
|
#--echo # Reaping: ALTER TABLE t1 ADD UNIQUE INDEX(a)
|
||||||
--reap
|
#--reap
|
||||||
|
#
|
||||||
--echo # Test 3: Primary index (explicit), should block reads.
|
#--echo # Connection con1
|
||||||
|
#connection con1;
|
||||||
--echo # Connection default
|
#--echo # Reaping: SELECT * FROM t1
|
||||||
connection default;
|
#--reap
|
||||||
ALTER TABLE t1 DROP INDEX a;
|
#
|
||||||
SET DEBUG_SYNC= "alter_table_manage_keys SIGNAL manage WAIT_FOR query";
|
#--echo # Test 3: Primary index (explicit), should block reads.
|
||||||
--echo # Sending:
|
#
|
||||||
--send ALTER TABLE t1 ADD PRIMARY KEY (a)
|
#--echo # Connection default
|
||||||
|
#connection default;
|
||||||
--echo # Connection con1
|
#ALTER TABLE t1 DROP INDEX a;
|
||||||
connection con1;
|
#SET DEBUG_SYNC= "alter_table_manage_keys SIGNAL manage WAIT_FOR query";
|
||||||
SET DEBUG_SYNC= "now WAIT_FOR manage";
|
#--echo # Sending:
|
||||||
--echo # Sending:
|
#--send ALTER TABLE t1 ADD PRIMARY KEY (a)
|
||||||
--send SELECT * FROM t1
|
#
|
||||||
|
#--echo # Connection con1
|
||||||
--echo # Connection con2
|
#connection con1;
|
||||||
connection con2;
|
#SET DEBUG_SYNC= "now WAIT_FOR manage";
|
||||||
--echo # Waiting for SELECT to be blocked by the metadata lock on t1
|
#--echo # Sending:
|
||||||
let $wait_condition= SELECT COUNT(*)= 1 FROM information_schema.processlist
|
#--send SELECT * FROM t1
|
||||||
WHERE state= 'Waiting for table metadata lock'
|
#
|
||||||
AND info='SELECT * FROM t1';
|
#--echo # Connection con2
|
||||||
--source include/wait_condition.inc
|
#connection con2;
|
||||||
SET DEBUG_SYNC= "now SIGNAL query";
|
#--echo # Waiting for SELECT to be blocked by the metadata lock on t1
|
||||||
|
#let $wait_condition= SELECT COUNT(*)= 1 FROM information_schema.processlist
|
||||||
--echo # Connection default
|
# WHERE state= 'Waiting for table metadata lock'
|
||||||
connection default;
|
# AND info='SELECT * FROM t1';
|
||||||
--echo # Reaping: ALTER TABLE t1 ADD PRIMARY KEY (a)
|
#--source include/wait_condition.inc
|
||||||
--reap
|
#SET DEBUG_SYNC= "now SIGNAL query";
|
||||||
|
#
|
||||||
--echo # Connection con1
|
#--echo # Connection default
|
||||||
connection con1;
|
#connection default;
|
||||||
--echo # Reaping: SELECT * FROM t1
|
#--echo # Reaping: ALTER TABLE t1 ADD PRIMARY KEY (a)
|
||||||
--reap
|
#--reap
|
||||||
|
#
|
||||||
--echo # Test 4: Secondary unique index, should not block reads.
|
#--echo # Connection con1
|
||||||
|
#connection con1;
|
||||||
--echo # Connection default
|
#--echo # Reaping: SELECT * FROM t1
|
||||||
connection default;
|
#--reap
|
||||||
SET DEBUG_SYNC= "alter_table_manage_keys SIGNAL manage WAIT_FOR query";
|
#
|
||||||
--echo # Sending:
|
#--echo # Test 4: Secondary unique index, should not block reads.
|
||||||
--send ALTER TABLE t1 ADD UNIQUE (b)
|
#
|
||||||
|
#--echo # Connection default
|
||||||
--echo # Connection con1
|
#connection default;
|
||||||
connection con1;
|
#SET DEBUG_SYNC= "alter_table_manage_keys SIGNAL manage WAIT_FOR query";
|
||||||
SET DEBUG_SYNC= "now WAIT_FOR manage";
|
#--echo # Sending:
|
||||||
SELECT * FROM t1;
|
#--send ALTER TABLE t1 ADD UNIQUE (b)
|
||||||
SET DEBUG_SYNC= "now SIGNAL query";
|
#
|
||||||
|
#--echo # Connection con1
|
||||||
--echo # Connection default
|
#connection con1;
|
||||||
connection default;
|
#SET DEBUG_SYNC= "now WAIT_FOR manage";
|
||||||
--echo # Reaping: ALTER TABLE t1 ADD UNIQUE (b)
|
#SELECT * FROM t1;
|
||||||
--reap
|
#SET DEBUG_SYNC= "now SIGNAL query";
|
||||||
|
#
|
||||||
disconnect con1;
|
#--echo # Connection default
|
||||||
disconnect con2;
|
#connection default;
|
||||||
SET DEBUG_SYNC= "RESET";
|
#--echo # Reaping: ALTER TABLE t1 ADD UNIQUE (b)
|
||||||
DROP TABLE t1;
|
#--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
|
# Check that all connections opened by test cases in this file are really
|
||||||
|
@ -151,6 +151,41 @@ where TABLE_SCHEMA ='mysqltest_LC2';
|
|||||||
use test;
|
use test;
|
||||||
drop database mysqltest_LC2;
|
drop database mysqltest_LC2;
|
||||||
|
|
||||||
|
|
||||||
|
--echo #
|
||||||
|
--echo # Bug #11758687: 50924: object names not resolved correctly
|
||||||
|
--echo # on lctn2 systems
|
||||||
|
--echo #
|
||||||
|
|
||||||
|
CREATE DATABASE BUP_XPFM_COMPAT_DB2;
|
||||||
|
|
||||||
|
CREATE TABLE BUP_XPFM_COMPAT_DB2.TABLE2 (c13 INT) DEFAULT CHARSET latin1;
|
||||||
|
CREATE TABLE BUP_XPFM_COMPAT_DB2.table1 (c13 INT) DEFAULT CHARSET latin1;
|
||||||
|
CREATE TABLE bup_xpfm_compat_db2.table3 (c13 INT) DEFAULT CHARSET latin1;
|
||||||
|
|
||||||
|
delimiter |;
|
||||||
|
#
|
||||||
|
CREATE TRIGGER BUP_XPFM_COMPAT_DB2.trigger1 AFTER INSERT
|
||||||
|
ON BUP_XPFM_COMPAT_DB2.table1 FOR EACH ROW
|
||||||
|
update BUP_XPFM_COMPAT_DB2.table1 set c13=12;
|
||||||
|
|
|
||||||
|
CREATE TRIGGER BUP_XPFM_COMPAT_DB2.TRIGGER2 AFTER INSERT
|
||||||
|
ON BUP_XPFM_COMPAT_DB2.TABLE2 FOR EACH ROW
|
||||||
|
update BUP_XPFM_COMPAT_DB2.table1 set c13=12;
|
||||||
|
|
|
||||||
|
CREATE TRIGGER BUP_XPFM_COMPAT_DB2.TrigGer3 AFTER INSERT
|
||||||
|
ON BUP_XPFM_COMPAT_DB2.TaBle3 FOR EACH ROW
|
||||||
|
update BUP_XPFM_COMPAT_DB2.table1 set c13=12;
|
||||||
|
|
|
||||||
|
delimiter ;|
|
||||||
|
|
||||||
|
SELECT trigger_schema, trigger_name, event_object_table FROM
|
||||||
|
INFORMATION_SCHEMA.TRIGGERS
|
||||||
|
WHERE trigger_schema COLLATE utf8_bin = 'BUP_XPFM_COMPAT_DB2'
|
||||||
|
ORDER BY trigger_schema, trigger_name;
|
||||||
|
|
||||||
|
DROP DATABASE BUP_XPFM_COMPAT_DB2;
|
||||||
|
|
||||||
--echo # End of 5.1 tests
|
--echo # End of 5.1 tests
|
||||||
|
|
||||||
|
|
||||||
|
@ -490,4 +490,26 @@ SELECT IS_NULLABLE, COLUMN_NAME FROM INFORMATION_SCHEMA.COLUMNS WHERE
|
|||||||
TABLE_SCHEMA='mysql'
|
TABLE_SCHEMA='mysql'
|
||||||
ORDER BY COLUMN_NAME;
|
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
|
--echo End of 5.5 tests
|
||||||
|
@ -642,6 +642,7 @@ drop procedure mysql.die;
|
|||||||
|
|
||||||
ALTER TABLE user ADD plugin char(64) DEFAULT '', ADD authentication_string TEXT;
|
ALTER TABLE user ADD plugin char(64) DEFAULT '', ADD authentication_string TEXT;
|
||||||
ALTER TABLE user MODIFY plugin char(64) DEFAULT '';
|
ALTER TABLE user MODIFY plugin char(64) DEFAULT '';
|
||||||
|
ALTER TABLE user MODIFY authentication_string TEXT;
|
||||||
|
|
||||||
-- Need to pre-fill mysql.proxies_priv with access for root even when upgrading from
|
-- Need to pre-fill mysql.proxies_priv with access for root even when upgrading from
|
||||||
-- older versions
|
-- older versions
|
||||||
|
@ -3556,6 +3556,12 @@ int get_all_tables(THD *thd, TABLE_LIST *tables, COND *cond)
|
|||||||
it.rewind(); /* To get access to new elements in basis list */
|
it.rewind(); /* To get access to new elements in basis list */
|
||||||
while ((db_name= it++))
|
while ((db_name= it++))
|
||||||
{
|
{
|
||||||
|
LEX_STRING orig_db_name;
|
||||||
|
|
||||||
|
/* db_name can be changed in make_table_list() func */
|
||||||
|
if (!thd->make_lex_string(&orig_db_name, db_name->str,
|
||||||
|
db_name->length, FALSE))
|
||||||
|
goto err;
|
||||||
#ifndef NO_EMBEDDED_ACCESS_CHECKS
|
#ifndef NO_EMBEDDED_ACCESS_CHECKS
|
||||||
if (!(check_access(thd, SELECT_ACL, db_name->str,
|
if (!(check_access(thd, SELECT_ACL, db_name->str,
|
||||||
&thd->col_access, NULL, 0, 1) ||
|
&thd->col_access, NULL, 0, 1) ||
|
||||||
@ -3620,17 +3626,13 @@ int get_all_tables(THD *thd, TABLE_LIST *tables, COND *cond)
|
|||||||
}
|
}
|
||||||
|
|
||||||
int res;
|
int res;
|
||||||
LEX_STRING tmp_lex_string, orig_db_name;
|
LEX_STRING tmp_lex_string;
|
||||||
/*
|
/*
|
||||||
Set the parent lex of 'sel' because it is needed by
|
Set the parent lex of 'sel' because it is needed by
|
||||||
sel.init_query() which is called inside make_table_list.
|
sel.init_query() which is called inside make_table_list.
|
||||||
*/
|
*/
|
||||||
thd->no_warnings_for_error= 1;
|
thd->no_warnings_for_error= 1;
|
||||||
sel.parent_lex= lex;
|
sel.parent_lex= lex;
|
||||||
/* db_name can be changed in make_table_list() func */
|
|
||||||
if (!thd->make_lex_string(&orig_db_name, db_name->str,
|
|
||||||
db_name->length, FALSE))
|
|
||||||
goto err;
|
|
||||||
if (make_table_list(thd, &sel, db_name, table_name))
|
if (make_table_list(thd, &sel, db_name, table_name))
|
||||||
goto err;
|
goto err;
|
||||||
TABLE_LIST *show_table_list= sel.table_list.first;
|
TABLE_LIST *show_table_list= sel.table_list.first;
|
||||||
|
@ -2607,10 +2607,8 @@ innobase_alter_table_flags(
|
|||||||
uint flags)
|
uint flags)
|
||||||
{
|
{
|
||||||
return(HA_INPLACE_ADD_INDEX_NO_READ_WRITE
|
return(HA_INPLACE_ADD_INDEX_NO_READ_WRITE
|
||||||
| HA_INPLACE_ADD_INDEX_NO_WRITE
|
|
||||||
| HA_INPLACE_DROP_INDEX_NO_READ_WRITE
|
| HA_INPLACE_DROP_INDEX_NO_READ_WRITE
|
||||||
| HA_INPLACE_ADD_UNIQUE_INDEX_NO_READ_WRITE
|
| HA_INPLACE_ADD_UNIQUE_INDEX_NO_READ_WRITE
|
||||||
| HA_INPLACE_ADD_UNIQUE_INDEX_NO_WRITE
|
|
||||||
| HA_INPLACE_DROP_UNIQUE_INDEX_NO_READ_WRITE
|
| HA_INPLACE_DROP_UNIQUE_INDEX_NO_READ_WRITE
|
||||||
| HA_INPLACE_ADD_PK_INDEX_NO_READ_WRITE);
|
| HA_INPLACE_ADD_PK_INDEX_NO_READ_WRITE);
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user