mirror of
				https://github.com/MariaDB/server.git
				synced 2025-10-31 19:06:14 +01:00 
			
		
		
		
	 0a7faed75a
			
		
	
	
	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);
 |