diff options
author | unknown <sasha@mysql.sashanet.com> | 2001-10-03 14:21:16 -0600 |
---|---|---|
committer | unknown <sasha@mysql.sashanet.com> | 2001-10-03 14:21:16 -0600 |
commit | 7968bc7f66bf7a641fdda4493252bc8e7c571374 (patch) | |
tree | 228338950ecb3ac05baf2e782fc004a02682b17a /sql/item_func.cc | |
parent | 5a18acf35f208c3cfa9534b337fe31d333615e4f (diff) | |
parent | 83fa1116792e55ddb9dc57276b689a97e6ab8f74 (diff) | |
download | mariadb-git-7968bc7f66bf7a641fdda4493252bc8e7c571374.tar.gz |
merged
client/Makefile.am:
Auto merged
include/my_sys.h:
Auto merged
include/mysql.h:
Auto merged
include/mysql_com.h:
Auto merged
libmysql/libmysql.c:
Auto merged
mysql-test/mysql-test-run.sh:
Auto merged
mysql-test/r/type_ranges.result:
Auto merged
sql/lex.h:
Auto merged
sql/sql_lex.h:
Auto merged
sql/item_func.cc:
Auto merged
sql/mysql_priv.h:
Auto merged
sql/sql_yacc.yy:
Auto merged
Diffstat (limited to 'sql/item_func.cc')
-rw-r--r-- | sql/item_func.cc | 28 |
1 files changed, 22 insertions, 6 deletions
diff --git a/sql/item_func.cc b/sql/item_func.cc index b9c0b973e62..a20a045f2d7 100644 --- a/sql/item_func.cc +++ b/sql/item_func.cc @@ -184,8 +184,10 @@ String *Item_num_func::val_str(String *str) longlong nr=val_int(); if (null_value) return 0; /* purecov: inspected */ - else + else if (!unsigned_flag) str->set(nr); + else + str->set((ulonglong) nr); } else { @@ -213,18 +215,26 @@ String *Item_int_func::val_str(String *str) longlong nr=val_int(); if (null_value) return 0; - else + else if (!unsigned_flag) str->set(nr); + else + str->set((ulonglong) nr); return str; } -/* Change from REAL_RESULT (default) to INT_RESULT if both arguments are integers */ +/* + Change from REAL_RESULT (default) to INT_RESULT if both arguments are + integers +*/ void Item_num_op::find_num_type(void) { if (args[0]->result_type() == INT_RESULT && args[1]->result_type() == INT_RESULT) + { hybrid_type=INT_RESULT; + unsigned_flag=args[0]->unsigned_flag | args[1]->unsigned_flag; + } } String *Item_num_op::val_str(String *str) @@ -234,8 +244,10 @@ String *Item_num_op::val_str(String *str) longlong nr=val_int(); if (null_value) return 0; /* purecov: inspected */ - else + else if (!unsigned_flag) str->set(nr); + else + str->set((ulonglong) nr); } else { @@ -667,8 +679,10 @@ String *Item_func_min_max::val_str(String *str) longlong nr=val_int(); if (null_value) return 0; - else + else if (!unsigned_flag) str->set(nr); + else + str->set((ulonglong) nr); return str; } case REAL_RESULT: @@ -1306,8 +1320,10 @@ String *Item_func_udf_int::val_str(String *str) longlong nr=val_int(); if (null_value) return 0; - else + else if (!unsigned_flag) str->set(nr); + else + str->set((ulonglong) nr); return str; } |