summaryrefslogtreecommitdiff
path: root/sql/item_sum.cc
diff options
context:
space:
mode:
authorunknown <msvensson@pilot.blaudden>2007-04-02 10:50:39 +0200
committerunknown <msvensson@pilot.blaudden>2007-04-02 10:50:39 +0200
commit3378a48698a311403651fe9bb83d1dfe80a98d78 (patch)
treeda9c4b945967d94e3b16c2fd56a52699aba69b66 /sql/item_sum.cc
parentf249185b6eead7796f15f880a896a7782222db99 (diff)
parent44d4940fcc001a6606c63e8900d9e2bf41ea4e67 (diff)
downloadmariadb-git-3378a48698a311403651fe9bb83d1dfe80a98d78.tar.gz
Merge pilot.blaudden:/home/msvensson/mysql/mysql-5.0
into pilot.blaudden:/home/msvensson/mysql/mysql-5.0-maint mysql-test/mysql-test-run.pl: Auto merged mysql-test/r/create.result: Auto merged mysql-test/r/type_datetime.result: Auto merged sql/field.h: Auto merged sql/item.h: Auto merged sql/item_func.cc: Auto merged sql/item_strfunc.cc: Auto merged sql/item_sum.cc: Auto merged sql/sql_yacc.yy: Auto merged mysql-test/r/gis.result: SCCS merged mysql-test/t/gis.test: SCCS merged
Diffstat (limited to 'sql/item_sum.cc')
-rw-r--r--sql/item_sum.cc32
1 files changed, 5 insertions, 27 deletions
diff --git a/sql/item_sum.cc b/sql/item_sum.cc
index 359b4516c3c..752cefa07d6 100644
--- a/sql/item_sum.cc
+++ b/sql/item_sum.cc
@@ -1080,14 +1080,8 @@ void Item_sum_count::clear()
bool Item_sum_count::add()
{
- if (!args[0]->maybe_null)
+ if (!args[0]->maybe_null || !args[0]->is_null())
count++;
- else
- {
- args[0]->update_null_value();
- if (!args[0]->null_value)
- count++;
- }
return 0;
}
@@ -1921,14 +1915,8 @@ void Item_sum_count::reset_field()
char *res=result_field->ptr;
longlong nr=0;
- if (!args[0]->maybe_null)
+ if (!args[0]->maybe_null || !args[0]->is_null())
nr=1;
- else
- {
- args[0]->update_null_value();
- if (!args[0]->null_value)
- nr=1;
- }
int8store(res,nr);
}
@@ -2031,14 +2019,8 @@ void Item_sum_count::update_field()
char *res=result_field->ptr;
nr=sint8korr(res);
- if (!args[0]->maybe_null)
+ if (!args[0]->maybe_null || !args[0]->is_null())
nr++;
- else
- {
- args[0]->update_null_value();
- if (!args[0]->null_value)
- nr++;
- }
int8store(res,nr);
}
@@ -2462,12 +2444,8 @@ bool Item_sum_count_distinct::setup(THD *thd)
Item *item=args[i];
if (list.push_back(item))
return TRUE; // End of memory
- if (item->const_item())
- {
- item->update_null_value();
- if (item->null_value)
- always_null=1;
- }
+ if (item->const_item() && item->is_null())
+ always_null= 1;
}
if (always_null)
return FALSE;