mirror of
https://github.com/MariaDB/server.git
synced 2025-08-07 00:04:31 +03:00
followup
This commit is contained in:
@@ -41,8 +41,7 @@ interval(null, 1, 10, 100)
|
|||||||
-1
|
-1
|
||||||
drop table if exists t1,t2;
|
drop table if exists t1,t2;
|
||||||
create table t1 (id int(10) not null unique);
|
create table t1 (id int(10) not null unique);
|
||||||
create table t2 (id int(10) not null primary key,
|
create table t2 (id int(10) not null primary key, val int(10) not null);
|
||||||
val int(10) not null);
|
|
||||||
insert into t1 values (1),(2),(4);
|
insert into t1 values (1),(2),(4);
|
||||||
insert into t2 values (1,1),(2,1),(3,1),(4,2);
|
insert into t2 values (1,1),(2,1),(3,1),(4,2);
|
||||||
select one.id, elt(two.val,'one','two') from t1 one, t2 two where two.id=one.id;
|
select one.id, elt(two.val,'one','two') from t1 one, t2 two where two.id=one.id;
|
||||||
|
10
sql/field.cc
10
sql/field.cc
@@ -4403,16 +4403,14 @@ char *Field_string::pack(char *to, const char *from, uint max_length)
|
|||||||
|
|
||||||
char *Field_string::pack_key(char *to, const char *from, uint max_length)
|
char *Field_string::pack_key(char *to, const char *from, uint max_length)
|
||||||
{
|
{
|
||||||
const char *end=from+min(field_length,max_length);
|
int length=min(field_length,max_length);
|
||||||
int length;
|
|
||||||
while (end > from && end[-1] == ' ')
|
|
||||||
end--;
|
|
||||||
length= end-from;
|
|
||||||
uint char_length= (field_charset->mbmaxlen > 1) ?
|
uint char_length= (field_charset->mbmaxlen > 1) ?
|
||||||
max_length/field_charset->mbmaxlen : max_length;
|
max_length/field_charset->mbmaxlen : max_length;
|
||||||
if (length > char_length)
|
if (length > char_length)
|
||||||
char_length= my_charpos(field_charset, from, end, char_length);
|
char_length= my_charpos(field_charset, from, from+length, char_length);
|
||||||
set_if_smaller(length, char_length);
|
set_if_smaller(length, char_length);
|
||||||
|
while (length && from[length-1] == ' ')
|
||||||
|
length--;
|
||||||
*to= (uchar)length;
|
*to= (uchar)length;
|
||||||
memcpy(to+1, from, length);
|
memcpy(to+1, from, length);
|
||||||
return to+1+length;
|
return to+1+length;
|
||||||
|
Reference in New Issue
Block a user