mirror of
https://github.com/MariaDB/server.git
synced 2025-08-01 03:47:19 +03:00
loaddata.result, loaddata.test:
Adding test case. sql_yacc.yy: Adding TEXT_STRING_filesystem, which converts from character_set_client to character_set_conversion. Replacing TEXT_STRING_sys to TEXT_STRING_filesystem in LOAD DATA and SELECT INTO OUTFILE contexts. sql_class.h, sql_class.cc: Adding character_set_filesystem variable, and charset_is_character_set_filesystem flag (to avoid conversion when it's not necessary). set_var.h, set_var.cc: Adding sys_var_character_set_filesystem mysqld.cc: Adding --character-set-filesystem startup option. sql/mysqld.cc: Adding --character-set-filesystem startup option. sql/set_var.cc: Adding sys_var_character_set_filesystem sql/set_var.h: Adding sys_var_character_set_filesystem sql/sql_class.cc: Adding character_set_filesystem variable, and charset_is_character_set_filesystem flag (to avoid conversion when it's not necessary). sql/sql_class.h: Adding character_set_filesystem variable, and charset_is_character_set_filesystem flag (to avoid conversion when it's not necessary). sql/sql_yacc.yy: Adding TEXT_STRING_filesystem, which converts from character_set_client to character_set_conversion. Replacing TEXT_STRING_sys to TEXT_STRING_filesystem in LOAD DATA and SELECT INTO OUTFILE contexts. mysql-test/t/loaddata.test: Adding test case. mysql-test/r/loaddata.result: Adding test case.
This commit is contained in:
@ -315,6 +315,7 @@ static const char *sql_mode_str= "OFF";
|
||||
static char *mysqld_user, *mysqld_chroot, *log_error_file_ptr;
|
||||
static char *opt_init_slave, *language_ptr, *opt_init_connect;
|
||||
static char *default_character_set_name;
|
||||
static char *character_set_filesystem_name;
|
||||
static char *my_bind_addr_str;
|
||||
static char *default_collation_name;
|
||||
static char mysql_data_home_buff[2];
|
||||
@ -562,6 +563,7 @@ MY_BITMAP temp_pool;
|
||||
|
||||
CHARSET_INFO *system_charset_info, *files_charset_info ;
|
||||
CHARSET_INFO *national_charset_info, *table_alias_charset;
|
||||
CHARSET_INFO *character_set_filesystem;
|
||||
|
||||
SHOW_COMP_OPTION have_row_based_replication;
|
||||
SHOW_COMP_OPTION have_raid, have_openssl, have_symlink, have_query_cache;
|
||||
@ -2799,6 +2801,12 @@ static int init_common_variables(const char *conf_file_name, int argc,
|
||||
global_system_variables.character_set_client= default_charset_info;
|
||||
global_system_variables.collation_connection= default_charset_info;
|
||||
|
||||
if (!(character_set_filesystem=
|
||||
get_charset_by_csname(character_set_filesystem_name,
|
||||
MY_CS_PRIMARY, MYF(MY_WME))))
|
||||
return 1;
|
||||
global_system_variables.character_set_filesystem= character_set_filesystem;
|
||||
|
||||
sys_init_connect.value_length= 0;
|
||||
if ((sys_init_connect.value= opt_init_connect))
|
||||
sys_init_connect.value_length= strlen(opt_init_connect);
|
||||
@ -4761,6 +4769,7 @@ enum options_mysqld
|
||||
OPT_GROUP_CONCAT_MAX_LEN,
|
||||
OPT_DEFAULT_COLLATION,
|
||||
OPT_CHARACTER_SET_CLIENT_HANDSHAKE,
|
||||
OPT_CHARACTER_SET_FILESYSTEM,
|
||||
OPT_INIT_CONNECT,
|
||||
OPT_INIT_SLAVE,
|
||||
OPT_SECURE_AUTH,
|
||||
@ -4914,6 +4923,11 @@ Disable with --skip-bdb (will save memory).",
|
||||
(gptr*) &opt_character_set_client_handshake,
|
||||
(gptr*) &opt_character_set_client_handshake,
|
||||
0, GET_BOOL, NO_ARG, 1, 0, 0, 0, 0, 0},
|
||||
{"character-set-filesystem", OPT_CHARACTER_SET_FILESYSTEM,
|
||||
"Set the filesystem character set.",
|
||||
(gptr*) &character_set_filesystem_name,
|
||||
(gptr*) &character_set_filesystem_name,
|
||||
0, GET_STR, REQUIRED_ARG, 0, 0, 0, 0, 0, 0 },
|
||||
{"character-set-server", 'C', "Set the default character set.",
|
||||
(gptr*) &default_character_set_name, (gptr*) &default_character_set_name,
|
||||
0, GET_STR, REQUIRED_ARG, 0, 0, 0, 0, 0, 0 },
|
||||
@ -6924,6 +6938,7 @@ static void mysql_init_variables(void)
|
||||
files_charset_info= &my_charset_utf8_general_ci;
|
||||
national_charset_info= &my_charset_utf8_general_ci;
|
||||
table_alias_charset= &my_charset_bin;
|
||||
character_set_filesystem= &my_charset_bin;
|
||||
|
||||
opt_date_time_formats[0]= opt_date_time_formats[1]= opt_date_time_formats[2]= 0;
|
||||
|
||||
@ -6977,6 +6992,7 @@ static void mysql_init_variables(void)
|
||||
default_character_set_name= (char*) MYSQL_DEFAULT_CHARSET_NAME;
|
||||
default_collation_name= (char*) MYSQL_DEFAULT_COLLATION_NAME;
|
||||
sys_charset_system.value= (char*) system_charset_info->csname;
|
||||
character_set_filesystem_name= (char*) "binary";
|
||||
|
||||
|
||||
/* Set default values for some option variables */
|
||||
|
Reference in New Issue
Block a user