diff options
Diffstat (limited to 'sql/item_subselect.cc')
-rw-r--r-- | sql/item_subselect.cc | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/sql/item_subselect.cc b/sql/item_subselect.cc index 4a1ed59d7df..9c0fd057d0f 100644 --- a/sql/item_subselect.cc +++ b/sql/item_subselect.cc @@ -1352,6 +1352,24 @@ String *Item_singlerow_subselect::val_str(String *str) } +bool Item_singlerow_subselect::val_native(THD *thd, Native *to) +{ + DBUG_ASSERT(fixed == 1); + if (forced_const) + return value->val_native(thd, to); + if (!exec() && !value->null_value) + { + null_value= false; + return value->val_native(thd, to); + } + else + { + reset(); + return true; + } +} + + my_decimal *Item_singlerow_subselect::val_decimal(my_decimal *decimal_value) { DBUG_ASSERT(fixed == 1); |