diff options
author | ingo@mysql.com <> | 2004-12-16 11:41:52 +0100 |
---|---|---|
committer | ingo@mysql.com <> | 2004-12-16 11:41:52 +0100 |
commit | 05d5360e7f19d95d32e49b65cd3cab5ea03c46db (patch) | |
tree | 3e9e553a8f21b5e0d73179dff22efae24126932c /sql/sql_select.cc | |
parent | 7216594f4f20b4f1df625cfd0f08a99d61486cc6 (diff) | |
download | mariadb-git-05d5360e7f19d95d32e49b65cd3cab5ea03c46db.tar.gz |
Enlarged group item key_length by a varstring length field.
Group item fields are implemented as varstrings nowadays.
Made init_connect.test robust against existing t1.
Diffstat (limited to 'sql/sql_select.cc')
-rw-r--r-- | sql/sql_select.cc | 15 |
1 files changed, 14 insertions, 1 deletions
diff --git a/sql/sql_select.cc b/sql/sql_select.cc index ed3606856a0..13f556efa16 100644 --- a/sql/sql_select.cc +++ b/sql/sql_select.cc @@ -11654,8 +11654,21 @@ calc_group_buffer(JOIN *join,ORDER *group) key_length+=sizeof(double); else if ((*group->item)->result_type() == INT_RESULT) key_length+=sizeof(longlong); + else if ((*group->item)->result_type() == STRING_RESULT) + { + /* + Group strings are taken as varstrings and require an length field. + A field is not yet created by create_tmp_field() + and the sizes should match up. + */ + key_length+= (*group->item)->max_length + HA_KEY_BLOB_LENGTH; + } else - key_length+=(*group->item)->max_length; + { + /* This case should never be choosen */ + DBUG_ASSERT(0); + current_thd->fatal_error(); + } parts++; if ((*group->item)->maybe_null) null_parts++; |