diff options
Diffstat (limited to 'sql/item_windowfunc.h')
-rw-r--r-- | sql/item_windowfunc.h | 25 |
1 files changed, 17 insertions, 8 deletions
diff --git a/sql/item_windowfunc.h b/sql/item_windowfunc.h index 77cbd556e60..9fe95ed6cee 100644 --- a/sql/item_windowfunc.h +++ b/sql/item_windowfunc.h @@ -839,13 +839,24 @@ public: read_value_from_result_field= true; } + bool is_null() + { + if (force_return_blank) + return true; + + if (read_value_from_result_field) + return result_field->is_null(); + + return window_func()->is_null(); + } + double val_real() { double res; if (force_return_blank) { res= 0.0; - null_value= false; + null_value= true; } else if (read_value_from_result_field) { @@ -866,7 +877,7 @@ public: if (force_return_blank) { res= 0; - null_value= false; + null_value= true; } else if (read_value_from_result_field) { @@ -886,9 +897,8 @@ public: String *res; if (force_return_blank) { - null_value= false; - str->length(0); - res= str; + null_value= true; + res= NULL; } else if (read_value_from_result_field) { @@ -910,9 +920,8 @@ public: my_decimal *res; if (force_return_blank) { - my_decimal_set_zero(dec); - null_value= false; - res= dec; + null_value= true; + res= NULL; } else if (read_value_from_result_field) { |