mirror of
https://github.com/MariaDB/server.git
synced 2025-08-08 11:22:35 +03:00
MDEV-23245 MDEV-22898 Still getting assertion failure in file data0type.cc line 67
Doesn't allow instant alter of a field which is a prefix part of some key is_part_of_a_key_prefix(): I hope the name of the function is clear ha_innobase::can_convert_string() ha_innobase::can_convert_varstring() ha_innobase::can_convert_blob(): it can't when field is_part_of_a_key_prefix()
This commit is contained in:
@@ -1992,3 +1992,43 @@ KEY a_key (b, a(1))
|
||||
INSERT INTO t1 VALUES ();
|
||||
ALTER TABLE t1 MODIFY a text DEFAULT NULL;
|
||||
DROP TABLE t1;
|
||||
#
|
||||
# MDEV-23245 Still getting assertion failure in file data0type.cc line 67
|
||||
#
|
||||
CREATE TABLE Foo
|
||||
(
|
||||
Bar char(2) CHARACTER SET utf8,
|
||||
KEY Bar (Bar(1))
|
||||
) ENGINE = InnoDB;
|
||||
ALTER TABLE Foo MODIFY Bar char(2) CHARACTER SET utf8mb4;
|
||||
INSERT INTO Foo VALUES ('a');
|
||||
DROP TABLE Foo;
|
||||
CREATE TABLE Foo
|
||||
(
|
||||
Bar varchar(2) CHARACTER SET utf8,
|
||||
KEY Bar (Bar(1))
|
||||
) ENGINE = InnoDB;
|
||||
ALTER TABLE Foo MODIFY Bar varchar(2) CHARACTER SET utf8mb4;
|
||||
INSERT INTO Foo VALUES ('a');
|
||||
DROP TABLE Foo;
|
||||
CREATE TABLE Foo
|
||||
(
|
||||
Bar text CHARACTER SET utf8,
|
||||
KEY Bar (Bar(1))
|
||||
) ENGINE = InnoDB;
|
||||
ALTER TABLE Foo MODIFY Bar text CHARACTER SET utf8mb4;
|
||||
INSERT INTO Foo VALUES ('a');
|
||||
DROP TABLE Foo;
|
||||
CREATE TABLE t1 (a VARCHAR(2) CHARACTER SET utf8mb3 COLLATE utf8mb3_unicode_ci,
|
||||
PRIMARY KEY (a(1)))
|
||||
ENGINE=InnoDB;
|
||||
SHOW CREATE TABLE t1;
|
||||
Table Create Table
|
||||
t1 CREATE TABLE `t1` (
|
||||
`a` varchar(2) CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL,
|
||||
PRIMARY KEY (`a`(1))
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=latin1
|
||||
ALTER TABLE t1 MODIFY a VARCHAR(2)
|
||||
CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
|
||||
INSERT INTO t1 VALUES ('a');
|
||||
DROP TABLE t1;
|
||||
|
Reference in New Issue
Block a user