summaryrefslogtreecommitdiff
path: root/sql/item.cc
diff options
context:
space:
mode:
authorSergey Petrunya <psergey@askmonty.org>2011-07-09 13:47:41 +0400
committerSergey Petrunya <psergey@askmonty.org>2011-07-09 13:47:41 +0400
commit0ce603ab5e4db19c961404489efe6604a28341e1 (patch)
tree60bd948a2711a243bcf55d280639ed96c5a05527 /sql/item.cc
parenta4f5e01475e90019230dfefa45bf61f1b4b74bc7 (diff)
downloadmariadb-git-0ce603ab5e4db19c961404489efe6604a28341e1.tar.gz
[No BUG#] Fixes for problems discovered when running mysql-trunk's subquery testsuite
Diffstat (limited to 'sql/item.cc')
-rw-r--r--sql/item.cc14
1 files changed, 13 insertions, 1 deletions
diff --git a/sql/item.cc b/sql/item.cc
index d3a43818d23..ca49cf20cd9 100644
--- a/sql/item.cc
+++ b/sql/item.cc
@@ -6768,7 +6768,19 @@ my_decimal *Item_ref::val_decimal(my_decimal *decimal_value)
int Item_ref::save_in_field(Field *to, bool no_conversions)
{
int res;
- DBUG_ASSERT(!result_field);
+ if (result_field)
+ {
+ if (result_field->is_null())
+ {
+ null_value= 1;
+ res= set_field_to_null_with_conversions(to, no_conversions);
+ return res;
+ }
+ to->set_notnull();
+ res= field_conv(to, result_field);
+ null_value= 0;
+ return res;
+ }
res= (*ref)->save_in_field(to, no_conversions);
null_value= (*ref)->null_value;
return res;