diff options
author | Sergei Golubchik <sergii@pisem.net> | 2012-05-20 14:57:29 +0200 |
---|---|---|
committer | Sergei Golubchik <sergii@pisem.net> | 2012-05-20 14:57:29 +0200 |
commit | 7f6f53a8df10c76f93848c8d06bc5af71051c525 (patch) | |
tree | 9a539823cdf05f53574fdf91941b3a242025acba /sql/item.cc | |
parent | 0e7e724d6b36b2f5b8a0604171adb750d7c82c9c (diff) | |
parent | 280fcf08085e43b5359ec79c0e34166e51b3ebd8 (diff) | |
download | mariadb-git-7f6f53a8df10c76f93848c8d06bc5af71051c525.tar.gz |
5.2 merge
Diffstat (limited to 'sql/item.cc')
-rw-r--r-- | sql/item.cc | 23 |
1 files changed, 8 insertions, 15 deletions
diff --git a/sql/item.cc b/sql/item.cc index 4e57221c0a6..15c4cf7aadf 100644 --- a/sql/item.cc +++ b/sql/item.cc @@ -3362,7 +3362,7 @@ String *Item_param::val_str(String* str) that binary log contains wrong statement */ -const String *Item_param::query_val_str(String* str) const +const String *Item_param::query_val_str(THD *thd, String* str) const { switch (state) { case INT_VALUE: @@ -3400,7 +3400,8 @@ const String *Item_param::query_val_str(String* str) const case LONG_DATA_VALUE: { str->length(0); - append_query_string(value.cs_info.character_set_client, &str_value, str); + append_query_string(thd, value.cs_info.character_set_client, &str_value, + str); break; } case NULL_VALUE: @@ -3533,7 +3534,7 @@ void Item_param::print(String *str, enum_query_type query_type) char buffer[STRING_BUFFER_USUAL_SIZE]; String tmp(buffer, sizeof(buffer), &my_charset_bin); const String *res; - res= query_val_str(&tmp); + res= query_val_str(current_thd, &tmp); str->append(*res); } } @@ -7756,20 +7757,12 @@ bool Item_insert_value::fix_fields(THD *thd, Item **items) } if (arg->type() == REF_ITEM) + arg= static_cast<Item_ref *>(arg)->ref[0]; + if (arg->type() != FIELD_ITEM) { - Item_ref *ref= (Item_ref *)arg; - if (ref->ref[0]->type() != FIELD_ITEM) - { - my_error(ER_BAD_FIELD_ERROR, MYF(0), "", "VALUES() function"); - return TRUE; - } - arg= ref->ref[0]; + my_error(ER_BAD_FIELD_ERROR, MYF(0), "", "VALUES() function"); + return TRUE; } - /* - According to our SQL grammar, VALUES() function can reference - only to a column. - */ - DBUG_ASSERT(arg->type() == FIELD_ITEM); Item_field *field_arg= (Item_field *)arg; |