Merge bk-internal:/home/bk/mysql-4.1/
into serg.mysql.com:/usr/home/serg/Abk/mysql-4.1 sql/sql_select.cc: Auto merged sql/sql_select.h: Auto merged strings/ctype-bin.c: Auto merged
This commit is contained in:
commit
f42419e4b3
@ -45,29 +45,30 @@ name
|
|||||||
drop table t1,t2;
|
drop table t1,t2;
|
||||||
create table t1 (a char(10) not null, b char(10) binary not null,key (a), key(b));
|
create table t1 (a char(10) not null, b char(10) binary not null,key (a), key(b));
|
||||||
insert into t1 values ("hello ","hello "),("hello2 ","hello2 ");
|
insert into t1 values ("hello ","hello "),("hello2 ","hello2 ");
|
||||||
select * from t1 where a="hello";
|
select concat("-",a,"-",b,"-") from t1 where a="hello";
|
||||||
a b
|
concat("-",a,"-",b,"-")
|
||||||
hello hello
|
-hello-hello-
|
||||||
select * from t1 where a="hello ";
|
select concat("-",a,"-",b,"-") from t1 where a="hello ";
|
||||||
a b
|
concat("-",a,"-",b,"-")
|
||||||
hello hello
|
-hello-hello-
|
||||||
select * from t1 ignore index (a) where a="hello ";
|
select concat("-",a,"-",b,"-") from t1 ignore index (a) where a="hello ";
|
||||||
a b
|
concat("-",a,"-",b,"-")
|
||||||
hello hello
|
-hello-hello-
|
||||||
select * from t1 where b="hello";
|
select concat("-",a,"-",b,"-") from t1 where b="hello";
|
||||||
a b
|
concat("-",a,"-",b,"-")
|
||||||
hello hello
|
-hello-hello-
|
||||||
select * from t1 where b="hello ";
|
select concat("-",a,"-",b,"-") from t1 where b="hello ";
|
||||||
a b
|
concat("-",a,"-",b,"-")
|
||||||
hello hello
|
-hello-hello-
|
||||||
select * from t1 ignore index (b) where b="hello ";
|
select concat("-",a,"-",b,"-") from t1 ignore index (b) where b="hello ";
|
||||||
a b
|
concat("-",a,"-",b,"-")
|
||||||
|
-hello-hello-
|
||||||
alter table t1 modify b tinytext not null, drop key b, add key (b(100));
|
alter table t1 modify b tinytext not null, drop key b, add key (b(100));
|
||||||
select * from t1 where b="hello ";
|
select concat("-",a,"-",b,"-") from t1 where b="hello ";
|
||||||
a b
|
concat("-",a,"-",b,"-")
|
||||||
select * from t1 ignore index (b) where b="hello ";
|
select concat("-",a,"-",b,"-") from t1 ignore index (b) where b="hello ";
|
||||||
a b
|
concat("-",a,"-",b,"-")
|
||||||
hello hello
|
-hello-hello-
|
||||||
drop table t1;
|
drop table t1;
|
||||||
create table t1 (b char(8));
|
create table t1 (b char(8));
|
||||||
insert into t1 values(NULL);
|
insert into t1 values(NULL);
|
||||||
|
@ -30,16 +30,16 @@ drop table t1,t2;
|
|||||||
|
|
||||||
create table t1 (a char(10) not null, b char(10) binary not null,key (a), key(b));
|
create table t1 (a char(10) not null, b char(10) binary not null,key (a), key(b));
|
||||||
insert into t1 values ("hello ","hello "),("hello2 ","hello2 ");
|
insert into t1 values ("hello ","hello "),("hello2 ","hello2 ");
|
||||||
select * from t1 where a="hello";
|
select concat("-",a,"-",b,"-") from t1 where a="hello";
|
||||||
select * from t1 where a="hello ";
|
select concat("-",a,"-",b,"-") from t1 where a="hello ";
|
||||||
select * from t1 ignore index (a) where a="hello ";
|
select concat("-",a,"-",b,"-") from t1 ignore index (a) where a="hello ";
|
||||||
select * from t1 where b="hello";
|
select concat("-",a,"-",b,"-") from t1 where b="hello";
|
||||||
select * from t1 where b="hello ";
|
select concat("-",a,"-",b,"-") from t1 where b="hello ";
|
||||||
select * from t1 ignore index (b) where b="hello ";
|
select concat("-",a,"-",b,"-") from t1 ignore index (b) where b="hello ";
|
||||||
# blob test
|
# blob test
|
||||||
alter table t1 modify b tinytext not null, drop key b, add key (b(100));
|
alter table t1 modify b tinytext not null, drop key b, add key (b(100));
|
||||||
select * from t1 where b="hello ";
|
select concat("-",a,"-",b,"-") from t1 where b="hello ";
|
||||||
select * from t1 ignore index (b) where b="hello ";
|
select concat("-",a,"-",b,"-") from t1 ignore index (b) where b="hello ";
|
||||||
drop table t1;
|
drop table t1;
|
||||||
|
|
||||||
#
|
#
|
||||||
|
@ -67,7 +67,7 @@ int find_ref_key(TABLE *table,Field *field, uint *key_length)
|
|||||||
|
|
||||||
|
|
||||||
/* Copy a key from record to some buffer */
|
/* Copy a key from record to some buffer */
|
||||||
/* if length == 0 then copy hole key */
|
/* if length == 0 then copy whole key */
|
||||||
|
|
||||||
void key_copy(byte *key,TABLE *table,uint idx,uint key_length)
|
void key_copy(byte *key,TABLE *table,uint idx,uint key_length)
|
||||||
{
|
{
|
||||||
|
@ -2753,19 +2753,15 @@ static bool create_ref_for_key(JOIN *join, JOIN_TAB *j, KEYUSE *org_keyuse,
|
|||||||
if (!keyuse->used_tables &&
|
if (!keyuse->used_tables &&
|
||||||
!(join->select_options & SELECT_DESCRIBE))
|
!(join->select_options & SELECT_DESCRIBE))
|
||||||
{ // Compare against constant
|
{ // Compare against constant
|
||||||
store_key_item *tmp=new store_key_item(thd,
|
store_key_item tmp(thd, keyinfo->key_part[i].field,
|
||||||
keyinfo->key_part[i].field,
|
(char*)key_buff + maybe_null,
|
||||||
(char*)key_buff +
|
maybe_null ? (char*) key_buff : 0,
|
||||||
maybe_null,
|
keyinfo->key_part[i].length, keyuse->val);
|
||||||
maybe_null ?
|
|
||||||
(char*) key_buff : 0,
|
|
||||||
keyinfo->key_part[i].length,
|
|
||||||
keyuse->val);
|
|
||||||
if (thd->is_fatal_error)
|
if (thd->is_fatal_error)
|
||||||
{
|
{
|
||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
tmp->copy();
|
tmp.copy();
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
*ref_key++= get_store_key(thd,
|
*ref_key++= get_store_key(thd,
|
||||||
|
@ -174,7 +174,7 @@ class JOIN :public Sql_alloc
|
|||||||
Item_sum **sum_funcs;
|
Item_sum **sum_funcs;
|
||||||
Procedure *procedure;
|
Procedure *procedure;
|
||||||
Item *having;
|
Item *having;
|
||||||
Item *tmp_having; // To store Having when processed tenporary table
|
Item *tmp_having; // To store Having when processed temporary table
|
||||||
uint select_options;
|
uint select_options;
|
||||||
select_result *result;
|
select_result *result;
|
||||||
TMP_TABLE_PARAM tmp_table_param;
|
TMP_TABLE_PARAM tmp_table_param;
|
||||||
@ -306,7 +306,6 @@ class store_key :public Sql_alloc
|
|||||||
{
|
{
|
||||||
protected:
|
protected:
|
||||||
Field *to_field; // Store data here
|
Field *to_field; // Store data here
|
||||||
Field *key_field; // Copy of key field
|
|
||||||
char *null_ptr;
|
char *null_ptr;
|
||||||
char err;
|
char err;
|
||||||
public:
|
public:
|
||||||
|
@ -75,6 +75,21 @@ static int my_strnncoll_binary(CHARSET_INFO * cs __attribute__((unused)),
|
|||||||
return cmp ? cmp : (int) (slen - tlen);
|
return cmp ? cmp : (int) (slen - tlen);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static int my_strnncollsp_binary(CHARSET_INFO * cs,
|
||||||
|
const uchar *s, uint slen,
|
||||||
|
const uchar *t, uint tlen)
|
||||||
|
{
|
||||||
|
int len, cmp;
|
||||||
|
|
||||||
|
for ( ; slen && my_isspace(cs, s[slen-1]) ; slen--);
|
||||||
|
for ( ; tlen && my_isspace(cs, t[tlen-1]) ; tlen--);
|
||||||
|
|
||||||
|
len = ( slen > tlen ) ? tlen : slen;
|
||||||
|
|
||||||
|
cmp= memcmp(s,t,len);
|
||||||
|
return cmp ? cmp : (int) (slen - tlen);
|
||||||
|
}
|
||||||
|
|
||||||
static void my_caseup_str_bin(CHARSET_INFO *cs __attribute__((unused)),
|
static void my_caseup_str_bin(CHARSET_INFO *cs __attribute__((unused)),
|
||||||
char *str __attribute__((unused)))
|
char *str __attribute__((unused)))
|
||||||
{
|
{
|
||||||
@ -309,7 +324,7 @@ CHARSET_INFO my_charset_bin =
|
|||||||
"","",
|
"","",
|
||||||
0, /* strxfrm_multiply */
|
0, /* strxfrm_multiply */
|
||||||
my_strnncoll_binary, /* strnncoll */
|
my_strnncoll_binary, /* strnncoll */
|
||||||
my_strnncoll_binary,
|
my_strnncollsp_binary,
|
||||||
my_strnxfrm_bin, /* strxnfrm */
|
my_strnxfrm_bin, /* strxnfrm */
|
||||||
my_like_range_simple, /* like_range */
|
my_like_range_simple, /* like_range */
|
||||||
my_wildcmp_bin, /* wildcmp */
|
my_wildcmp_bin, /* wildcmp */
|
||||||
|
Loading…
x
Reference in New Issue
Block a user