diff options
author | aelkin@mysql.com <> | 2006-02-10 15:12:27 +0200 |
---|---|---|
committer | aelkin@mysql.com <> | 2006-02-10 15:12:27 +0200 |
commit | 14ced05e5569c2cbdc97b47809ab601bbf7bf785 (patch) | |
tree | 2acf7c5461c6438f1824325abedf22ed98152c69 /client | |
parent | 34abab41db808f587721e3810ce548eb07b99915 (diff) | |
download | mariadb-git-14ced05e5569c2cbdc97b47809ab601bbf7bf785.tar.gz |
BUG#16217 fix partly backported from 5.0. It is different in mysqlbinlog part.
This changeset is assumed to stay in 4.1.
Diffstat (limited to 'client')
-rw-r--r-- | client/mysql.cc | 26 |
1 files changed, 25 insertions, 1 deletions
diff --git a/client/mysql.cc b/client/mysql.cc index d76195535a3..2f9031b84b8 100644 --- a/client/mysql.cc +++ b/client/mysql.cc @@ -190,7 +190,7 @@ static int com_quit(String *str,char*), com_connect(String *str,char*), com_status(String *str,char*), com_use(String *str,char*), com_source(String *str, char*), com_rehash(String *str, char*), com_tee(String *str, char*), - com_notee(String *str, char*), + com_notee(String *str, char*), com_charset(String *str,char*), com_prompt(String *str, char*), com_delimiter(String *str, char*); #ifdef USE_POPEN @@ -263,6 +263,8 @@ static COMMANDS commands[] = { "Set outfile [to_outfile]. Append everything into given outfile." }, { "use", 'u', com_use, 1, "Use another database. Takes database name as argument." }, + { "charset_name", 'C', com_charset, 1, + "Switch to another charset. Might be needed for processing binlog." }, /* Get bash-like expansion for some commands */ { "create table", 0, 0, 0, ""}, { "create database", 0, 0, 0, ""}, @@ -1850,6 +1852,28 @@ com_clear(String *buffer,char *line __attribute__((unused))) return 0; } + /* ARGSUSED */ +static int +com_charset(String *buffer __attribute__((unused)), char *line) +{ + char buff[256], *param; + CHARSET_INFO * new_cs; + strmake(buff, line, sizeof(buff) - 1); + param= get_arg(buff, 0); + if (!param || !*param) + { + return put_info("Usage: \\C char_setname | charset charset_name", + INFO_ERROR, 0); + } + new_cs= get_charset_by_csname(param, MY_CS_PRIMARY, MYF(MY_WME)); + if (new_cs) + { + charset_info= new_cs; + put_info("Charset changed", INFO_INFO); + } + else put_info("Charset is not found", INFO_INFO); + return 0; +} /* Execute command |