diff options
author | unknown <monty@mishka.mysql.fi> | 2003-10-03 00:40:27 +0300 |
---|---|---|
committer | unknown <monty@mishka.mysql.fi> | 2003-10-03 00:40:27 +0300 |
commit | 2985e91acd78841fac42b298cea19c7332895eb9 (patch) | |
tree | dae461536c421dd366da2962a088561908db14ce /sql/item_func.h | |
parent | 904dee7a9774510b3b5992d86981b0f467d8fe3c (diff) | |
download | mariadb-git-2985e91acd78841fac42b298cea19c7332895eb9.tar.gz |
Optimized code for setting user variables with := and fixed some bugs in old code (Bug #1194)
Use forced close of socket to make mysqld shutdown faster when used under valgrind
mysql-test/mysql-test-run.sh:
Added --skip-bdb for valgrind
mysql-test/r/user_var.result:
Extended test for user variables
mysql-test/t/user_var.test:
Extended test for user variables
sql/item_func.cc:
Optimized code for setting user variables with := and fixed some bugs in old code
sql/item_func.h:
Optimized code for setting user variables
sql/log.cc:
Fixed comments
sql/mysqld.cc:
Use forced close of socket to make mysqld shutdown faster when used under valgrind
sql/sql_class.h:
Optimized code for setting user variables
Diffstat (limited to 'sql/item_func.h')
-rw-r--r-- | sql/item_func.h | 40 |
1 files changed, 5 insertions, 35 deletions
diff --git a/sql/item_func.h b/sql/item_func.h index ffc587c3cf3..09aba9694dd 100644 --- a/sql/item_func.h +++ b/sql/item_func.h @@ -888,45 +888,16 @@ class Item_func_set_user_var :public Item_func enum Item_result cached_result_type; LEX_STRING name; user_var_entry *entry; - - double native_val() - { - double value=args[0]->val(); - update_hash((void*) &value,sizeof(value), REAL_RESULT); - return value; - } - - longlong native_val_int() - { - longlong value=args[0]->val_int(); - update_hash((void*) &value,sizeof(longlong),INT_RESULT); - return value; - } - - String *native_val_str(String *str) - { - char buffer[MAX_FIELD_WIDTH]; - String *res=args[0]->val_str(str); - if (!res) // Null value - update_hash((void*) 0,0,STRING_RESULT); - else - update_hash(res->c_ptr(),res->length()+1,STRING_RESULT); - return res; - } - - String *native_val_str() - { - char buffer[MAX_FIELD_WIDTH]; - String tmp(buffer,sizeof(buffer)); - return native_val_str(&tmp); - } + char buffer[MAX_FIELD_WIDTH]; + String value; public: - Item_func_set_user_var(LEX_STRING a,Item *b): Item_func(b), name(a) {} + Item_func_set_user_var(LEX_STRING a,Item *b): + Item_func(b), name(a), value(buffer,sizeof(buffer)) {} double val(); longlong val_int(); String *val_str(String *str); - void update_hash(void *ptr, uint length, enum Item_result type); + bool update_hash(const void *ptr, uint length, enum Item_result type); bool update(); enum Item_result result_type () const { return cached_result_type; } bool fix_fields(THD *thd,struct st_table_list *tables); @@ -945,7 +916,6 @@ class Item_func_get_user_var :public Item_func public: Item_func_get_user_var(LEX_STRING a): Item_func(), name(a) {} - user_var_entry *get_entry(); double val(); longlong val_int(); String *val_str(String* str); |