mirror of
https://github.com/MariaDB/server.git
synced 2025-07-30 16:24:05 +03:00
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.
This commit is contained in:
@ -12,7 +12,7 @@ set GLOBAL init_connect=DEFAULT;
|
|||||||
select @a;
|
select @a;
|
||||||
@a
|
@a
|
||||||
NULL
|
NULL
|
||||||
set global init_connect="create table t1(a char(10));\
|
set global init_connect="drop table if exists t1; create table t1(a char(10));\
|
||||||
insert into t1 values ('\0');insert into t1 values('abc')";
|
insert into t1 values ('\0');insert into t1 values('abc')";
|
||||||
select hex(a) from t1;
|
select hex(a) from t1;
|
||||||
hex(a)
|
hex(a)
|
||||||
|
@ -19,7 +19,7 @@ connect (con3,localhost,user_1,,);
|
|||||||
connection con3;
|
connection con3;
|
||||||
select @a;
|
select @a;
|
||||||
connection con0;
|
connection con0;
|
||||||
set global init_connect="create table t1(a char(10));\
|
set global init_connect="drop table if exists t1; create table t1(a char(10));\
|
||||||
insert into t1 values ('\0');insert into t1 values('abc')";
|
insert into t1 values ('\0');insert into t1 values('abc')";
|
||||||
connect (con4,localhost,user_1,,);
|
connect (con4,localhost,user_1,,);
|
||||||
connection con4;
|
connection con4;
|
||||||
|
@ -11654,8 +11654,21 @@ calc_group_buffer(JOIN *join,ORDER *group)
|
|||||||
key_length+=sizeof(double);
|
key_length+=sizeof(double);
|
||||||
else if ((*group->item)->result_type() == INT_RESULT)
|
else if ((*group->item)->result_type() == INT_RESULT)
|
||||||
key_length+=sizeof(longlong);
|
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
|
else
|
||||||
key_length+=(*group->item)->max_length;
|
{
|
||||||
|
/* This case should never be choosen */
|
||||||
|
DBUG_ASSERT(0);
|
||||||
|
current_thd->fatal_error();
|
||||||
|
}
|
||||||
parts++;
|
parts++;
|
||||||
if ((*group->item)->maybe_null)
|
if ((*group->item)->maybe_null)
|
||||||
null_parts++;
|
null_parts++;
|
||||||
|
Reference in New Issue
Block a user