summaryrefslogtreecommitdiff
path: root/sql
diff options
context:
space:
mode:
authorram@gw.mysql.r18.ru <>2004-03-17 18:40:04 +0400
committerram@gw.mysql.r18.ru <>2004-03-17 18:40:04 +0400
commit757cff9f9bb0acac398e029f7e3a0ca8b0abb413 (patch)
treed5515bf24a38a52597d8b7e3319a18b319ca2b03 /sql
parent16179dbef0745c6f2d59a9b29771d7b4cdd22282 (diff)
downloadmariadb-git-757cff9f9bb0acac398e029f7e3a0ca8b0abb413.tar.gz
Code cleanup:
- added unsigned_flag= 1; to Item_uint constructors - removed Item_uint::fix_fields() - added a comment about fix_fields() call
Diffstat (limited to 'sql')
-rw-r--r--sql/item.h10
-rw-r--r--sql/item_func.cc1
2 files changed, 3 insertions, 8 deletions
diff --git a/sql/item.h b/sql/item.h
index 31641d42455..55db205f3a7 100644
--- a/sql/item.h
+++ b/sql/item.h
@@ -429,19 +429,13 @@ class Item_uint :public Item_int
public:
Item_uint(const char *str_arg, uint length) :
Item_int(str_arg, (longlong) strtoull(str_arg,(char**) 0,10), length)
- { fixed= 0; }
+ { unsigned_flag= 1; }
Item_uint(uint32 i) :Item_int((longlong) i, 10)
- { fixed= 0; }
+ { unsigned_flag= 1; }
double val() { return ulonglong2double((ulonglong)value); }
String *val_str(String*);
Item *new_item() { return new Item_uint(name,max_length); }
int save_in_field(Field *field, bool no_conversions);
- bool fix_fields(THD *thd, struct st_table_list *list, Item **item)
- {
- bool res= Item::fix_fields(thd, list, item);
- unsigned_flag= 1;
- return res;
- }
void print(String *str);
};
diff --git a/sql/item_func.cc b/sql/item_func.cc
index d5e94c7bd35..5e479f80e62 100644
--- a/sql/item_func.cc
+++ b/sql/item_func.cc
@@ -205,6 +205,7 @@ Item_func::fix_fields(THD *thd, TABLE_LIST *tables, Item **ref)
{
Item *item;
/* We can't yet set item to *arg as fix_fields may change *arg */
+ /* We shouldn't call fix_fields() twice, so check 'fixed' field first */
if ((!(*arg)->fixed && (*arg)->fix_fields(thd, tables, arg)) ||
(*arg)->check_cols(allowed_arg_cols))
return 1; /* purecov: inspected */