mirror of
https://github.com/MariaDB/server.git
synced 2025-01-17 20:42:30 +01:00
0a7faed75a
commit 854c219a7f
(MDEV-17301)
broke a constraint: Fixed-length columns cannot be extended in InnoDB
without rebuilding the table.
ha_innobase::can_convert_string(): Correct the condition. We must
not allow any instantaneous change to the length of CHAR columns
measured in characters. For any format other than ROW_FORMAT=REDUNDANT,
we can allow the length in bytes to be extended if mbminlen<mbmaxlen held
before the change of the character set.
38 lines
943 B
Text
38 lines
943 B
Text
--- instant_alter_convert.result
|
|
+++ instant_alter_convert,utf8.result
|
|
@@ -38,7 +38,7 @@
|
|
best.t check status OK
|
|
call check_table('t');
|
|
name mtype prtype len
|
|
-a 2 800FE 200
|
|
+a 13 2100FE 600
|
|
# CHAR enlargement
|
|
alter table t modify a char(220);
|
|
affected rows: 2
|
|
@@ -54,7 +54,7 @@
|
|
best.t check status OK
|
|
call check_table('t');
|
|
name mtype prtype len
|
|
-a 2 800FE 220
|
|
+a 13 2100FE 660
|
|
ALTER TABLE t CHANGE COLUMN a a CHAR(230) BINARY;
|
|
affected rows: 2
|
|
info: Records: 2 Duplicates: 0 Warnings: 0
|
|
@@ -69,7 +69,7 @@
|
|
best.t check status OK
|
|
call check_table('t');
|
|
name mtype prtype len
|
|
-a 13 2F00FE 230
|
|
+a 13 5300FE 690
|
|
# Convert from VARCHAR to a bigger CHAR
|
|
alter table t modify a varchar(200);
|
|
affected rows: 2
|
|
@@ -92,7 +92,7 @@
|
|
best.t check status OK
|
|
call check_table('t');
|
|
name mtype prtype len
|
|
-a 2 800FE 255
|
|
+a 13 2100FE 765
|
|
# BINARY/VARBINARY test
|
|
create or replace table t (a varbinary(300));
|
|
insert into t values(NULL);
|