From 01072e22fe7cc5e7a53e9ea0a065ba22027d52bf Mon Sep 17 00:00:00 2001 From: Mikael Ronstrom Date: Mon, 5 Oct 2009 16:10:18 +0200 Subject: BUG#47776, Fixed character set handling, used wrong length, eventually also found that didn't need to convert to my_strnxfrm-format for column list partitioned tables, also column list partitioned tables can use multi-byte character sets in partition fields as well as where strxfrm multiplies the number of bytes in the string --- mysql-test/t/partition_innodb.test | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) (limited to 'mysql-test/t/partition_innodb.test') diff --git a/mysql-test/t/partition_innodb.test b/mysql-test/t/partition_innodb.test index c6bf0af0b6f..a8758525342 100644 --- a/mysql-test/t/partition_innodb.test +++ b/mysql-test/t/partition_innodb.test @@ -5,6 +5,36 @@ drop table if exists t1; --enable_warnings +# +# BUG#47776, Failed to update for MEMORY engine, crash for InnoDB and success for MyISAM +# +create table t1 (a varchar(5)) +engine=memory +partition by range column_list(a) +( partition p0 values less than (column_list('m')), + partition p1 values less than (column_list('za'))); +insert into t1 values ('j'); +update t1 set a = 'z' where (a >= 'j'); +drop table t1; + +create table t1 (a varchar(5)) +engine=myisam +partition by range column_list(a) +( partition p0 values less than (column_list('m')), + partition p1 values less than (column_list('za'))); +insert into t1 values ('j'); +update t1 set a = 'z' where (a >= 'j'); +drop table t1; + +create table t1 (a varchar(5)) +engine=innodb +partition by range column_list(a) +( partition p0 values less than (column_list('m')), + partition p1 values less than (column_list('za'))); +insert into t1 values ('j'); +update t1 set a = 'z' where (a >= 'j'); +drop table t1; + # # Bug#40595: Non-matching rows not released with READ-COMMITTED on tables # with partitions -- cgit v1.2.1 From c90669c4d423ba46f09aadde5ff6662e8a63a1c0 Mon Sep 17 00:00:00 2001 From: Mikael Ronstrom Date: Fri, 16 Oct 2009 16:16:06 +0200 Subject: Fixed removal of column_list keyword for VALUES part, retained for PARTITION BY RANGE/LIST COLUMN_LIST, not entirely working yet --- mysql-test/t/partition_innodb.test | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) (limited to 'mysql-test/t/partition_innodb.test') diff --git a/mysql-test/t/partition_innodb.test b/mysql-test/t/partition_innodb.test index a8758525342..629792a7153 100644 --- a/mysql-test/t/partition_innodb.test +++ b/mysql-test/t/partition_innodb.test @@ -11,8 +11,8 @@ drop table if exists t1; create table t1 (a varchar(5)) engine=memory partition by range column_list(a) -( partition p0 values less than (column_list('m')), - partition p1 values less than (column_list('za'))); +( partition p0 values less than ('m'), + partition p1 values less than ('za')); insert into t1 values ('j'); update t1 set a = 'z' where (a >= 'j'); drop table t1; @@ -20,8 +20,8 @@ drop table t1; create table t1 (a varchar(5)) engine=myisam partition by range column_list(a) -( partition p0 values less than (column_list('m')), - partition p1 values less than (column_list('za'))); +( partition p0 values less than ('m'), + partition p1 values less than ('za')); insert into t1 values ('j'); update t1 set a = 'z' where (a >= 'j'); drop table t1; @@ -29,8 +29,8 @@ drop table t1; create table t1 (a varchar(5)) engine=innodb partition by range column_list(a) -( partition p0 values less than (column_list('m')), - partition p1 values less than (column_list('za'))); +( partition p0 values less than ('m'), + partition p1 values less than ('za')); insert into t1 values ('j'); update t1 set a = 'z' where (a >= 'j'); drop table t1; -- cgit v1.2.1