Below is the list of changes that have just been committed into a local
5.0 repository of bar. When bar does a push these changes will
be propagated to the main repository and, within 24 hours after the
push, to the public repository.
For information on how to access the public repository
see http://dev.mysql.com/doc/mysql/en/installing-source-tree.html
ChangeSet
1.2039 06/02/14 08:24:01 bar@stripped +8 -0
Many files:
Backporting character_set_filesystem from 5.0 to 5.1.
mysql-test/r/variables.result
1.79 06/02/14 08:23:44 bar@stripped +18 -0
Backporting character_set_filesystem from 5.0 to 5.1.
mysql-test/t/variables.test
1.54 06/02/14 08:23:40 bar@stripped +14 -0
Backporting character_set_filesystem from 5.0 to 5.1.
sql/sql_yacc.yy
1.453 06/02/14 08:22:32 bar@stripped +16 -4
Backporting character_set_filesystem from 5.0 to 5.1.
sql/sql_class.h
1.280 06/02/14 08:22:30 bar@stripped +2 -0
Backporting character_set_filesystem from 5.0 to 5.1.
sql/sql_class.cc
1.227 06/02/14 08:22:28 bar@stripped +3 -0
Backporting character_set_filesystem from 5.0 to 5.1.
sql/set_var.h
1.73 06/02/14 08:22:27 bar@stripped +9 -0
Backporting character_set_filesystem from 5.0 to 5.1.
sql/set_var.cc
1.148 06/02/14 08:22:24 bar@stripped +29 -0
Backporting character_set_filesystem from 5.0 to 5.1.
sql/mysqld.cc
1.533 06/02/14 08:22:02 bar@stripped +16 -0
Backporting character_set_filesystem from 5.0 to 5.1.
# This is a BitKeeper patch. What follows are the unified diffs for the
# set of deltas contained in the patch. The rest of the patch, the part
# that BitKeeper cares about, is below these diffs.
# User: bar
# Host: bar.intranet.mysql.r18.ru
# Root: /usr/home/bar/mysql-5.0.cs_fs
--- 1.532/sql/mysqld.cc 2006-01-19 18:36:12 +04:00
+++ 1.533/sql/mysqld.cc 2006-02-14 08:22:02 +04:00
@@ -321,6 +321,7 @@
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];
@@ -469,6 +470,7 @@
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_berkeley_db, have_innodb, have_isam, have_ndbcluster,
have_example_db, have_archive_db, have_csv_db;
@@ -2677,6 +2679,12 @@
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);
@@ -4563,6 +4571,7 @@
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,
@@ -4671,6 +4680,11 @@
(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 },
@@ -6260,6 +6274,7 @@
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;
@@ -6320,6 +6335,7 @@
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 */
--- 1.226/sql/sql_class.cc 2006-02-02 19:17:12 +04:00
+++ 1.227/sql/sql_class.cc 2006-02-14 08:22:28 +04:00
@@ -648,6 +648,9 @@
charset_is_collation_connection=
!String::needs_conversion(0,charset(),variables.collation_connection,
¬_used);
+ charset_is_character_set_filesystem=
+ !String::needs_conversion(0, charset(),
+ variables.character_set_filesystem, ¬_used);
}
--- 1.279/sql/sql_class.h 2005-12-14 16:50:23 +04:00
+++ 1.280/sql/sql_class.h 2006-02-14 08:22:30 +04:00
@@ -569,6 +569,7 @@
my_bool old_passwords;
/* Only charset part of these variables is sensible */
+ CHARSET_INFO *character_set_filesystem;
CHARSET_INFO *character_set_client;
CHARSET_INFO *character_set_results;
@@ -1341,6 +1342,7 @@
bool query_error, bootstrap, cleanup_done;
bool tmp_table_used;
bool charset_is_system_charset, charset_is_collation_connection;
+ bool charset_is_character_set_filesystem;
bool enable_slow_log; /* enable slow log for current statement */
bool no_trans_update, abort_on_warning;
bool got_warning; /* Set on call to push_warning() */
--- 1.452/sql/sql_yacc.yy 2006-02-06 17:09:08 +04:00
+++ 1.453/sql/sql_yacc.yy 2006-02-14 08:22:32 +04:00
@@ -684,7 +684,7 @@
LEX_HOSTNAME ULONGLONG_NUM field_ident select_alias ident ident_or_text
UNDERSCORE_CHARSET IDENT_sys TEXT_STRING_sys TEXT_STRING_literal
NCHAR_STRING opt_component key_cache_name
- sp_opt_label BIN_NUM label_ident
+ sp_opt_label BIN_NUM label_ident TEXT_STRING_filesystem
%type <lex_str_ptr>
opt_table_alias
@@ -5937,7 +5937,7 @@
;
into:
- INTO OUTFILE TEXT_STRING_sys
+ INTO OUTFILE TEXT_STRING_filesystem
{
LEX *lex= Lex;
lex->uncacheable(UNCACHEABLE_SIDEEFFECT);
@@ -5946,7 +5946,7 @@
YYABORT;
}
opt_field_term opt_line_term
- | INTO DUMPFILE TEXT_STRING_sys
+ | INTO DUMPFILE TEXT_STRING_filesystem
{
LEX *lex=Lex;
if (!lex->describe)
@@ -6930,7 +6930,7 @@
};
load_data:
- load_data_lock opt_local INFILE TEXT_STRING_sys
+ load_data_lock opt_local INFILE TEXT_STRING_filesystem
{
LEX *lex=Lex;
lex->sql_command= SQLCOM_LOAD;
@@ -7458,6 +7458,18 @@
}
;
+
+TEXT_STRING_filesystem:
+ TEXT_STRING
+ {
+ THD *thd= YYTHD;
+ if (thd->charset_is_character_set_filesystem)
+ $$= $1;
+ else
+ thd->convert_string(&$$, thd->variables.character_set_filesystem,
+ $1.str, $1.length, thd->charset());
+ }
+ ;
ident:
IDENT_sys { $$=$1; }
--- 1.78/mysql-test/r/variables.result 2006-01-27 13:47:56 +04:00
+++ 1.79/mysql-test/r/variables.result 2006-02-14 08:23:44 +04:00
@@ -566,3 +566,21 @@
ERROR HY000: Variable 'character_set_system' is a read only variable
set @@global.version_compile_os='234';
ERROR HY000: Variable 'version_compile_os' is a read only variable
+set character_set_filesystem=latin1;
+select @@character_set_filesystem;
+@@character_set_filesystem
+latin1
+set @@global.character_set_filesystem=latin2;
+set character_set_filesystem=latin1;
+select @@character_set_filesystem;
+@@character_set_filesystem
+latin1
+set @@global.character_set_filesystem=latin2;
+set character_set_filesystem=default;
+select @@character_set_filesystem;
+@@character_set_filesystem
+latin2
+set @@global.character_set_filesystem=default;
+select @@global.character_set_filesystem;
+@@global.character_set_filesystem
+binary
--- 1.53/mysql-test/t/variables.test 2006-02-01 18:02:30 +04:00
+++ 1.54/mysql-test/t/variables.test 2006-02-14 08:23:40 +04:00
@@ -456,4 +456,18 @@
--error 1238
set @@global.version_compile_os='234';
+#
+# Check character_set_filesystem variable
+#
+set character_set_filesystem=latin1;
+select @@character_set_filesystem;
+set @@global.character_set_filesystem=latin2;
+set character_set_filesystem=latin1;
+select @@character_set_filesystem;
+set @@global.character_set_filesystem=latin2;
+set character_set_filesystem=default;
+select @@character_set_filesystem;
+set @@global.character_set_filesystem=default;
+select @@global.character_set_filesystem;
+
# End of 5.0 tests
--- 1.147/sql/set_var.cc 2006-01-18 16:01:54 +04:00
+++ 1.148/sql/set_var.cc 2006-02-14 08:22:24 +04:00
@@ -148,6 +148,7 @@
sys_var_character_set_client sys_character_set_client("character_set_client");
sys_var_character_set_connection sys_character_set_connection("character_set_connection");
sys_var_character_set_results sys_character_set_results("character_set_results");
+sys_var_character_set_filesystem sys_character_set_filesystem("character_set_filesystem");
sys_var_thd_ulong sys_completion_type("completion_type",
&SV::completion_type,
check_completion_type,
@@ -580,6 +581,7 @@
&sys_character_set_client,
&sys_character_set_connection,
&sys_character_set_results,
+ &sys_character_set_filesystem,
&sys_charset_system,
&sys_collation_connection,
&sys_collation_database,
@@ -771,6 +773,7 @@
{sys_character_set_client.name,(char*) &sys_character_set_client, SHOW_SYS},
{sys_character_set_connection.name,(char*) &sys_character_set_connection,SHOW_SYS},
{sys_character_set_database.name, (char*) &sys_character_set_database,SHOW_SYS},
+ {sys_character_set_filesystem.name,(char*) &sys_character_set_filesystem, SHOW_SYS},
{sys_character_set_results.name,(char*) &sys_character_set_results, SHOW_SYS},
{sys_character_set_server.name, (char*) &sys_character_set_server,SHOW_SYS},
{sys_charset_system.name, (char*) &sys_charset_system, SHOW_SYS},
@@ -2071,6 +2074,32 @@
{
thd->variables.character_set_client= (global_system_variables.
character_set_client);
+ thd->update_charset();
+ }
+}
+
+
+CHARSET_INFO **
+sys_var_character_set_filesystem::ci_ptr(THD *thd, enum_var_type type)
+{
+ if (type == OPT_GLOBAL)
+ return &global_system_variables.character_set_filesystem;
+ else
+ return &thd->variables.character_set_filesystem;
+}
+
+
+extern CHARSET_INFO *character_set_filesystem;
+
+void
+sys_var_character_set_filesystem::set_default(THD *thd, enum_var_type type)
+{
+ if (type == OPT_GLOBAL)
+ global_system_variables.character_set_filesystem= character_set_filesystem;
+ else
+ {
+ thd->variables.character_set_filesystem= (global_system_variables.
+ character_set_filesystem);
thd->update_charset();
}
}
--- 1.72/sql/set_var.h 2005-11-10 20:50:43 +04:00
+++ 1.73/sql/set_var.h 2006-02-14 08:22:27 +04:00
@@ -540,6 +540,15 @@
virtual CHARSET_INFO **ci_ptr(THD *thd, enum_var_type type)= 0;
};
+class sys_var_character_set_filesystem :public sys_var_character_set
+{
+public:
+ sys_var_character_set_filesystem(const char *name_arg) :
+ sys_var_character_set(name_arg) {}
+ void set_default(THD *thd, enum_var_type type);
+ CHARSET_INFO **ci_ptr(THD *thd, enum_var_type type);
+};
+
class sys_var_character_set_client :public sys_var_character_set
{
public:
| Thread |
|---|
| • bk commit into 5.0 tree (bar:1.2039) | bar | 14 Feb |