diff options
author | unknown <sergefp@mysql.com> | 2004-05-05 20:04:25 +0400 |
---|---|---|
committer | unknown <sergefp@mysql.com> | 2004-05-05 20:04:25 +0400 |
commit | e1fc542382faac3c1c19b82db7ad28849d5d0658 (patch) | |
tree | 00e01c4d1651e5b8f974e572b3b707db9557df9c /sql | |
parent | 393ed84c9a0cd98479aa8bf8c4de1236740639ea (diff) | |
download | mariadb-git-e1fc542382faac3c1c19b82db7ad28849d5d0658.tar.gz |
Make Item_param::val_int and Item_param::val_str follow the used convention and return 0 if null_value==1.
sql/item.h:
Added comments about Item::valxx() behavior if Item's value is NULL.
Diffstat (limited to 'sql')
-rw-r--r-- | sql/item.cc | 4 | ||||
-rw-r--r-- | sql/item.h | 1 |
2 files changed, 5 insertions, 0 deletions
diff --git a/sql/item.cc b/sql/item.cc index e1cdfcf42c0..963f97b059f 100644 --- a/sql/item.cc +++ b/sql/item.cc @@ -745,6 +745,8 @@ double Item_param::val() { DBUG_ASSERT(value_is_set == 1); int err; + if (null_value) + return 0.0; switch (item_result_type) { case STRING_RESULT: return (double) my_strntod(str_value.charset(), (char*) str_value.ptr(), @@ -761,6 +763,8 @@ longlong Item_param::val_int() { DBUG_ASSERT(value_is_set == 1); int err; + if (null_value) + return 0; switch (item_result_type) { case STRING_RESULT: return my_strntoll(str_value.charset(), diff --git a/sql/item.h b/sql/item.h index b756d824de0..780e2fcadac 100644 --- a/sql/item.h +++ b/sql/item.h @@ -157,6 +157,7 @@ public: virtual Item_result result_type () const { return REAL_RESULT; } virtual enum_field_types field_type() const; virtual enum Type type() const =0; + /* valXXX methods must return NULL or 0 or 0.0 if null_value is set. */ virtual double val()=0; virtual longlong val_int()=0; virtual String *val_str(String*)=0; |