List:Commits« Previous MessageNext Message »
From:Alexey Botchkov Date:August 28 2008 6:23am
Subject:bzr commit into mysql-6.0 branch (holyfoot:2807)
View as plain text  
#At file:///home/hf/work/mysql_common/60falcon/

 2807 Alexey Botchkov	2008-08-28 [merge]
      mering
removed:
  mysql-test/r/innodb-autoinc.result
  mysql-test/r/innodb_bug34300.result
  mysql-test/t/innodb-autoinc.test
  mysql-test/t/innodb_bug34300.test
added:
  mysql-test/r/innodb-autoinc.result
  mysql-test/r/innodb_bug34300.result
  mysql-test/suite/rpl/t/rpl_row_err_daisychain-master.opt
  mysql-test/suite/rpl/t/rpl_row_err_daisychain-slave.opt
  mysql-test/suite/rpl/t/rpl_truncate_7ndb_2-master.opt
  mysql-test/t/innodb-autoinc.test
  mysql-test/t/innodb_bug34300.test
modified:
  mysql-test/r/have_utf8.require
  mysql-test/r/subselect.result
  mysql-test/r/subselect_no_mat.result
  mysql-test/r/subselect_no_opts.result
  mysql-test/r/subselect_no_semijoin.result
  mysql-test/t/subselect.test
  sql/sql_select.cc
  strings/ctype-simple.c
  strings/ctype-sjis.c

=== modified file 'mysql-test/r/have_utf8.require'
--- a/mysql-test/r/have_utf8.require	2007-06-28 17:34:54 +0000
+++ b/mysql-test/r/have_utf8.require	2008-08-28 04:40:11 +0000
@@ -1,2 +1,2 @@
 Collation	Charset	Id	Default	Compiled	Sortlen
-utf8_general_ci	utf8	33	Yes	Yes	1
+utf8_general_ci	utf8	45	Yes	Yes	1

=== added file 'mysql-test/r/innodb-autoinc.result'
--- a/mysql-test/r/innodb-autoinc.result	1970-01-01 00:00:00 +0000
+++ b/mysql-test/r/innodb-autoinc.result	2008-08-20 22:18:33 +0000
@@ -0,0 +1,171 @@
+drop table if exists t1;
+CREATE TABLE t1 (c1 BIGINT PRIMARY KEY AUTO_INCREMENT, c2 VARCHAR(10)) ENGINE=InnoDB;
+INSERT INTO t1 VALUES (9223372036854775807, null);
+INSERT INTO t1 (c2) VALUES ('innodb');
+Got one of the listed errors
+SELECT * FROM t1;
+c1	c2
+9223372036854775807	NULL
+DROP TABLE t1;
+CREATE TABLE t1 (c1 TINYINT PRIMARY KEY AUTO_INCREMENT, c2 VARCHAR(10)) ENGINE=InnoDB;
+INSERT INTO t1 VALUES (127, null);
+INSERT INTO t1 (c2) VALUES ('innodb');
+Got one of the listed errors
+SELECT * FROM t1;
+c1	c2
+127	NULL
+DROP TABLE t1;
+CREATE TABLE t1 (c1 TINYINT UNSIGNED PRIMARY KEY AUTO_INCREMENT, c2 VARCHAR(10)) ENGINE=InnoDB;
+INSERT INTO t1 VALUES (255, null);
+INSERT INTO t1 (c2) VALUES ('innodb');
+Got one of the listed errors
+SELECT * FROM t1;
+c1	c2
+255	NULL
+DROP TABLE t1;
+CREATE TABLE t1 (c1 SMALLINT PRIMARY KEY AUTO_INCREMENT, c2 VARCHAR(10)) ENGINE=InnoDB;
+INSERT INTO t1 VALUES (32767, null);
+INSERT INTO t1 (c2) VALUES ('innodb');
+Got one of the listed errors
+SELECT * FROM t1;
+c1	c2
+32767	NULL
+DROP TABLE t1;
+CREATE TABLE t1 (c1 SMALLINT UNSIGNED PRIMARY KEY AUTO_INCREMENT, c2 VARCHAR(10)) ENGINE=InnoDB;
+INSERT INTO t1 VALUES (65535, null);
+INSERT INTO t1 (c2) VALUES ('innodb');
+Got one of the listed errors
+SELECT * FROM t1;
+c1	c2
+65535	NULL
+DROP TABLE t1;
+CREATE TABLE t1 (c1 MEDIUMINT PRIMARY KEY AUTO_INCREMENT, c2 VARCHAR(10)) ENGINE=InnoDB;
+INSERT INTO t1 VALUES (8388607, null);
+INSERT INTO t1 (c2) VALUES ('innodb');
+Got one of the listed errors
+SELECT * FROM t1;
+c1	c2
+8388607	NULL
+DROP TABLE t1;
+CREATE TABLE t1 (c1 MEDIUMINT UNSIGNED PRIMARY KEY AUTO_INCREMENT, c2 VARCHAR(10)) ENGINE=InnoDB;
+INSERT INTO t1 VALUES (16777215, null);
+INSERT INTO t1 (c2) VALUES ('innodb');
+Got one of the listed errors
+SELECT * FROM t1;
+c1	c2
+16777215	NULL
+DROP TABLE t1;
+CREATE TABLE t1 (c1 INT PRIMARY KEY AUTO_INCREMENT, c2 VARCHAR(10)) ENGINE=InnoDB;
+INSERT INTO t1 VALUES (2147483647, null);
+INSERT INTO t1 (c2) VALUES ('innodb');
+Got one of the listed errors
+SELECT * FROM t1;
+c1	c2
+2147483647	NULL
+DROP TABLE t1;
+CREATE TABLE t1 (c1 INT UNSIGNED PRIMARY KEY AUTO_INCREMENT, c2 VARCHAR(10)) ENGINE=InnoDB;
+INSERT INTO t1 VALUES (4294967295, null);
+INSERT INTO t1 (c2) VALUES ('innodb');
+Got one of the listed errors
+SELECT * FROM t1;
+c1	c2
+4294967295	NULL
+DROP TABLE t1;
+CREATE TABLE t1 (c1 BIGINT PRIMARY KEY AUTO_INCREMENT, c2 VARCHAR(10)) ENGINE=InnoDB;
+INSERT INTO t1 VALUES (9223372036854775807, null);
+INSERT INTO t1 (c2) VALUES ('innodb');
+Got one of the listed errors
+SELECT * FROM t1;
+c1	c2
+9223372036854775807	NULL
+DROP TABLE t1;
+CREATE TABLE t1 (c1 BIGINT UNSIGNED PRIMARY KEY AUTO_INCREMENT, c2 VARCHAR(10)) ENGINE=InnoDB;
+INSERT INTO t1 VALUES (18446744073709551615, null);
+INSERT INTO t1 (c2) VALUES ('innodb');
+Got one of the listed errors
+SELECT * FROM t1;
+c1	c2
+18446744073709551615	NULL
+DROP TABLE t1;
+CREATE TABLE t1(c1 INT PRIMARY KEY AUTO_INCREMENT) ENGINE=InnoDB;
+INSERT INTO t1 VALUES (1), (2), (3);
+INSERT INTO t1 VALUES (NULL), (NULL), (NULL);
+SELECT c1 FROM t1;
+c1
+1
+2
+3
+4
+5
+6
+SHOW CREATE TABLE t1;
+Table	Create Table
+t1	CREATE TABLE `t1` (
+  `c1` int(11) NOT NULL AUTO_INCREMENT,
+  PRIMARY KEY (`c1`)
+) ENGINE=InnoDB AUTO_INCREMENT=7 DEFAULT CHARSET=latin1
+TRUNCATE TABLE t1;
+SHOW CREATE TABLE t1;
+Table	Create Table
+t1	CREATE TABLE `t1` (
+  `c1` int(11) NOT NULL AUTO_INCREMENT,
+  PRIMARY KEY (`c1`)
+) ENGINE=InnoDB DEFAULT CHARSET=latin1
+INSERT INTO t1 VALUES (1), (2), (3);
+INSERT INTO t1 VALUES (NULL), (NULL), (NULL);
+SELECT c1 FROM t1;
+c1
+1
+2
+3
+4
+5
+6
+SHOW CREATE TABLE t1;
+Table	Create Table
+t1	CREATE TABLE `t1` (
+  `c1` int(11) NOT NULL AUTO_INCREMENT,
+  PRIMARY KEY (`c1`)
+) ENGINE=InnoDB AUTO_INCREMENT=7 DEFAULT CHARSET=latin1
+DROP TABLE t1;
+CREATE TABLE t1(c1 INT PRIMARY KEY AUTO_INCREMENT) ENGINE=InnoDB;
+INSERT INTO t1 VALUES (1), (2), (3);
+INSERT INTO t1 VALUES (NULL), (NULL), (NULL);
+SELECT c1 FROM t1;
+c1
+1
+2
+3
+4
+5
+6
+SHOW CREATE TABLE t1;
+Table	Create Table
+t1	CREATE TABLE `t1` (
+  `c1` int(11) NOT NULL AUTO_INCREMENT,
+  PRIMARY KEY (`c1`)
+) ENGINE=InnoDB AUTO_INCREMENT=7 DEFAULT CHARSET=latin1
+DELETE FROM t1;
+SHOW CREATE TABLE t1;
+Table	Create Table
+t1	CREATE TABLE `t1` (
+  `c1` int(11) NOT NULL AUTO_INCREMENT,
+  PRIMARY KEY (`c1`)
+) ENGINE=InnoDB AUTO_INCREMENT=7 DEFAULT CHARSET=latin1
+INSERT INTO t1 VALUES (1), (2), (3);
+INSERT INTO t1 VALUES (NULL), (NULL), (NULL);
+SELECT c1 FROM t1;
+c1
+1
+2
+3
+7
+8
+9
+SHOW CREATE TABLE t1;
+Table	Create Table
+t1	CREATE TABLE `t1` (
+  `c1` int(11) NOT NULL AUTO_INCREMENT,
+  PRIMARY KEY (`c1`)
+) ENGINE=InnoDB AUTO_INCREMENT=10 DEFAULT CHARSET=latin1
+DROP TABLE t1;

=== removed file 'mysql-test/r/innodb-autoinc.result'
--- a/mysql-test/r/innodb-autoinc.result	2008-08-21 23:38:19 +0000
+++ b/mysql-test/r/innodb-autoinc.result	1970-01-01 00:00:00 +0000
@@ -1,171 +0,0 @@
-drop table if exists t1;
-CREATE TABLE t1 (c1 BIGINT PRIMARY KEY AUTO_INCREMENT, c2 VARCHAR(10)) ENGINE=InnoDB;
-INSERT INTO t1 VALUES (9223372036854775807, null);
-INSERT INTO t1 (c2) VALUES ('innodb');
-Got one of the listed errors
-SELECT * FROM t1;
-c1	c2
-9223372036854775807	NULL
-DROP TABLE t1;
-CREATE TABLE t1 (c1 TINYINT PRIMARY KEY AUTO_INCREMENT, c2 VARCHAR(10)) ENGINE=InnoDB;
-INSERT INTO t1 VALUES (127, null);
-INSERT INTO t1 (c2) VALUES ('innodb');
-Got one of the listed errors
-SELECT * FROM t1;
-c1	c2
-127	NULL
-DROP TABLE t1;
-CREATE TABLE t1 (c1 TINYINT UNSIGNED PRIMARY KEY AUTO_INCREMENT, c2 VARCHAR(10)) ENGINE=InnoDB;
-INSERT INTO t1 VALUES (255, null);
-INSERT INTO t1 (c2) VALUES ('innodb');
-Got one of the listed errors
-SELECT * FROM t1;
-c1	c2
-255	NULL
-DROP TABLE t1;
-CREATE TABLE t1 (c1 SMALLINT PRIMARY KEY AUTO_INCREMENT, c2 VARCHAR(10)) ENGINE=InnoDB;
-INSERT INTO t1 VALUES (32767, null);
-INSERT INTO t1 (c2) VALUES ('innodb');
-Got one of the listed errors
-SELECT * FROM t1;
-c1	c2
-32767	NULL
-DROP TABLE t1;
-CREATE TABLE t1 (c1 SMALLINT UNSIGNED PRIMARY KEY AUTO_INCREMENT, c2 VARCHAR(10)) ENGINE=InnoDB;
-INSERT INTO t1 VALUES (65535, null);
-INSERT INTO t1 (c2) VALUES ('innodb');
-Got one of the listed errors
-SELECT * FROM t1;
-c1	c2
-65535	NULL
-DROP TABLE t1;
-CREATE TABLE t1 (c1 MEDIUMINT PRIMARY KEY AUTO_INCREMENT, c2 VARCHAR(10)) ENGINE=InnoDB;
-INSERT INTO t1 VALUES (8388607, null);
-INSERT INTO t1 (c2) VALUES ('innodb');
-Got one of the listed errors
-SELECT * FROM t1;
-c1	c2
-8388607	NULL
-DROP TABLE t1;
-CREATE TABLE t1 (c1 MEDIUMINT UNSIGNED PRIMARY KEY AUTO_INCREMENT, c2 VARCHAR(10)) ENGINE=InnoDB;
-INSERT INTO t1 VALUES (16777215, null);
-INSERT INTO t1 (c2) VALUES ('innodb');
-Got one of the listed errors
-SELECT * FROM t1;
-c1	c2
-16777215	NULL
-DROP TABLE t1;
-CREATE TABLE t1 (c1 INT PRIMARY KEY AUTO_INCREMENT, c2 VARCHAR(10)) ENGINE=InnoDB;
-INSERT INTO t1 VALUES (2147483647, null);
-INSERT INTO t1 (c2) VALUES ('innodb');
-Got one of the listed errors
-SELECT * FROM t1;
-c1	c2
-2147483647	NULL
-DROP TABLE t1;
-CREATE TABLE t1 (c1 INT UNSIGNED PRIMARY KEY AUTO_INCREMENT, c2 VARCHAR(10)) ENGINE=InnoDB;
-INSERT INTO t1 VALUES (4294967295, null);
-INSERT INTO t1 (c2) VALUES ('innodb');
-Got one of the listed errors
-SELECT * FROM t1;
-c1	c2
-4294967295	NULL
-DROP TABLE t1;
-CREATE TABLE t1 (c1 BIGINT PRIMARY KEY AUTO_INCREMENT, c2 VARCHAR(10)) ENGINE=InnoDB;
-INSERT INTO t1 VALUES (9223372036854775807, null);
-INSERT INTO t1 (c2) VALUES ('innodb');
-Got one of the listed errors
-SELECT * FROM t1;
-c1	c2
-9223372036854775807	NULL
-DROP TABLE t1;
-CREATE TABLE t1 (c1 BIGINT UNSIGNED PRIMARY KEY AUTO_INCREMENT, c2 VARCHAR(10)) ENGINE=InnoDB;
-INSERT INTO t1 VALUES (18446744073709551615, null);
-INSERT INTO t1 (c2) VALUES ('innodb');
-Got one of the listed errors
-SELECT * FROM t1;
-c1	c2
-18446744073709551615	NULL
-DROP TABLE t1;
-CREATE TABLE t1(c1 INT PRIMARY KEY AUTO_INCREMENT) ENGINE=InnoDB;
-INSERT INTO t1 VALUES (1), (2), (3);
-INSERT INTO t1 VALUES (NULL), (NULL), (NULL);
-SELECT c1 FROM t1;
-c1
-1
-2
-3
-4
-5
-6
-SHOW CREATE TABLE t1;
-Table	Create Table
-t1	CREATE TABLE `t1` (
-  `c1` int(11) NOT NULL AUTO_INCREMENT,
-  PRIMARY KEY (`c1`)
-) ENGINE=InnoDB AUTO_INCREMENT=7 DEFAULT CHARSET=latin1
-TRUNCATE TABLE t1;
-SHOW CREATE TABLE t1;
-Table	Create Table
-t1	CREATE TABLE `t1` (
-  `c1` int(11) NOT NULL AUTO_INCREMENT,
-  PRIMARY KEY (`c1`)
-) ENGINE=InnoDB DEFAULT CHARSET=latin1
-INSERT INTO t1 VALUES (1), (2), (3);
-INSERT INTO t1 VALUES (NULL), (NULL), (NULL);
-SELECT c1 FROM t1;
-c1
-1
-2
-3
-4
-5
-6
-SHOW CREATE TABLE t1;
-Table	Create Table
-t1	CREATE TABLE `t1` (
-  `c1` int(11) NOT NULL AUTO_INCREMENT,
-  PRIMARY KEY (`c1`)
-) ENGINE=InnoDB AUTO_INCREMENT=7 DEFAULT CHARSET=latin1
-DROP TABLE t1;
-CREATE TABLE t1(c1 INT PRIMARY KEY AUTO_INCREMENT) ENGINE=InnoDB;
-INSERT INTO t1 VALUES (1), (2), (3);
-INSERT INTO t1 VALUES (NULL), (NULL), (NULL);
-SELECT c1 FROM t1;
-c1
-1
-2
-3
-4
-5
-6
-SHOW CREATE TABLE t1;
-Table	Create Table
-t1	CREATE TABLE `t1` (
-  `c1` int(11) NOT NULL AUTO_INCREMENT,
-  PRIMARY KEY (`c1`)
-) ENGINE=InnoDB AUTO_INCREMENT=7 DEFAULT CHARSET=latin1
-DELETE FROM t1;
-SHOW CREATE TABLE t1;
-Table	Create Table
-t1	CREATE TABLE `t1` (
-  `c1` int(11) NOT NULL AUTO_INCREMENT,
-  PRIMARY KEY (`c1`)
-) ENGINE=InnoDB AUTO_INCREMENT=7 DEFAULT CHARSET=latin1
-INSERT INTO t1 VALUES (1), (2), (3);
-INSERT INTO t1 VALUES (NULL), (NULL), (NULL);
-SELECT c1 FROM t1;
-c1
-1
-2
-3
-7
-8
-9
-SHOW CREATE TABLE t1;
-Table	Create Table
-t1	CREATE TABLE `t1` (
-  `c1` int(11) NOT NULL AUTO_INCREMENT,
-  PRIMARY KEY (`c1`)
-) ENGINE=InnoDB AUTO_INCREMENT=10 DEFAULT CHARSET=latin1
-DROP TABLE t1;

=== added file 'mysql-test/r/innodb_bug34300.result'
--- a/mysql-test/r/innodb_bug34300.result	1970-01-01 00:00:00 +0000
+++ b/mysql-test/r/innodb_bug34300.result	2008-08-20 22:18:33 +0000
@@ -0,0 +1,4 @@
+f4	f8
+xxx	zzz
+f4	f8
+xxx	zzz

=== removed file 'mysql-test/r/innodb_bug34300.result'
--- a/mysql-test/r/innodb_bug34300.result	2008-06-12 00:08:07 +0000
+++ b/mysql-test/r/innodb_bug34300.result	1970-01-01 00:00:00 +0000
@@ -1,4 +0,0 @@
-f4	f8
-xxx	zzz
-f4	f8
-xxx	zzz

=== modified file 'mysql-test/r/subselect.result'
--- a/mysql-test/r/subselect.result	2008-08-16 15:22:47 +0000
+++ b/mysql-test/r/subselect.result	2008-08-27 16:48:24 +0000
@@ -4620,6 +4620,45 @@ pk	a
 3	30
 2	20
 DROP TABLE t1,t2;
+CREATE TABLE t1 (a int, b int, PRIMARY KEY (a), KEY b (b));
+INSERT INTO t1 VALUES (1,NULL), (9,NULL);
+CREATE TABLE t2 (
+a int,
+b int,
+c int,
+d int,
+PRIMARY KEY (a),
+UNIQUE KEY b (b,c,d),
+KEY b_2 (b),
+KEY c (c),
+KEY d (d)
+);
+INSERT INTO t2 VALUES 
+(43, 2, 11 ,30),
+(44, 2, 12 ,30),
+(45, 1, 1  ,10000),
+(46, 1, 2  ,10000),
+(556,1, 32 ,10000);
+CREATE TABLE t3 (
+a int,
+b int,
+c int,
+PRIMARY KEY (a),
+UNIQUE KEY b (b,c),
+KEY c (c),
+KEY b_2 (b)
+);
+INSERT INTO t3 VALUES (1,1,1), (2,32,1);
+explain 
+SELECT t1.a, (SELECT 1 FROM t2 WHERE t2.b=t3.c AND t2.c=t1.a ORDER BY t2.d LIMIT 1) AS incorrect FROM t1, t3 WHERE t3.b=t1.a;
+id	select_type	table	type	possible_keys	key	key_len	ref	rows	Extra
+1	PRIMARY	t3	index	b,b_2	b	10	NULL	2	Using index
+1	PRIMARY	t1	eq_ref	PRIMARY	PRIMARY	4	test.t3.b	1	Using index
+2	DEPENDENT SUBQUERY	t2	index	b,b_2,c	d	5	NULL	1	Using where
+SELECT t1.a, (SELECT 1 FROM t2 WHERE t2.b=t3.c AND t2.c=t1.a ORDER BY t2.d LIMIT 1) AS incorrect FROM t1, t3 WHERE t3.b=t1.a;
+a	incorrect
+1	1
+DROP TABLE t1,t2,t3;
 End of 5.1 tests.
 CREATE TABLE t1( a INT );
 INSERT INTO t1 VALUES (1),(2);

=== modified file 'mysql-test/r/subselect_no_mat.result'
--- a/mysql-test/r/subselect_no_mat.result	2008-08-16 15:22:47 +0000
+++ b/mysql-test/r/subselect_no_mat.result	2008-08-27 16:48:24 +0000
@@ -4624,6 +4624,45 @@ pk	a
 3	30
 2	20
 DROP TABLE t1,t2;
+CREATE TABLE t1 (a int, b int, PRIMARY KEY (a), KEY b (b));
+INSERT INTO t1 VALUES (1,NULL), (9,NULL);
+CREATE TABLE t2 (
+a int,
+b int,
+c int,
+d int,
+PRIMARY KEY (a),
+UNIQUE KEY b (b,c,d),
+KEY b_2 (b),
+KEY c (c),
+KEY d (d)
+);
+INSERT INTO t2 VALUES 
+(43, 2, 11 ,30),
+(44, 2, 12 ,30),
+(45, 1, 1  ,10000),
+(46, 1, 2  ,10000),
+(556,1, 32 ,10000);
+CREATE TABLE t3 (
+a int,
+b int,
+c int,
+PRIMARY KEY (a),
+UNIQUE KEY b (b,c),
+KEY c (c),
+KEY b_2 (b)
+);
+INSERT INTO t3 VALUES (1,1,1), (2,32,1);
+explain 
+SELECT t1.a, (SELECT 1 FROM t2 WHERE t2.b=t3.c AND t2.c=t1.a ORDER BY t2.d LIMIT 1) AS incorrect FROM t1, t3 WHERE t3.b=t1.a;
+id	select_type	table	type	possible_keys	key	key_len	ref	rows	Extra
+1	PRIMARY	t3	index	b,b_2	b	10	NULL	2	Using index
+1	PRIMARY	t1	eq_ref	PRIMARY	PRIMARY	4	test.t3.b	1	Using index
+2	DEPENDENT SUBQUERY	t2	index	b,b_2,c	d	5	NULL	1	Using where
+SELECT t1.a, (SELECT 1 FROM t2 WHERE t2.b=t3.c AND t2.c=t1.a ORDER BY t2.d LIMIT 1) AS incorrect FROM t1, t3 WHERE t3.b=t1.a;
+a	incorrect
+1	1
+DROP TABLE t1,t2,t3;
 End of 5.1 tests.
 CREATE TABLE t1( a INT );
 INSERT INTO t1 VALUES (1),(2);

=== modified file 'mysql-test/r/subselect_no_opts.result'
--- a/mysql-test/r/subselect_no_opts.result	2008-08-16 15:22:47 +0000
+++ b/mysql-test/r/subselect_no_opts.result	2008-08-27 16:48:24 +0000
@@ -4624,6 +4624,45 @@ pk	a
 3	30
 2	20
 DROP TABLE t1,t2;
+CREATE TABLE t1 (a int, b int, PRIMARY KEY (a), KEY b (b));
+INSERT INTO t1 VALUES (1,NULL), (9,NULL);
+CREATE TABLE t2 (
+a int,
+b int,
+c int,
+d int,
+PRIMARY KEY (a),
+UNIQUE KEY b (b,c,d),
+KEY b_2 (b),
+KEY c (c),
+KEY d (d)
+);
+INSERT INTO t2 VALUES 
+(43, 2, 11 ,30),
+(44, 2, 12 ,30),
+(45, 1, 1  ,10000),
+(46, 1, 2  ,10000),
+(556,1, 32 ,10000);
+CREATE TABLE t3 (
+a int,
+b int,
+c int,
+PRIMARY KEY (a),
+UNIQUE KEY b (b,c),
+KEY c (c),
+KEY b_2 (b)
+);
+INSERT INTO t3 VALUES (1,1,1), (2,32,1);
+explain 
+SELECT t1.a, (SELECT 1 FROM t2 WHERE t2.b=t3.c AND t2.c=t1.a ORDER BY t2.d LIMIT 1) AS incorrect FROM t1, t3 WHERE t3.b=t1.a;
+id	select_type	table	type	possible_keys	key	key_len	ref	rows	Extra
+1	PRIMARY	t3	index	b,b_2	b	10	NULL	2	Using index
+1	PRIMARY	t1	eq_ref	PRIMARY	PRIMARY	4	test.t3.b	1	Using index
+2	DEPENDENT SUBQUERY	t2	index	b,b_2,c	d	5	NULL	1	Using where
+SELECT t1.a, (SELECT 1 FROM t2 WHERE t2.b=t3.c AND t2.c=t1.a ORDER BY t2.d LIMIT 1) AS incorrect FROM t1, t3 WHERE t3.b=t1.a;
+a	incorrect
+1	1
+DROP TABLE t1,t2,t3;
 End of 5.1 tests.
 CREATE TABLE t1( a INT );
 INSERT INTO t1 VALUES (1),(2);

=== modified file 'mysql-test/r/subselect_no_semijoin.result'
--- a/mysql-test/r/subselect_no_semijoin.result	2008-08-16 15:22:47 +0000
+++ b/mysql-test/r/subselect_no_semijoin.result	2008-08-27 16:48:24 +0000
@@ -4624,6 +4624,45 @@ pk	a
 3	30
 2	20
 DROP TABLE t1,t2;
+CREATE TABLE t1 (a int, b int, PRIMARY KEY (a), KEY b (b));
+INSERT INTO t1 VALUES (1,NULL), (9,NULL);
+CREATE TABLE t2 (
+a int,
+b int,
+c int,
+d int,
+PRIMARY KEY (a),
+UNIQUE KEY b (b,c,d),
+KEY b_2 (b),
+KEY c (c),
+KEY d (d)
+);
+INSERT INTO t2 VALUES 
+(43, 2, 11 ,30),
+(44, 2, 12 ,30),
+(45, 1, 1  ,10000),
+(46, 1, 2  ,10000),
+(556,1, 32 ,10000);
+CREATE TABLE t3 (
+a int,
+b int,
+c int,
+PRIMARY KEY (a),
+UNIQUE KEY b (b,c),
+KEY c (c),
+KEY b_2 (b)
+);
+INSERT INTO t3 VALUES (1,1,1), (2,32,1);
+explain 
+SELECT t1.a, (SELECT 1 FROM t2 WHERE t2.b=t3.c AND t2.c=t1.a ORDER BY t2.d LIMIT 1) AS incorrect FROM t1, t3 WHERE t3.b=t1.a;
+id	select_type	table	type	possible_keys	key	key_len	ref	rows	Extra
+1	PRIMARY	t3	index	b,b_2	b	10	NULL	2	Using index
+1	PRIMARY	t1	eq_ref	PRIMARY	PRIMARY	4	test.t3.b	1	Using index
+2	DEPENDENT SUBQUERY	t2	index	b,b_2,c	d	5	NULL	1	Using where
+SELECT t1.a, (SELECT 1 FROM t2 WHERE t2.b=t3.c AND t2.c=t1.a ORDER BY t2.d LIMIT 1) AS incorrect FROM t1, t3 WHERE t3.b=t1.a;
+a	incorrect
+1	1
+DROP TABLE t1,t2,t3;
 End of 5.1 tests.
 CREATE TABLE t1( a INT );
 INSERT INTO t1 VALUES (1),(2);

=== added file 'mysql-test/suite/rpl/t/rpl_row_err_daisychain-master.opt'
--- a/mysql-test/suite/rpl/t/rpl_row_err_daisychain-master.opt	1970-01-01 00:00:00 +0000
+++ b/mysql-test/suite/rpl/t/rpl_row_err_daisychain-master.opt	2007-06-27 12:28:02 +0000
@@ -0,0 +1 @@
+--binlog-format=row

=== added file 'mysql-test/suite/rpl/t/rpl_row_err_daisychain-slave.opt'
--- a/mysql-test/suite/rpl/t/rpl_row_err_daisychain-slave.opt	1970-01-01 00:00:00 +0000
+++ b/mysql-test/suite/rpl/t/rpl_row_err_daisychain-slave.opt	2007-06-27 12:28:02 +0000
@@ -0,0 +1 @@
+--binlog-format=statement --log-slave-updates

=== added file 'mysql-test/suite/rpl/t/rpl_truncate_7ndb_2-master.opt'
--- a/mysql-test/suite/rpl/t/rpl_truncate_7ndb_2-master.opt	1970-01-01 00:00:00 +0000
+++ b/mysql-test/suite/rpl/t/rpl_truncate_7ndb_2-master.opt	2007-06-27 12:28:02 +0000
@@ -0,0 +1 @@
+--binlog-format=mixed

=== added file 'mysql-test/t/innodb-autoinc.test'
--- a/mysql-test/t/innodb-autoinc.test	1970-01-01 00:00:00 +0000
+++ b/mysql-test/t/innodb-autoinc.test	2008-08-27 16:48:24 +0000
@@ -0,0 +1,141 @@
+-- source include/have_innodb.inc
+# embedded server ignores 'delayed', so skip this
+-- source include/not_embedded.inc
+
+--disable_warnings
+drop table if exists t1;
+--enable_warnings
+
+#
+# Bug #34335
+#
+CREATE TABLE t1 (c1 BIGINT PRIMARY KEY AUTO_INCREMENT, c2 VARCHAR(10)) ENGINE=InnoDB;
+INSERT INTO t1 VALUES (9223372036854775807, null);
+-- error ER_DUP_ENTRY,1062
+INSERT INTO t1 (c2) VALUES ('innodb');
+SELECT * FROM t1;
+DROP TABLE t1;
+#
+## Test AUTOINC overflow
+##
+
+# TINYINT
+CREATE TABLE t1 (c1 TINYINT PRIMARY KEY AUTO_INCREMENT, c2 VARCHAR(10)) ENGINE=InnoDB;
+INSERT INTO t1 VALUES (127, null);
+-- error ER_DUP_ENTRY,1062
+#-- warning ER_WARN_DATA_OUT_OF_RANGE,1264
+INSERT INTO t1 (c2) VALUES ('innodb');
+SELECT * FROM t1;
+DROP TABLE t1;
+
+CREATE TABLE t1 (c1 TINYINT UNSIGNED PRIMARY KEY AUTO_INCREMENT, c2 VARCHAR(10)) ENGINE=InnoDB;
+INSERT INTO t1 VALUES (255, null);
+-- error ER_DUP_ENTRY,1062
+#-- warning ER_WARN_DATA_OUT_OF_RANGE,1264
+INSERT INTO t1 (c2) VALUES ('innodb');
+SELECT * FROM t1;
+DROP TABLE t1;
+#
+# SMALLINT
+#
+CREATE TABLE t1 (c1 SMALLINT PRIMARY KEY AUTO_INCREMENT, c2 VARCHAR(10)) ENGINE=InnoDB;
+INSERT INTO t1 VALUES (32767, null);
+-- error ER_DUP_ENTRY,1062
+#-- warning ER_WARN_DATA_OUT_OF_RANGE,1264
+INSERT INTO t1 (c2) VALUES ('innodb');
+SELECT * FROM t1;
+DROP TABLE t1;
+
+CREATE TABLE t1 (c1 SMALLINT UNSIGNED PRIMARY KEY AUTO_INCREMENT, c2 VARCHAR(10)) ENGINE=InnoDB;
+INSERT INTO t1 VALUES (65535, null);
+-- error ER_DUP_ENTRY,1062
+#-- warning ER_WARN_DATA_OUT_OF_RANGE,1264
+INSERT INTO t1 (c2) VALUES ('innodb');
+SELECT * FROM t1;
+DROP TABLE t1;
+#
+# MEDIUMINT
+#
+CREATE TABLE t1 (c1 MEDIUMINT PRIMARY KEY AUTO_INCREMENT, c2 VARCHAR(10)) ENGINE=InnoDB;
+INSERT INTO t1 VALUES (8388607, null);
+-- error ER_DUP_ENTRY,1062
+#-- warning ER_WARN_DATA_OUT_OF_RANGE,1264
+INSERT INTO t1 (c2) VALUES ('innodb');
+SELECT * FROM t1;
+DROP TABLE t1;
+
+CREATE TABLE t1 (c1 MEDIUMINT UNSIGNED PRIMARY KEY AUTO_INCREMENT, c2 VARCHAR(10)) ENGINE=InnoDB;
+INSERT INTO t1 VALUES (16777215, null);
+-- error ER_DUP_ENTRY,1062
+#-- warning ER_WARN_DATA_OUT_OF_RANGE,1264
+INSERT INTO t1 (c2) VALUES ('innodb');
+SELECT * FROM t1;
+DROP TABLE t1;
+#
+# INT
+#
+CREATE TABLE t1 (c1 INT PRIMARY KEY AUTO_INCREMENT, c2 VARCHAR(10)) ENGINE=InnoDB;
+INSERT INTO t1 VALUES (2147483647, null);
+-- error ER_DUP_ENTRY,1062
+#-- warning ER_WARN_DATA_OUT_OF_RANGE,1264
+INSERT INTO t1 (c2) VALUES ('innodb');
+SELECT * FROM t1;
+DROP TABLE t1;
+
+CREATE TABLE t1 (c1 INT UNSIGNED PRIMARY KEY AUTO_INCREMENT, c2 VARCHAR(10)) ENGINE=InnoDB;
+INSERT INTO t1 VALUES (4294967295, null);
+-- error ER_DUP_ENTRY,1062
+INSERT INTO t1 (c2) VALUES ('innodb');
+SELECT * FROM t1;
+DROP TABLE t1;
+#
+# BIGINT
+#
+CREATE TABLE t1 (c1 BIGINT PRIMARY KEY AUTO_INCREMENT, c2 VARCHAR(10)) ENGINE=InnoDB;
+INSERT INTO t1 VALUES (9223372036854775807, null);
+-- error ER_DUP_ENTRY,1062
+#-- warning ER_WARN_DATA_OUT_OF_RANGE,1264
+INSERT INTO t1 (c2) VALUES ('innodb');
+SELECT * FROM t1;
+DROP TABLE t1;
+
+CREATE TABLE t1 (c1 BIGINT UNSIGNED PRIMARY KEY AUTO_INCREMENT, c2 VARCHAR(10)) ENGINE=InnoDB;
+INSERT INTO t1 VALUES (18446744073709551615, null);
+-- error ER_AUTOINC_READ_FAILED,1467
+INSERT INTO t1 (c2) VALUES ('innodb');
+SELECT * FROM t1;
+DROP TABLE t1;
+
+#
+# Bug 37531
+# After truncate, auto_increment behaves incorrectly for InnoDB
+#
+CREATE TABLE t1(c1 INT PRIMARY KEY AUTO_INCREMENT) ENGINE=InnoDB;
+INSERT INTO t1 VALUES (1), (2), (3);
+INSERT INTO t1 VALUES (NULL), (NULL), (NULL);
+SELECT c1 FROM t1;
+SHOW CREATE TABLE t1;
+TRUNCATE TABLE t1;
+SHOW CREATE TABLE t1;
+INSERT INTO t1 VALUES (1), (2), (3);
+INSERT INTO t1 VALUES (NULL), (NULL), (NULL);
+SELECT c1 FROM t1;
+SHOW CREATE TABLE t1;
+DROP TABLE t1;
+
+#
+# Deleting all records should not reset the AUTOINC counter.
+#
+CREATE TABLE t1(c1 INT PRIMARY KEY AUTO_INCREMENT) ENGINE=InnoDB;
+INSERT INTO t1 VALUES (1), (2), (3);
+INSERT INTO t1 VALUES (NULL), (NULL), (NULL);
+SELECT c1 FROM t1;
+SHOW CREATE TABLE t1;
+DELETE FROM t1;
+SHOW CREATE TABLE t1;
+INSERT INTO t1 VALUES (1), (2), (3);
+INSERT INTO t1 VALUES (NULL), (NULL), (NULL);
+SELECT c1 FROM t1;
+SHOW CREATE TABLE t1;
+DROP TABLE t1;
+

=== removed file 'mysql-test/t/innodb-autoinc.test'
--- a/mysql-test/t/innodb-autoinc.test	2008-08-21 23:38:19 +0000
+++ b/mysql-test/t/innodb-autoinc.test	1970-01-01 00:00:00 +0000
@@ -1,141 +0,0 @@
--- source include/have_innodb.inc
-# embedded server ignores 'delayed', so skip this
--- source include/not_embedded.inc
-
---disable_warnings
-drop table if exists t1;
---enable_warnings
-
-#
-# Bug #34335
-#
-CREATE TABLE t1 (c1 BIGINT PRIMARY KEY AUTO_INCREMENT, c2 VARCHAR(10)) ENGINE=InnoDB;
-INSERT INTO t1 VALUES (9223372036854775807, null);
--- error ER_DUP_ENTRY,1062
-INSERT INTO t1 (c2) VALUES ('innodb');
-SELECT * FROM t1;
-DROP TABLE t1;
-#
-## Test AUTOINC overflow
-##
-
-# TINYINT
-CREATE TABLE t1 (c1 TINYINT PRIMARY KEY AUTO_INCREMENT, c2 VARCHAR(10)) ENGINE=InnoDB;
-INSERT INTO t1 VALUES (127, null);
--- error ER_DUP_ENTRY,1062
-#-- warning ER_WARN_DATA_OUT_OF_RANGE,1264
-INSERT INTO t1 (c2) VALUES ('innodb');
-SELECT * FROM t1;
-DROP TABLE t1;
-
-CREATE TABLE t1 (c1 TINYINT UNSIGNED PRIMARY KEY AUTO_INCREMENT, c2 VARCHAR(10)) ENGINE=InnoDB;
-INSERT INTO t1 VALUES (255, null);
--- error ER_DUP_ENTRY,1062
-#-- warning ER_WARN_DATA_OUT_OF_RANGE,1264
-INSERT INTO t1 (c2) VALUES ('innodb');
-SELECT * FROM t1;
-DROP TABLE t1;
-#
-# SMALLINT
-#
-CREATE TABLE t1 (c1 SMALLINT PRIMARY KEY AUTO_INCREMENT, c2 VARCHAR(10)) ENGINE=InnoDB;
-INSERT INTO t1 VALUES (32767, null);
--- error ER_DUP_ENTRY,1062
-#-- warning ER_WARN_DATA_OUT_OF_RANGE,1264
-INSERT INTO t1 (c2) VALUES ('innodb');
-SELECT * FROM t1;
-DROP TABLE t1;
-
-CREATE TABLE t1 (c1 SMALLINT UNSIGNED PRIMARY KEY AUTO_INCREMENT, c2 VARCHAR(10)) ENGINE=InnoDB;
-INSERT INTO t1 VALUES (65535, null);
--- error ER_DUP_ENTRY,1062
-#-- warning ER_WARN_DATA_OUT_OF_RANGE,1264
-INSERT INTO t1 (c2) VALUES ('innodb');
-SELECT * FROM t1;
-DROP TABLE t1;
-#
-# MEDIUMINT
-#
-CREATE TABLE t1 (c1 MEDIUMINT PRIMARY KEY AUTO_INCREMENT, c2 VARCHAR(10)) ENGINE=InnoDB;
-INSERT INTO t1 VALUES (8388607, null);
--- error ER_DUP_ENTRY,1062
-#-- warning ER_WARN_DATA_OUT_OF_RANGE,1264
-INSERT INTO t1 (c2) VALUES ('innodb');
-SELECT * FROM t1;
-DROP TABLE t1;
-
-CREATE TABLE t1 (c1 MEDIUMINT UNSIGNED PRIMARY KEY AUTO_INCREMENT, c2 VARCHAR(10)) ENGINE=InnoDB;
-INSERT INTO t1 VALUES (16777215, null);
--- error ER_DUP_ENTRY,1062
-#-- warning ER_WARN_DATA_OUT_OF_RANGE,1264
-INSERT INTO t1 (c2) VALUES ('innodb');
-SELECT * FROM t1;
-DROP TABLE t1;
-#
-# INT
-#
-CREATE TABLE t1 (c1 INT PRIMARY KEY AUTO_INCREMENT, c2 VARCHAR(10)) ENGINE=InnoDB;
-INSERT INTO t1 VALUES (2147483647, null);
--- error ER_DUP_ENTRY,1062
-#-- warning ER_WARN_DATA_OUT_OF_RANGE,1264
-INSERT INTO t1 (c2) VALUES ('innodb');
-SELECT * FROM t1;
-DROP TABLE t1;
-
-CREATE TABLE t1 (c1 INT UNSIGNED PRIMARY KEY AUTO_INCREMENT, c2 VARCHAR(10)) ENGINE=InnoDB;
-INSERT INTO t1 VALUES (4294967295, null);
--- error ER_DUP_ENTRY,1062
-INSERT INTO t1 (c2) VALUES ('innodb');
-SELECT * FROM t1;
-DROP TABLE t1;
-#
-# BIGINT
-#
-CREATE TABLE t1 (c1 BIGINT PRIMARY KEY AUTO_INCREMENT, c2 VARCHAR(10)) ENGINE=InnoDB;
-INSERT INTO t1 VALUES (9223372036854775807, null);
--- error ER_DUP_ENTRY,1062
-#-- warning ER_WARN_DATA_OUT_OF_RANGE,1264
-INSERT INTO t1 (c2) VALUES ('innodb');
-SELECT * FROM t1;
-DROP TABLE t1;
-
-CREATE TABLE t1 (c1 BIGINT UNSIGNED PRIMARY KEY AUTO_INCREMENT, c2 VARCHAR(10)) ENGINE=InnoDB;
-INSERT INTO t1 VALUES (18446744073709551615, null);
--- error ER_AUTOINC_READ_FAILED,1467
-INSERT INTO t1 (c2) VALUES ('innodb');
-SELECT * FROM t1;
-DROP TABLE t1;
-
-#
-# Bug 37531
-# After truncate, auto_increment behaves incorrectly for InnoDB
-#
-CREATE TABLE t1(c1 INT PRIMARY KEY AUTO_INCREMENT) ENGINE=InnoDB;
-INSERT INTO t1 VALUES (1), (2), (3);
-INSERT INTO t1 VALUES (NULL), (NULL), (NULL);
-SELECT c1 FROM t1;
-SHOW CREATE TABLE t1;
-TRUNCATE TABLE t1;
-SHOW CREATE TABLE t1;
-INSERT INTO t1 VALUES (1), (2), (3);
-INSERT INTO t1 VALUES (NULL), (NULL), (NULL);
-SELECT c1 FROM t1;
-SHOW CREATE TABLE t1;
-DROP TABLE t1;
-
-#
-# Deleting all records should not reset the AUTOINC counter.
-#
-CREATE TABLE t1(c1 INT PRIMARY KEY AUTO_INCREMENT) ENGINE=InnoDB;
-INSERT INTO t1 VALUES (1), (2), (3);
-INSERT INTO t1 VALUES (NULL), (NULL), (NULL);
-SELECT c1 FROM t1;
-SHOW CREATE TABLE t1;
-DELETE FROM t1;
-SHOW CREATE TABLE t1;
-INSERT INTO t1 VALUES (1), (2), (3);
-INSERT INTO t1 VALUES (NULL), (NULL), (NULL);
-SELECT c1 FROM t1;
-SHOW CREATE TABLE t1;
-DROP TABLE t1;
-

=== added file 'mysql-test/t/innodb_bug34300.test'
--- a/mysql-test/t/innodb_bug34300.test	1970-01-01 00:00:00 +0000
+++ b/mysql-test/t/innodb_bug34300.test	2008-08-20 22:18:33 +0000
@@ -0,0 +1,30 @@
+#
+# Bug#34300 Tinyblob & tinytext fields currupted after export/import and alter in 5.1
+# http://bugs.mysql.com/34300
+#
+
+-- source include/have_innodb.inc
+
+-- disable_query_log
+-- disable_result_log
+
+SET @@max_allowed_packet=16777216;
+
+DROP TABLE IF EXISTS bug34300;
+CREATE TABLE bug34300 (
+  f4 TINYTEXT,
+  f6 MEDIUMTEXT,
+  f8 TINYBLOB
+) ENGINE=InnoDB;
+
+INSERT INTO bug34300 VALUES ('xxx', repeat('a', 8459264), 'zzz');
+
+-- enable_result_log
+
+SELECT f4, f8 FROM bug34300;
+
+ALTER TABLE bug34300 ADD COLUMN (f10 INT);
+
+SELECT f4, f8 FROM bug34300;
+
+DROP TABLE bug34300;

=== removed file 'mysql-test/t/innodb_bug34300.test'
--- a/mysql-test/t/innodb_bug34300.test	2008-06-12 00:08:07 +0000
+++ b/mysql-test/t/innodb_bug34300.test	1970-01-01 00:00:00 +0000
@@ -1,30 +0,0 @@
-#
-# Bug#34300 Tinyblob & tinytext fields currupted after export/import and alter in 5.1
-# http://bugs.mysql.com/34300
-#
-
--- source include/have_innodb.inc
-
--- disable_query_log
--- disable_result_log
-
-SET @@max_allowed_packet=16777216;
-
-DROP TABLE IF EXISTS bug34300;
-CREATE TABLE bug34300 (
-  f4 TINYTEXT,
-  f6 MEDIUMTEXT,
-  f8 TINYBLOB
-) ENGINE=InnoDB;
-
-INSERT INTO bug34300 VALUES ('xxx', repeat('a', 8459264), 'zzz');
-
--- enable_result_log
-
-SELECT f4, f8 FROM bug34300;
-
-ALTER TABLE bug34300 ADD COLUMN (f10 INT);
-
-SELECT f4, f8 FROM bug34300;
-
-DROP TABLE bug34300;

=== modified file 'mysql-test/t/subselect.test'
--- a/mysql-test/t/subselect.test	2008-08-16 15:22:47 +0000
+++ b/mysql-test/t/subselect.test	2008-08-27 16:48:24 +0000
@@ -3450,6 +3450,50 @@ SELECT * FROM t1
    WHERE EXISTS (SELECT DISTINCT a FROM t2 WHERE t1.a < t2.a ORDER BY b);
 DROP TABLE t1,t2;
 
+#
+# Bug #37548: result value erronously reported being NULL in certain subqueries
+#
+
+CREATE TABLE t1 (a int, b int, PRIMARY KEY (a), KEY b (b));
+
+INSERT INTO t1 VALUES (1,NULL), (9,NULL);
+
+CREATE TABLE t2 (
+  a int,
+  b int,
+  c int,
+  d int,
+  PRIMARY KEY (a),
+  UNIQUE KEY b (b,c,d),
+  KEY b_2 (b),
+  KEY c (c),
+  KEY d (d)
+);
+
+INSERT INTO t2 VALUES 
+  (43, 2, 11 ,30),
+  (44, 2, 12 ,30),
+  (45, 1, 1  ,10000),
+  (46, 1, 2  ,10000),
+  (556,1, 32 ,10000);
+
+CREATE TABLE t3 (
+  a int,
+  b int,
+  c int,
+  PRIMARY KEY (a),
+  UNIQUE KEY b (b,c),
+  KEY c (c),
+  KEY b_2 (b)
+);
+
+INSERT INTO t3 VALUES (1,1,1), (2,32,1);
+
+explain 
+SELECT t1.a, (SELECT 1 FROM t2 WHERE t2.b=t3.c AND t2.c=t1.a ORDER BY t2.d LIMIT 1) AS incorrect FROM t1, t3 WHERE t3.b=t1.a;
+SELECT t1.a, (SELECT 1 FROM t2 WHERE t2.b=t3.c AND t2.c=t1.a ORDER BY t2.d LIMIT 1) AS incorrect FROM t1, t3 WHERE t3.b=t1.a;
+
+DROP TABLE t1,t2,t3;
 --echo End of 5.1 tests.
 
 

=== modified file 'sql/sql_select.cc'
--- a/sql/sql_select.cc	2008-08-26 19:16:28 +0000
+++ b/sql/sql_select.cc	2008-08-27 16:48:24 +0000
@@ -16170,6 +16170,16 @@ test_if_skip_sort_order(JOIN_TAB *tab,OR
             table->key_read=1;
             table->file->extra(HA_EXTRA_KEYREAD);
           }
+          else if (table->key_read)
+          {
+            /*
+              Clear the covering key read flags that might have been
+              previously set for some key other than the current best_key.
+            */
+            table->key_read= 0;
+            table->file->extra(HA_EXTRA_NO_KEYREAD);
+          }
+
           table->file->ha_index_or_rnd_end();
           if (join->select_options & SELECT_DESCRIBE)
           {

=== modified file 'strings/ctype-simple.c'
--- a/strings/ctype-simple.c	2008-07-23 09:43:50 +0000
+++ b/strings/ctype-simple.c	2008-08-27 11:45:04 +0000
@@ -1825,9 +1825,9 @@ uint my_strxfrm_flag_normalize(uint flag
     for (maximum--, flags= 0, i= 0; i < MY_STRXFRM_NLEVELS; i++)
     {
       uint src_bit= 1 << i;
-      uint dst_bit= 1 << min(i, maximum);
       if (flag_lev & src_bit)
       {
+        uint dst_bit= 1 << min(i, maximum);
         flags|= dst_bit;
         flags|= (flag_dsc & dst_bit) << MY_STRXFRM_DESC_SHIFT;
         flags|= (flag_rev & dst_bit) << MY_STRXFRM_REVERSE_SHIFT;

=== modified file 'strings/ctype-sjis.c'
--- a/strings/ctype-sjis.c	2007-10-09 17:17:22 +0000
+++ b/strings/ctype-sjis.c	2008-08-28 04:40:11 +0000
@@ -4648,7 +4648,7 @@ static MY_CHARSET_HANDLER my_charset_han
 CHARSET_INFO my_charset_sjis_japanese_ci=
 {
     13,0,0,		/* number */
-    MY_CS_COMPILED|MY_CS_PRIMARY|MY_CS_STRNXFRM,	/* state      */
+    MY_CS_COMPILED|MY_CS_PRIMARY|MY_CS_STRNXFRM|MY_CS_NONASCII,	/* state */
     "sjis",		/* cs name    */
     "sjis_japanese_ci",	/* name */
     "",			/* comment    */
@@ -4682,7 +4682,7 @@ CHARSET_INFO my_charset_sjis_japanese_ci
 CHARSET_INFO my_charset_sjis_bin=
 {
     88,0,0,		/* number */
-    MY_CS_COMPILED|MY_CS_BINSORT,	/* state      */
+    MY_CS_COMPILED|MY_CS_BINSORT|MY_CS_NONASCII, /* state  */
     "sjis",		/* cs name    */
     "sjis_bin",		/* name */
     "",			/* comment    */

Thread
bzr commit into mysql-6.0 branch (holyfoot:2807) Alexey Botchkov28 Aug