diff options
author | bar@bar.mysql.r18.ru <> | 2003-04-01 12:45:16 +0500 |
---|---|---|
committer | bar@bar.mysql.r18.ru <> | 2003-04-01 12:45:16 +0500 |
commit | 5b50426f8f869b5f54d6a629e5fcac944ad6581b (patch) | |
tree | ef837bf4fdaa936bc57607d203b03ebdf06a0a26 /sql | |
parent | ffa5f52e2db11d3f72b57ae9a1c54c245c7359ca (diff) | |
download | mariadb-git-5b50426f8f869b5f54d6a629e5fcac944ad6581b.tar.gz |
Some optimization in CHARSET_INFO:
We don't need separate hash_sort() and hash_caseup()
We don't need tosort(). strnxfrm will do the same.
Diffstat (limited to 'sql')
-rw-r--r-- | sql/filesort.cc | 6 | ||||
-rw-r--r-- | sql/set_var.cc | 2 | ||||
-rw-r--r-- | sql/sql_acl.cc | 8 | ||||
-rw-r--r-- | sql/sql_class.cc | 4 | ||||
-rw-r--r-- | sql/sql_udf.cc | 3 | ||||
-rw-r--r-- | sql/table.cc | 3 |
6 files changed, 10 insertions, 16 deletions
diff --git a/sql/filesort.cc b/sql/filesort.cc index 0f6e4d7abba..4c2ba1e1a59 100644 --- a/sql/filesort.cc +++ b/sql/filesort.cc @@ -505,10 +505,8 @@ static void make_sortkey(register SORTPARAM *param, } else { - if (res->ptr() != (char*) to) - memcpy(to,res->ptr(),length); - bzero((char *)to+length,diff); - my_tosort(cs, (char*) to,length); + my_strnxfrm(cs,(uchar*)to,length,(const uchar*)res->ptr(),length); + bzero((char *)to+length,diff); } break; } diff --git a/sql/set_var.cc b/sql/set_var.cc index d2a8355dbc5..0babec456b8 100644 --- a/sql/set_var.cc +++ b/sql/set_var.cc @@ -1465,7 +1465,7 @@ void set_var_init() hash_init(&system_variable_hash, system_charset_info, array_elements(sys_variables),0,0, - (hash_get_key) get_sys_var_length,0, HASH_CASE_INSENSITIVE); + (hash_get_key) get_sys_var_length,0,0); sys_var **var, **end; for (var= sys_variables, end= sys_variables+array_elements(sys_variables) ; var < end; diff --git a/sql/sql_acl.cc b/sql/sql_acl.cc index 5f8f71e1bd4..1be22404dbb 100644 --- a/sql/sql_acl.cc +++ b/sql/sql_acl.cc @@ -983,7 +983,7 @@ static void init_check_host(void) VOID(my_init_dynamic_array(&acl_wild_hosts,sizeof(struct acl_host_and_ip), acl_users.elements,1)); VOID(hash_init(&acl_check_hosts,&my_charset_latin1,acl_users.elements,0,0, - (hash_get_key) check_get_key,0,HASH_CASE_INSENSITIVE)); + (hash_get_key) check_get_key,0,0)); if (!allow_all_hosts) { for (uint i=0 ; i < acl_users.elements ; i++) @@ -1639,8 +1639,7 @@ public: hash_key = (char*) alloc_root(&memex,key_length); strmov(strmov(strmov(hash_key,user)+1,db)+1,tname); (void) hash_init(&hash_columns,&my_charset_latin1, - 0,0,0, (hash_get_key) get_key_column,0, - HASH_CASE_INSENSITIVE); + 0,0,0, (hash_get_key) get_key_column,0,0); } GRANT_TABLE (TABLE *form, TABLE *col_privs) @@ -1674,8 +1673,7 @@ public: cols = fix_rights_for_column(cols); (void) hash_init(&hash_columns,&my_charset_latin1, - 0,0,0, (hash_get_key) get_key_column,0, - HASH_CASE_INSENSITIVE); + 0,0,0, (hash_get_key) get_key_column,0,0); if (cols) { int key_len; diff --git a/sql/sql_class.cc b/sql/sql_class.cc index 3a66e906837..0b8e6a192b4 100644 --- a/sql/sql_class.cc +++ b/sql/sql_class.cc @@ -142,7 +142,7 @@ THD::THD():user_time(0), is_fatal_error(0), bzero((char*) &warn_root,sizeof(warn_root)); init_alloc_root(&warn_root, 1024, 0); user_connect=(USER_CONN *)0; - hash_init(&user_vars, system_charset_info, USER_VARS_HASH_SIZE, 0, 0, + hash_init(&user_vars, &my_charset_bin, USER_VARS_HASH_SIZE, 0, 0, (hash_get_key) get_var_key, (hash_free_key) free_user_var,0); @@ -246,7 +246,7 @@ void THD::change_user(void) cleanup(); cleanup_done= 0; init(); - hash_init(&user_vars, system_charset_info, USER_VARS_HASH_SIZE, 0, 0, + hash_init(&user_vars, &my_charset_bin, USER_VARS_HASH_SIZE, 0, 0, (hash_get_key) get_var_key, (hash_free_key) free_user_var, 0); } diff --git a/sql/sql_udf.cc b/sql/sql_udf.cc index 450f1dd09ae..42f4dddea8d 100644 --- a/sql/sql_udf.cc +++ b/sql/sql_udf.cc @@ -128,8 +128,7 @@ void udf_init() init_sql_alloc(&mem, 1024,0); THD *new_thd = new THD; if (!new_thd || - hash_init(&udf_hash,system_charset_info, - 32,0,0,get_hash_key, NULL, HASH_CASE_INSENSITIVE)) + hash_init(&udf_hash,system_charset_info,32,0,0,get_hash_key, NULL, 0)) { sql_print_error("Can't allocate memory for udf structures"); hash_free(&udf_hash); diff --git a/sql/table.cc b/sql/table.cc index 9bea4a09b05..fda1fcb36e4 100644 --- a/sql/table.cc +++ b/sql/table.cc @@ -363,8 +363,7 @@ int openfrm(const char *name, const char *alias, uint db_stat, uint prgflag, use_hash= !hash_init(&outparam->name_hash, system_charset_info, outparam->fields,0,0, - (hash_get_key) get_field_name,0, - HASH_CASE_INSENSITIVE); + (hash_get_key) get_field_name,0,0); for (i=0 ; i < outparam->fields; i++, strpos+=field_pack_length, field_ptr++) { |