diff options
author | Evgeny Potemkin <epotemkin@mysql.com> | 2009-12-14 17:17:41 +0300 |
---|---|---|
committer | Evgeny Potemkin <epotemkin@mysql.com> | 2009-12-14 17:17:41 +0300 |
commit | 5606aed1839702cc545f740f27c88a3197920b89 (patch) | |
tree | fed6e3b990ac3beeaf6b7b3f642fd439516729e4 /sql/item.cc | |
parent | aceea2342faa7e9a4b8b5cea6d18c0801e6975b6 (diff) | |
download | mariadb-git-5606aed1839702cc545f740f27c88a3197920b89.tar.gz |
Post-merge fix.
Diffstat (limited to 'sql/item.cc')
-rw-r--r-- | sql/item.cc | 21 |
1 files changed, 11 insertions, 10 deletions
diff --git a/sql/item.cc b/sql/item.cc index f6ce117a41f..f4b2e549667 100644 --- a/sql/item.cc +++ b/sql/item.cc @@ -7275,16 +7275,17 @@ longlong Item_cache_int::val_int() return value; } -void Item_cache_datetime::cache_value_int() +bool Item_cache_datetime::cache_value_int() { if (!example) - return; + return FALSE; value_cached= TRUE; /* Assume here that the underlying item will do correct conversion.*/ int_value= example->val_int_result(); null_value= example->null_value; unsigned_flag= example->unsigned_flag; + return TRUE; } @@ -7316,8 +7317,8 @@ void Item_cache_datetime::store(Item *item, longlong val_arg) String *Item_cache_datetime::val_str(String *str) { DBUG_ASSERT(fixed == 1); - if (!str_value_cached) - cache_value(); + if (!str_value_cached && !cache_value()) + return NULL; return &str_value; } @@ -7325,8 +7326,8 @@ String *Item_cache_datetime::val_str(String *str) my_decimal *Item_cache_datetime::val_decimal(my_decimal *decimal_val) { DBUG_ASSERT(fixed == 1); - if (!value_cached) - cache_value_int(); + if (!value_cached && !cache_value_int()) + return NULL; int2my_decimal(E_DEC_FATAL_ERROR, int_value, unsigned_flag, decimal_val); return decimal_val; } @@ -7334,16 +7335,16 @@ my_decimal *Item_cache_datetime::val_decimal(my_decimal *decimal_val) double Item_cache_datetime::val_real() { DBUG_ASSERT(fixed == 1); - if (!value_cached) - cache_value_int(); + if (!value_cached && !cache_value_int()) + return 0.0; return (double) int_value; } longlong Item_cache_datetime::val_int() { DBUG_ASSERT(fixed == 1); - if (!value_cached) - cache_value_int(); + if (!value_cached && !cache_value_int()) + return 0; return int_value; } |