List:Commits« Previous MessageNext Message »
From:Georgi Kodinov Date:April 7 2011 9:59am
Subject:bzr push into mysql-trunk branch (Georgi.Kodinov:3334 to 3336)
View as plain text  
 3336 Georgi Kodinov	2011-04-07 [merge]
      merge mysql-5.5->mysql-trunk

    modified:
      mysql-test/r/innodb_mysql_sync.result
 3335 Georgi Kodinov	2011-04-07 [merge]
      merge mysql-5.5->mysql-trunk

    modified:
      mysql-test/r/innodb_mysql_lock.result
      mysql-test/r/innodb_mysql_sync.result
      mysql-test/r/plugin_auth.result
      mysql-test/t/innodb_mysql_lock.test
      mysql-test/t/innodb_mysql_sync.test
      mysql-test/t/plugin_auth.test
      scripts/mysql_system_tables_fix.sql
      storage/innobase/handler/ha_innodb.cc
 3334 Georgi Kodinov	2011-04-06 [merge]
      merge 5.5->trunk

    modified:
      mysql-test/r/lowercase_table2.result
      mysql-test/t/lowercase_table2.test
      sql/sql_show.cc
=== modified file 'mysql-test/r/innodb_mysql_lock.result'
--- a/mysql-test/r/innodb_mysql_lock.result	2010-06-26 20:23:28 +0000
+++ b/mysql-test/r/innodb_mysql_lock.result	2011-03-09 15:06:13 +0000
@@ -148,3 +148,25 @@ COMMIT;
 # Connection default
 DROP TABLE t1, t2;
 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;

=== modified file 'mysql-test/r/innodb_mysql_sync.result'
--- a/mysql-test/r/innodb_mysql_sync.result	2011-03-07 13:30:49 +0000
+++ b/mysql-test/r/innodb_mysql_sync.result	2011-04-07 09:41:20 +0000
@@ -94,74 +94,6 @@ SET DEBUG_SYNC= 'RESET';
 # Bug#42230 during add index, cannot do queries on storage engines
 #           that implement add_index
 #
-DROP DATABASE IF EXISTS db1;
-DROP TABLE IF EXISTS t1;
-# 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;
+#
+# DISABLED due to Bug#11815600
+#

=== modified file 'mysql-test/r/plugin_auth.result'
--- a/mysql-test/r/plugin_auth.result	2011-03-18 14:58:27 +0000
+++ b/mysql-test/r/plugin_auth.result	2011-04-07 09:55:09 +0000
@@ -403,4 +403,53 @@ ORDER BY COLUMN_NAME;
 IS_NULLABLE	COLUMN_NAME
 YES	authentication_string
 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.slave_master_info                            OK
+mysql.slave_relay_log_info                         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

=== modified file 'mysql-test/t/innodb_mysql_lock.test'
--- a/mysql-test/t/innodb_mysql_lock.test	2010-08-06 11:29:37 +0000
+++ b/mysql-test/t/innodb_mysql_lock.test	2011-03-09 15:06:13 +0000
@@ -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

=== modified file 'mysql-test/t/innodb_mysql_sync.test'
--- a/mysql-test/t/innodb_mysql_sync.test	2011-03-07 13:30:49 +0000
+++ b/mysql-test/t/innodb_mysql_sync.test	2011-03-22 13:34:04 +0000
@@ -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
-
-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
+--echo #
+--echo # DISABLED due to Bug#11815600
+--echo #
 
-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

=== modified file 'mysql-test/t/plugin_auth.test'
--- a/mysql-test/t/plugin_auth.test	2011-03-18 14:58:27 +0000
+++ b/mysql-test/t/plugin_auth.test	2011-04-07 09:55:09 +0000
@@ -491,4 +491,26 @@ SELECT IS_NULLABLE, COLUMN_NAME FROM INF
   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

=== modified file 'scripts/mysql_system_tables_fix.sql'
--- a/scripts/mysql_system_tables_fix.sql	2011-03-18 14:58:27 +0000
+++ b/scripts/mysql_system_tables_fix.sql	2011-04-07 09:55:09 +0000
@@ -644,6 +644,7 @@ drop procedure mysql.die;
 
 ALTER TABLE user ADD plugin char(64) DEFAULT '',  ADD authentication_string TEXT;
 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
 -- older versions

=== modified file 'storage/innobase/handler/ha_innodb.cc'
--- a/storage/innobase/handler/ha_innodb.cc	2011-04-04 06:17:15 +0000
+++ b/storage/innobase/handler/ha_innodb.cc	2011-04-07 09:55:09 +0000
@@ -2826,10 +2826,8 @@ innobase_alter_table_flags(
 	uint	flags)
 {
 	return(HA_INPLACE_ADD_INDEX_NO_READ_WRITE
-		| HA_INPLACE_ADD_INDEX_NO_WRITE
 		| HA_INPLACE_DROP_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_ADD_PK_INDEX_NO_READ_WRITE);
 }

No bundle (reason: useless for push emails).
Thread
bzr push into mysql-trunk branch (Georgi.Kodinov:3334 to 3336) Georgi Kodinov7 Apr