mirror of
				https://github.com/MariaDB/server.git
				synced 2025-10-31 02:46:29 +01:00 
			
		
		
		
	 2fdb556e04
			
		
	
	
	2fdb556e04
	
	
	
		
			
			This patch changes the main name of 3 byte character set from utf8 to utf8mb3. New old_mode UTF8_IS_UTF8MB3 is added and set TRUE by default, so that utf8 would mean utf8mb3. If not set, utf8 would mean utf8mb4.
		
			
				
	
	
		
			266 lines
		
	
	
	
		
			10 KiB
		
	
	
	
		
			Text
		
	
	
	
	
	
			
		
		
	
	
			266 lines
		
	
	
	
		
			10 KiB
		
	
	
	
		
			Text
		
	
	
	
	
	
| SET @global_start_value = @@global.old_mode;
 | |
| SELECT @global_start_value;
 | |
| @global_start_value
 | |
| UTF8_IS_UTF8MB3
 | |
| SET @session_start_value = @@session.old_mode;
 | |
| SELECT @session_start_value;
 | |
| @session_start_value
 | |
| UTF8_IS_UTF8MB3
 | |
| '#--------------------FN_DYNVARS_152_01------------------------#'
 | |
| SET @@global.old_mode = "NO_PROGRESS_INFO";
 | |
| SET @@global.old_mode = DEFAULT;
 | |
| SELECT @@global.old_mode;
 | |
| @@global.old_mode
 | |
| UTF8_IS_UTF8MB3
 | |
| SET @@session.old_mode = "NO_PROGRESS_INFO";
 | |
| SET @@session.old_mode = DEFAULT;
 | |
| SELECT @@session.old_mode;
 | |
| @@session.old_mode
 | |
| UTF8_IS_UTF8MB3
 | |
| '#---------------------FN_DYNVARS_152_02-------------------------#'
 | |
| SET @@global.old_mode = NULL;
 | |
| ERROR 42000: Variable 'old_mode' can't be set to the value of 'NULL'
 | |
| SET @@global.old_mode = '';
 | |
| SELECT @@global.old_mode;
 | |
| @@global.old_mode
 | |
| 
 | |
| SET @@global.old_mode = ' ';
 | |
| SELECT @@global.old_mode;
 | |
| @@global.old_mode
 | |
| 
 | |
| SET @@session.old_mode = NULL;
 | |
| ERROR 42000: Variable 'old_mode' can't be set to the value of 'NULL'
 | |
| SET @@session.old_mode = '';
 | |
| SELECT @@session.old_mode;
 | |
| @@session.old_mode
 | |
| 
 | |
| SET @@session.old_mode = ' ';
 | |
| SELECT @@session.old_mode;
 | |
| @@session.old_mode
 | |
| 
 | |
| '#--------------------FN_DYNVARS_152_03------------------------#'
 | |
| SET @@global.old_mode = NO_PROGRESS_INFO;
 | |
| SELECT @@global.old_mode;
 | |
| @@global.old_mode
 | |
| NO_PROGRESS_INFO
 | |
| SET @@global.old_mode = NO_DUP_KEY_WARNINGS_WITH_IGNORE;
 | |
| SELECT @@global.old_mode;
 | |
| @@global.old_mode
 | |
| NO_DUP_KEY_WARNINGS_WITH_IGNORE
 | |
| SET @@global.old_mode = OFF;
 | |
| ERROR 42000: Variable 'old_mode' can't be set to the value of 'OFF'
 | |
| SET @@session.old_mode = NO_PROGRESS_INFO;
 | |
| SELECT @@session.old_mode;
 | |
| @@session.old_mode
 | |
| NO_PROGRESS_INFO
 | |
| SET @@session.old_mode = NO_DUP_KEY_WARNINGS_WITH_IGNORE;
 | |
| SELECT @@session.old_mode;
 | |
| @@session.old_mode
 | |
| NO_DUP_KEY_WARNINGS_WITH_IGNORE
 | |
| SET @@session.old_mode = OFF;
 | |
| ERROR 42000: Variable 'old_mode' can't be set to the value of 'OFF'
 | |
| SET @@global.old_mode = '?';
 | |
| ERROR 42000: Variable 'old_mode' can't be set to the value of '?'
 | |
| SELECT @@global.old_mode;
 | |
| @@global.old_mode
 | |
| NO_DUP_KEY_WARNINGS_WITH_IGNORE
 | |
| '#--------------------FN_DYNVARS_152_04-------------------------#'
 | |
| SET @@global.old_mode = -1;
 | |
| ERROR 42000: Variable 'old_mode' can't be set to the value of '-1'
 | |
| SET @@global.old_mode = ASCII;
 | |
| ERROR 42000: Variable 'old_mode' can't be set to the value of 'ASCII'
 | |
| SET @@global.old_mode = NON_TRADITIONAL;
 | |
| ERROR 42000: Variable 'old_mode' can't be set to the value of 'NON_TRADITIONAL'
 | |
| SET @@global.old_mode = 'OF';
 | |
| ERROR 42000: Variable 'old_mode' can't be set to the value of 'OF'
 | |
| SET @@global.old_mode = NONE;
 | |
| ERROR 42000: Variable 'old_mode' can't be set to the value of 'NONE'
 | |
| SET @@session.old_mode = -1;
 | |
| ERROR 42000: Variable 'old_mode' can't be set to the value of '-1'
 | |
| SET @@session.old_mode = ANSI_SINGLE_QUOTES;
 | |
| ERROR 42000: Variable 'old_mode' can't be set to the value of 'ANSI_SINGLE_QUOTES'
 | |
| SET @@session.old_mode = 'ON';
 | |
| ERROR 42000: Variable 'old_mode' can't be set to the value of 'ON'
 | |
| SET @@session.old_mode = 'OF';
 | |
| ERROR 42000: Variable 'old_mode' can't be set to the value of 'OF'
 | |
| SET @@session.old_mode = DISABLE;
 | |
| ERROR 42000: Variable 'old_mode' can't be set to the value of 'DISABLE'
 | |
| '#-------------------FN_DYNVARS_152_05----------------------------#'
 | |
| SELECT @@session.old_mode = VARIABLE_VALUE 
 | |
| FROM INFORMATION_SCHEMA.SESSION_VARIABLES 
 | |
| WHERE VARIABLE_NAME='old_mode';
 | |
| @@session.old_mode = VARIABLE_VALUE
 | |
| 1
 | |
| '#----------------------FN_DYNVARS_152_06------------------------#'
 | |
| SELECT @@global.old_mode = VARIABLE_VALUE 
 | |
| FROM INFORMATION_SCHEMA.GLOBAL_VARIABLES 
 | |
| WHERE VARIABLE_NAME='old_mode';
 | |
| @@global.old_mode = VARIABLE_VALUE
 | |
| 1
 | |
| '#---------------------FN_DYNVARS_152_07-------------------------#'
 | |
| SET @@global.old_mode = 0;
 | |
| SELECT @@global.old_mode;
 | |
| @@global.old_mode
 | |
| 
 | |
| SET @@global.old_mode = 1;
 | |
| SELECT @@global.old_mode;
 | |
| @@global.old_mode
 | |
| NO_DUP_KEY_WARNINGS_WITH_IGNORE
 | |
| SET @@global.old_mode = 2;
 | |
| SELECT @@global.old_mode;
 | |
| @@global.old_mode
 | |
| NO_PROGRESS_INFO
 | |
| SET @@global.old_mode = 4;
 | |
| SELECT @@global.old_mode;
 | |
| @@global.old_mode
 | |
| ZERO_DATE_TIME_CAST
 | |
| SET @@global.old_mode = 16;
 | |
| ERROR 42000: Variable 'old_mode' can't be set to the value of '16'
 | |
| SELECT @@global.old_mode;
 | |
| @@global.old_mode
 | |
| ZERO_DATE_TIME_CAST
 | |
| SET @@global.old_mode = 0.4;
 | |
| ERROR 42000: Incorrect argument type to variable 'old_mode'
 | |
| '#---------------------FN_DYNVARS_152_08----------------------#'
 | |
| SET @@global.old_mode = TRUE;
 | |
| SELECT @@global.old_mode;
 | |
| @@global.old_mode
 | |
| NO_DUP_KEY_WARNINGS_WITH_IGNORE
 | |
| SET @@global.old_mode = FALSE;
 | |
| SELECT @@global.old_mode;
 | |
| @@global.old_mode
 | |
| 
 | |
| '#---------------------FN_DYNVARS_152_09----------------------#'
 | |
| SET old_mode = 'NO_PROGRESS_INFO';
 | |
| SET session old_mode = 1;
 | |
| SELECT @@old_mode;
 | |
| @@old_mode
 | |
| NO_DUP_KEY_WARNINGS_WITH_IGNORE
 | |
| SET global old_mode = 0;
 | |
| SELECT @@global.old_mode;
 | |
| @@global.old_mode
 | |
| 
 | |
| '#---------------------FN_DYNVARS_152_10----------------------#'
 | |
| SET @@session.old_mode = 'NO_PROGRESS_INFO,NO_DUP_KEY_WARNINGS_WITH_IGNORE';
 | |
| SELECT @@session.old_mode;
 | |
| @@session.old_mode
 | |
| NO_DUP_KEY_WARNINGS_WITH_IGNORE,NO_PROGRESS_INFO
 | |
| SET @@global.old_mode = 'NO_DUP_KEY_WARNINGS_WITH_IGNORE,NO_PROGRESS_INFO';
 | |
| SELECT @@global.old_mode;
 | |
| @@global.old_mode
 | |
| NO_DUP_KEY_WARNINGS_WITH_IGNORE,NO_PROGRESS_INFO
 | |
| SET @@session.old_mode = 'NO_PROGRESS_INFO,NO_SUCH_MODE';
 | |
| ERROR 42000: Variable 'old_mode' can't be set to the value of 'NO_SUCH_MODE'
 | |
| SET @@old_mode=',';
 | |
| SELECT @@old_mode;
 | |
| @@old_mode
 | |
| 
 | |
| SET @@old_mode=',,,,NO_PROGRESS_INFO,,,';
 | |
| SELECT @@old_mode;
 | |
| @@old_mode
 | |
| NO_PROGRESS_INFO
 | |
| SET @@old_mode=',,,,FOOBAR,,,,,';
 | |
| ERROR 42000: Variable 'old_mode' can't be set to the value of 'FOOBAR'
 | |
| SELECT @@old_mode;
 | |
| @@old_mode
 | |
| NO_PROGRESS_INFO
 | |
| SET @@global.old_mode = @global_start_value;
 | |
| SELECT @@global.old_mode;
 | |
| @@global.old_mode
 | |
| UTF8_IS_UTF8MB3
 | |
| SET @@session.old_mode = @session_start_value;
 | |
| SELECT @@session.old_mode;
 | |
| @@session.old_mode
 | |
| UTF8_IS_UTF8MB3
 | |
| #
 | |
| # Beginning of 10.6 test
 | |
| #
 | |
| # MDEV-8334: Rename utf8 to utf8mb3
 | |
| #
 | |
| # Save and display old values
 | |
| SET @save_old_mode = @@OLD_MODE;
 | |
| SET @save_character_set_server = @@character_set_server;
 | |
| SET @save_character_set_client = @@character_set_client;
 | |
| SET @save_character_set_results = @@character_set_results;
 | |
| SET @save_character_set_connection = @@character_set_connection;
 | |
| SET @save_character_set_filesystem = @@character_set_filesystem;
 | |
| SET @save_character_set_database = @@character_set_database;
 | |
| SET @save_collation_connection = @@collation_connection;
 | |
| SET @save_collation_server = @@collation_server;
 | |
| SET @save_collation_database = @@collation_database;
 | |
| SELECT @@OLD_MODE;
 | |
| @@OLD_MODE
 | |
| UTF8_IS_UTF8MB3
 | |
| SELECT @@character_set_server,@@character_set_client,@@character_set_results,
 | |
| @@character_set_connection, @@character_set_filesystem, @@character_set_database,
 | |
| @@collation_connection, @@collation_server, @@collation_database;
 | |
| @@character_set_server	@@character_set_client	@@character_set_results	@@character_set_connection	@@character_set_filesystem	@@character_set_database	@@collation_connection	@@collation_server	@@collation_database
 | |
| latin1	latin1	latin1	latin1	binary	latin1	latin1_swedish_ci	latin1_swedish_ci	latin1_swedish_ci
 | |
| #
 | |
| # UTF8MB3 alias for UTF8
 | |
| #
 | |
| SET @@character_set_server = utf8;
 | |
| SET @@character_set_client = utf8;
 | |
| SET @@character_set_results = utf8;
 | |
| SET @@character_set_connection = utf8;
 | |
| SET @@character_set_filesystem = utf8;
 | |
| SET @@character_set_database = utf8;
 | |
| SET @@collation_connection = utf8_general_ci;
 | |
| SET @@collation_server = utf8_unicode_ci;
 | |
| SET @@collation_database = utf8_bin;
 | |
| SELECT @@character_set_server, @@character_set_client, @@character_set_results,
 | |
| @@character_set_connection, @@character_set_filesystem, @@character_set_database,
 | |
| @@collation_connection, @@collation_server, @@collation_database;
 | |
| @@character_set_server	@@character_set_client	@@character_set_results	@@character_set_connection	@@character_set_filesystem	@@character_set_database	@@collation_connection	@@collation_server	@@collation_database
 | |
| utf8mb3	utf8mb3	utf8mb3	utf8mb3	utf8mb3	utf8mb3	utf8mb3_general_ci	utf8mb3_unicode_ci	utf8mb3_bin
 | |
| CREATE DATABASE db1 CHARACTER SET = 'utf8' COLLATE = 'utf8_general_ci';
 | |
| ALTER DATABASE db1 CHARACTER SET = 'utf8' COLLATE = 'utf8_unicode_ci';
 | |
| CREATE TABLE tb1 (id1 INT) CHARACTER SET 'utf8' COLLATE 'utf8_bin';
 | |
| SHOW CREATE TABLE tb1;
 | |
| Table	Create Table
 | |
| tb1	CREATE TABLE `tb1` (
 | |
|   `id1` int(11) DEFAULT NULL
 | |
| ) ENGINE=MyISAM DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_bin
 | |
| DROP TABLE tb1;
 | |
| DROP DATABASE db1;
 | |
| #
 | |
| # UTF8MB4 is alias for UTF8
 | |
| #
 | |
| SET @@OLD_MODE=0;
 | |
| SET @@character_set_server = utf8;
 | |
| SET @@character_set_client = utf8;
 | |
| SET @@character_set_results = utf8;
 | |
| SET @@character_set_connection = utf8;
 | |
| SET @@character_set_filesystem = utf8;
 | |
| SET @@character_set_database = utf8;
 | |
| SET @@collation_connection = utf8_general_ci;
 | |
| SET @@collation_server = utf8_unicode_ci;
 | |
| SET @@collation_database = utf8_bin;
 | |
| SELECT @@character_set_server, @@character_set_client, @@character_set_results,
 | |
| @@character_set_connection, @@character_set_filesystem, @@character_set_database,
 | |
| @@collation_connection, @@collation_server, @@collation_database;
 | |
| @@character_set_server	@@character_set_client	@@character_set_results	@@character_set_connection	@@character_set_filesystem	@@character_set_database	@@collation_connection	@@collation_server	@@collation_database
 | |
| utf8mb4	utf8mb4	utf8mb4	utf8mb4	utf8mb4	utf8mb4	utf8mb4_general_ci	utf8mb4_unicode_ci	utf8mb4_bin
 | |
| CREATE DATABASE db1 CHARACTER SET = 'utf8' COLLATE = 'utf8_general_ci';
 | |
| ALTER DATABASE db1 CHARACTER SET = 'utf8' COLLATE = 'utf8_unicode_ci';
 | |
| CREATE TABLE tb1 (id1 INT) CHARACTER SET 'utf8' COLLATE 'utf8_bin';
 | |
| SHOW CREATE TABLE tb1;
 | |
| Table	Create Table
 | |
| tb1	CREATE TABLE `tb1` (
 | |
|   `id1` int(11) DEFAULT NULL
 | |
| ) ENGINE=MyISAM DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin
 | |
| DROP TABLE tb1;
 | |
| DROP DATABASE db1;
 | |
| SET @@OLD_MODE = @save_old_mode;
 | |
| SET @@character_set_server = @save_character_set_server;
 | |
| SET @@character_set_client = @save_character_set_client;
 | |
| SET @@character_set_results = @save_character_set_results;
 | |
| SET @@character_set_connection = @save_character_set_connection;
 | |
| SET @@character_set_filesystem = @save_character_set_filesystem;
 | |
| SET @@character_set_database = @save_character_set_database;
 | |
| SET @@collation_connection = @save_collation_connection;
 | |
| SET @@collation_server = @save_collation_server;
 | |
| SET @@collation_database = @save_collation_database;
 | |
| #
 | |
| # End of 10.6 test
 | |
| #
 |