summaryrefslogtreecommitdiff
path: root/sql
diff options
context:
space:
mode:
authorbar@mysql.com <>2004-06-11 16:29:16 +0500
committerbar@mysql.com <>2004-06-11 16:29:16 +0500
commitc64d93b27403dc9d154eb601b88d95964f9fc05b (patch)
tree72245220b637b8d5caf3b8267ea6801af59f0bc7 /sql
parent21c524e712875f8b66ad95c76da1d4305d0538d8 (diff)
downloadmariadb-git-c64d93b27403dc9d154eb601b88d95964f9fc05b.tar.gz
Allocate memory when a character set is requested:
- For simple character sets: from_uni convertion table. - For UCA: alternative weight arrays. Use mbminlen instead of MY_CS_NONTEXT
Diffstat (limited to 'sql')
-rw-r--r--sql/item_create.cc2
-rw-r--r--sql/mysqld.cc3
-rw-r--r--sql/sql_string.cc2
-rw-r--r--sql/sql_table.cc2
4 files changed, 4 insertions, 5 deletions
diff --git a/sql/item_create.cc b/sql/item_create.cc
index 74f36de11ac..53d4f14d1ee 100644
--- a/sql/item_create.cc
+++ b/sql/item_create.cc
@@ -373,7 +373,7 @@ Item *create_func_space(Item *a)
CHARSET_INFO *cs= current_thd->variables.collation_connection;
Item *sp;
- if (cs->state & MY_CS_NONTEXT)
+ if (cs->mbminlen > 1)
{
sp= new Item_string("",0,cs);
if (sp)
diff --git a/sql/mysqld.cc b/sql/mysqld.cc
index 4e9847e99cc..841898ac505 100644
--- a/sql/mysqld.cc
+++ b/sql/mysqld.cc
@@ -329,7 +329,7 @@ char log_error_file[FN_REFLEN], glob_hostname[FN_REFLEN];
char* log_error_file_ptr= log_error_file;
char mysql_real_data_home[FN_REFLEN],
language[LIBLEN],reg_ext[FN_EXTLEN], mysql_charsets_dir[FN_REFLEN],
- max_sort_char,*mysqld_user,*mysqld_chroot, *opt_init_file,
+ *mysqld_user,*mysqld_chroot, *opt_init_file,
*opt_init_connect, *opt_init_slave,
def_ft_boolean_syntax[sizeof(ft_boolean_syntax)];
@@ -5249,7 +5249,6 @@ static void mysql_init_variables(void)
specialflag= opened_tables= created_tmp_tables= created_tmp_disk_tables= 0;
binlog_cache_use= binlog_cache_disk_use= 0;
max_used_connections= slow_launch_threads = 0;
- max_sort_char= 0;
mysqld_user= mysqld_chroot= opt_init_file= opt_bin_logname = 0;
errmesg= 0;
mysqld_unix_port= opt_mysql_tmpdir= my_bind_addr_str= NullS;
diff --git a/sql/sql_string.cc b/sql/sql_string.cc
index f7e4e436495..cf4f94ba966 100644
--- a/sql/sql_string.cc
+++ b/sql/sql_string.cc
@@ -370,7 +370,7 @@ bool String::copy(const char *str, uint32 arg_length,
bool String::set_ascii(const char *str, uint32 arg_length)
{
- if (!(str_charset->state & MY_CS_NONTEXT))
+ if (!(str_charset->mbminlen > 1))
{
set(str, arg_length, str_charset);
return 0;
diff --git a/sql/sql_table.cc b/sql/sql_table.cc
index aea6140226c..dc838f0e685 100644
--- a/sql/sql_table.cc
+++ b/sql/sql_table.cc
@@ -858,7 +858,7 @@ int mysql_prepare_table(THD *thd, HA_CREATE_INFO *create_info,
sql_field->sql_type != FIELD_TYPE_VAR_STRING &&
!f_is_blob(sql_field->pack_flag)) ||
sql_field->charset == &my_charset_bin ||
- sql_field->charset->state & MY_CS_NONTEXT || // ucs2 doesn't work yet
+ sql_field->charset->mbminlen > 1 || // ucs2 doesn't work yet
(ft_key_charset && sql_field->charset != ft_key_charset))
{
my_printf_error(ER_BAD_FT_COLUMN,ER(ER_BAD_FT_COLUMN),MYF(0),