From 42738f5f4d5c1cef5a9166ff496827b2abd6344c Mon Sep 17 00:00:00 2001 From: Alexander Barkov Date: Mon, 17 Jul 2023 06:52:18 +0400 Subject: [PATCH] MDEV-30681 SIGFPE / UBSAN runtime error: division by zero in String::needs_conversion on ALTER The problem was earlier fixed by MDEV-30805. Adding an MTR test only. --- mysql-test/main/partition_charset.result | 12 ++++++++++++ mysql-test/main/partition_charset.test | 11 +++++++++++ 2 files changed, 23 insertions(+) diff --git a/mysql-test/main/partition_charset.result b/mysql-test/main/partition_charset.result index a0019dd8fc3..d9e496c475e 100644 --- a/mysql-test/main/partition_charset.result +++ b/mysql-test/main/partition_charset.result @@ -39,5 +39,17 @@ t1 CREATE TABLE `t1` ( (PARTITION `p0` VALUES LESS THAN ('a') ENGINE = MyISAM) DROP TABLE t1; # +# MDEV-30681 SIGFPE / UBSAN runtime error: division by zero in String::needs_conversion on ALTER +# +CREATE TABLE t1 (a BINARY (10)) PARTITION BY LIST COLUMNS (a) (PARTITION p VALUES IN (0xFF)); +SELECT COLUMN_TYPE, COLLATION_NAME FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME='t1'; +COLUMN_TYPE COLLATION_NAME +binary(10) NULL +ALTER TABLE t1 CHANGE COLUMN a a CHAR(10) BINARY; +SELECT COLUMN_TYPE, COLLATION_NAME FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME='t1'; +COLUMN_TYPE COLLATION_NAME +char(10) latin1_bin +DROP TABLE t1; +# # End of 10.9 tests # diff --git a/mysql-test/main/partition_charset.test b/mysql-test/main/partition_charset.test index b8a17ce4fca..87aa42b4f7c 100644 --- a/mysql-test/main/partition_charset.test +++ b/mysql-test/main/partition_charset.test @@ -43,6 +43,17 @@ ALTER TABLE t1 CHANGE COLUMN a a CHAR BINARY; SHOW CREATE TABLE t1; DROP TABLE t1; +--echo # +--echo # MDEV-30681 SIGFPE / UBSAN runtime error: division by zero in String::needs_conversion on ALTER +--echo # + +CREATE TABLE t1 (a BINARY (10)) PARTITION BY LIST COLUMNS (a) (PARTITION p VALUES IN (0xFF)); +SELECT COLUMN_TYPE, COLLATION_NAME FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME='t1'; +ALTER TABLE t1 CHANGE COLUMN a a CHAR(10) BINARY; +SELECT COLUMN_TYPE, COLLATION_NAME FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME='t1'; +DROP TABLE t1; + + --echo # --echo # End of 10.9 tests --echo #