diff options
author | unknown <lenz@mysql.com> | 2005-04-21 09:08:09 +0200 |
---|---|---|
committer | unknown <lenz@mysql.com> | 2005-04-21 09:08:09 +0200 |
commit | 50ee81d5db17780de2c2089feb6a1e2690429659 (patch) | |
tree | a8a57778362400be267aec3512755f4a6a427f21 /sql | |
parent | 6b645d309fab3a952de3adc8c7cf5f6060335f26 (diff) | |
parent | ecf7f30b301bca1bab88947b252ea7c58c122799 (diff) | |
download | mariadb-git-50ee81d5db17780de2c2089feb6a1e2690429659.tar.gz |
Merge lgrimmer@bk-internal.mysql.com:/home/bk/mysql-4.1
into mysql.com:/space/my/mysql-4.1
Diffstat (limited to 'sql')
-rw-r--r-- | sql/sql_select.cc | 14 |
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; + } |