Loading mysql-test/r/ctype_utf8.result +8 −0 Original line number Diff line number Diff line Loading @@ -1167,3 +1167,11 @@ set @a:=null; execute my_stmt using @a; a b drop table if exists t1; CREATE TABLE t1 (t TINYTEXT CHARACTER SET utf8); INSERT INTO t1 VALUES(REPEAT('a', 100)); CREATE TEMPORARY TABLE t2 SELECT COALESCE(t) AS bug FROM t1; SELECT LENGTH(bug) FROM t2; LENGTH(bug) 100 DROP TABLE t2; DROP TABLE t1; mysql-test/t/ctype_utf8.test +10 −0 Original line number Diff line number Diff line Loading @@ -868,6 +868,16 @@ set names utf8; select distinct char(a) from t1; drop table t1; # # Bug#15581: COALESCE function truncates mutli-byte TINYTEXT values # CREATE TABLE t1 (t TINYTEXT CHARACTER SET utf8); INSERT INTO t1 VALUES(REPEAT('a', 100)); CREATE TEMPORARY TABLE t2 SELECT COALESCE(t) AS bug FROM t1; SELECT LENGTH(bug) FROM t2; DROP TABLE t2; DROP TABLE t1; # End of 4.1 tests # Loading sql/field.cc +3 −3 Original line number Diff line number Diff line Loading @@ -8981,11 +8981,11 @@ uint32 Field_blob::max_length() switch (packlength) { case 1: return 255; return 255 * field_charset->mbmaxlen; case 2: return 65535; return 65535 * field_charset->mbmaxlen; case 3: return 16777215; return 16777215 * field_charset->mbmaxlen; case 4: return (uint32) 4294967295U; default: Loading Loading
mysql-test/r/ctype_utf8.result +8 −0 Original line number Diff line number Diff line Loading @@ -1167,3 +1167,11 @@ set @a:=null; execute my_stmt using @a; a b drop table if exists t1; CREATE TABLE t1 (t TINYTEXT CHARACTER SET utf8); INSERT INTO t1 VALUES(REPEAT('a', 100)); CREATE TEMPORARY TABLE t2 SELECT COALESCE(t) AS bug FROM t1; SELECT LENGTH(bug) FROM t2; LENGTH(bug) 100 DROP TABLE t2; DROP TABLE t1;
mysql-test/t/ctype_utf8.test +10 −0 Original line number Diff line number Diff line Loading @@ -868,6 +868,16 @@ set names utf8; select distinct char(a) from t1; drop table t1; # # Bug#15581: COALESCE function truncates mutli-byte TINYTEXT values # CREATE TABLE t1 (t TINYTEXT CHARACTER SET utf8); INSERT INTO t1 VALUES(REPEAT('a', 100)); CREATE TEMPORARY TABLE t2 SELECT COALESCE(t) AS bug FROM t1; SELECT LENGTH(bug) FROM t2; DROP TABLE t2; DROP TABLE t1; # End of 4.1 tests # Loading
sql/field.cc +3 −3 Original line number Diff line number Diff line Loading @@ -8981,11 +8981,11 @@ uint32 Field_blob::max_length() switch (packlength) { case 1: return 255; return 255 * field_charset->mbmaxlen; case 2: return 65535; return 65535 * field_charset->mbmaxlen; case 3: return 16777215; return 16777215 * field_charset->mbmaxlen; case 4: return (uint32) 4294967295U; default: Loading