summaryrefslogtreecommitdiff
path: root/sql/sql_select.cc
diff options
context:
space:
mode:
authorunknown <igor@rurik.mysql.com>2005-04-20 15:08:22 -0700
committerunknown <igor@rurik.mysql.com>2005-04-20 15:08:22 -0700
commit2e33f4e2fb82e949c71584298c41e4b1bce8d1cb (patch)
tree3a7e5ee7516b8ba123c839cd268c1b77f54e1645 /sql/sql_select.cc
parent90de09db2a787acf20159c49b3eccff8319ae82e (diff)
parent6a97b07994f8d67c0f14b3979c932d69452ff94f (diff)
downloadmariadb-git-2e33f4e2fb82e949c71584298c41e4b1bce8d1cb.tar.gz
Merge rurik.mysql.com:/home/igor/mysql-4.1
into rurik.mysql.com:/home/igor/dev/mysql-4.1-0 sql/sql_select.cc: Auto merged
Diffstat (limited to 'sql/sql_select.cc')
-rw-r--r--sql/sql_select.cc14
1 files changed, 13 insertions, 1 deletions
diff --git a/sql/sql_select.cc b/sql/sql_select.cc
index 14dc8463e38..36efe26dff9 100644
--- a/sql/sql_select.cc
+++ b/sql/sql_select.cc
@@ -4779,7 +4779,7 @@ static Field* create_tmp_field_from_field(THD *thd, Field* org_field,
item->result_field= new_field;
else
new_field->field_name= name;
- if (org_field->maybe_null())
+ if (org_field->maybe_null() || (item && item->maybe_null))
new_field->flags&= ~NOT_NULL_FLAG; // Because of outer join
if (org_field->type() == FIELD_TYPE_VAR_STRING)
table->db_create_options|= HA_OPTION_PACK_RECORD;
@@ -9199,7 +9199,19 @@ bool JOIN::rollup_init()
for (j=0 ; j < fields_list.elements ; j++)
rollup.fields[i].push_back(rollup.null_items[i]);
}
+ List_iterator_fast<Item> it(fields_list);
+ Item *item;
+ while ((item= it++))
+ {
+ ORDER *group_tmp;
+ for (group_tmp= group_list; group_tmp; group_tmp= group_tmp->next)
+ {
+ if (*group_tmp->item == item)
+ item->maybe_null= 1;
+ }
+ }
return 0;
+
}