diff --git a/mysql-test/r/partition.result b/mysql-test/r/partition.result index 9aa2dd418f8..77c1778fc55 100644 --- a/mysql-test/r/partition.result +++ b/mysql-test/r/partition.result @@ -2111,4 +2111,24 @@ COUNT(*) 0 DROP TABLE t1; SET SESSION SQL_MODE=DEFAULT; +# +# Bug#46198: Hang after failed ALTER TABLE on partitioned table. +# +DROP TABLE IF EXISTS t1; +CREATE TABLE t1 (s1 INT PRIMARY KEY) PARTITION BY HASH(s1); +LOCK TABLES t1 WRITE, t1 b READ; +UNLOCK TABLES; +ALTER TABLE t1 DROP PARTITION p1; +ERROR HY000: DROP PARTITION can only be used on RANGE/LIST partitions +SELECT * FROM t1; +s1 +DROP TABLE t1; +CREATE TABLE t1 (s1 VARCHAR(5) PRIMARY KEY) PARTITION BY KEY(s1); +LOCK TABLES t1 WRITE, t1 b READ; +UNLOCK TABLES; +ALTER TABLE t1 ADD COLUMN (s3 VARCHAR(5) UNIQUE); +ERROR HY000: A UNIQUE INDEX must include all columns in the table's partitioning function +SELECT * FROM t1; +s1 +DROP TABLE t1; End of 5.1 tests diff --git a/mysql-test/r/variables_debug.result b/mysql-test/r/variables_debug.result index 9cd133dddb1..89a3202b731 100644 --- a/mysql-test/r/variables_debug.result +++ b/mysql-test/r/variables_debug.result @@ -10,3 +10,10 @@ set debug= '-P'; select @@debug; @@debug T +SELECT @@session.debug, @@global.debug; +@@session.debug @@global.debug +T +SET SESSION debug = ''; +SELECT @@session.debug, @@global.debug; +@@session.debug @@global.debug + diff --git a/mysql-test/t/partition.test b/mysql-test/t/partition.test index 18b7e0d343b..4b7be00148f 100644 --- a/mysql-test/t/partition.test +++ b/mysql-test/t/partition.test @@ -2118,4 +2118,49 @@ SET SESSION SQL_MODE=DEFAULT; #SELECT 1 FROM t1 JOIN t1 AS t2 USING (a) FOR UPDATE; # #DROP TABLE t1; + +--echo # +--echo # Bug#46198: Hang after failed ALTER TABLE on partitioned table. +--echo # + +--disable_warnings +DROP TABLE IF EXISTS t1; +--enable_warnings + +# +# Case 1. +# + +CREATE TABLE t1 (s1 INT PRIMARY KEY) PARTITION BY HASH(s1); + +LOCK TABLES t1 WRITE, t1 b READ; + +UNLOCK TABLES; + +--error ER_ONLY_ON_RANGE_LIST_PARTITION +ALTER TABLE t1 DROP PARTITION p1; + +# The SELECT below used to hang in tdc_wait_for_old_versions(). +SELECT * FROM t1; + +DROP TABLE t1; + +# +# Case 2. +# + +CREATE TABLE t1 (s1 VARCHAR(5) PRIMARY KEY) PARTITION BY KEY(s1); + +LOCK TABLES t1 WRITE, t1 b READ; + +UNLOCK TABLES; + +--error ER_UNIQUE_KEY_NEED_ALL_FIELDS_IN_PF +ALTER TABLE t1 ADD COLUMN (s3 VARCHAR(5) UNIQUE); + +# The SELECT below used to hang in tdc_wait_for_old_versions(). +SELECT * FROM t1; + +DROP TABLE t1; + --echo End of 5.1 tests diff --git a/mysql-test/t/variables_debug.test b/mysql-test/t/variables_debug.test index 7dcaf246803..dac85345136 100644 --- a/mysql-test/t/variables_debug.test +++ b/mysql-test/t/variables_debug.test @@ -10,3 +10,13 @@ set debug= '+P'; select @@debug; set debug= '-P'; select @@debug; + +# +# Bug#38054: "SET SESSION debug" modifies @@global.debug variable +# + +SELECT @@session.debug, @@global.debug; + +SET SESSION debug = ''; + +SELECT @@session.debug, @@global.debug;