From 7c3376229e6ae94d7a88b8e10554d6a0c26ede9c Mon Sep 17 00:00:00 2001 From: "sergefp@mysql.com" <> Date: Wed, 5 May 2004 20:04:25 +0400 Subject: [PATCH] Make Item_param::val_int and Item_param::val_str follow the used convention and return 0 if null_value==1. --- sql/item.cc | 4 ++++ sql/item.h | 1 + 2 files changed, 5 insertions(+) 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 @@ class Item { 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; -- 2.30.9