summaryrefslogtreecommitdiff
path: root/sql/sql_udf.h
diff options
context:
space:
mode:
authorunknown <cmiller@zippy.(none)>2006-06-08 13:25:28 -0400
committerunknown <cmiller@zippy.(none)>2006-06-08 13:25:28 -0400
commite2495206b276d6aaeb506ed135016112532d71e3 (patch)
tree655da24031881eafeb600ef54597c989f70793b1 /sql/sql_udf.h
parent6f42227f31a3b9e2a85e69f0bfb7bdb02380f112 (diff)
downloadmariadb-git-e2495206b276d6aaeb506ed135016112532d71e3.tar.gz
Bug#19904: UDF: not initialized *is_null per row
The is_null value was initialized once and thereafter only set to indicate NULL, and never unset to indicate not-NULL. Now set is_null to false, in addition to only setting it to true when the value in question is null. mysql-test/r/udf.result: Add result. mysql-test/t/udf.test: Add test. sql/sql_udf.h: Initialize is_null to false before trying to use it, so that historical NULLs don't affect our operation.
Diffstat (limited to 'sql/sql_udf.h')
-rw-r--r--sql/sql_udf.h2
1 files changed, 2 insertions, 0 deletions
diff --git a/sql/sql_udf.h b/sql/sql_udf.h
index d588572a762..d0729deecaa 100644
--- a/sql/sql_udf.h
+++ b/sql/sql_udf.h
@@ -70,6 +70,7 @@ class udf_handler :public Sql_alloc
void cleanup();
double val(my_bool *null_value)
{
+ is_null= 0;
if (get_arguments())
{
*null_value=1;
@@ -88,6 +89,7 @@ class udf_handler :public Sql_alloc
}
longlong val_int(my_bool *null_value)
{
+ is_null= 0;
if (get_arguments())
{
*null_value=1;