diff options
Diffstat (limited to 'sql/item.cc')
-rw-r--r-- | sql/item.cc | 25 |
1 files changed, 24 insertions, 1 deletions
diff --git a/sql/item.cc b/sql/item.cc index b268c5eb928..d5961fe1733 100644 --- a/sql/item.cc +++ b/sql/item.cc @@ -231,6 +231,22 @@ void Item_int::print(String *str) str->append(name); } +String *Item_uint::val_str(String *str) +{ + str->set((ulonglong) value); + return str; +} + +void Item_uint::print(String *str) +{ + if (!name) + { + str_value.set((ulonglong) value); + name=str_value.c_ptr(); + } + str->append(name); +} + String *Item_real::val_str(String *str) { @@ -317,6 +333,12 @@ void Item_int::make_field(Send_field *tmp_field) init_make_field(tmp_field,FIELD_TYPE_LONGLONG); } +void Item_uint::make_field(Send_field *tmp_field) +{ + init_make_field(tmp_field,FIELD_TYPE_LONGLONG); + tmp_field->flags|= UNSIGNED_FLAG; +} + void Item_real::make_field(Send_field *tmp_field) { init_make_field(tmp_field,FIELD_TYPE_DOUBLE); @@ -561,7 +583,7 @@ bool Item_ref::fix_fields(THD *thd,TABLE_LIST *tables) { if (!ref) { - if (!(ref=find_item_in_list(this,thd->lex.item_list))) + if (!(ref=find_item_in_list(this,thd->lex.select->item_list))) return 1; max_length= (*ref)->max_length; maybe_null= (*ref)->maybe_null; @@ -677,5 +699,6 @@ bool field_is_equal_to_item(Field *field,Item *item) #ifdef __GNUC__ template class List<Item>; template class List_iterator<Item>; +template class List_iterator_fast<Item>; template class List<List_item>; #endif |