summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorunknown <serg@serg.mysql.com>2003-03-14 20:25:50 +0100
committerunknown <serg@serg.mysql.com>2003-03-14 20:25:50 +0100
commitf42419e4b3ee12aad381a7e9e4e219b74252921c (patch)
tree0501a5801c892812a3f56959e6aa170d5999ba4f
parentd60c11be844d3daa1632b0dd0320a44ca74ecffd (diff)
parentc03b4b725553d7b03e79aa8717bc23567863a12e (diff)
downloadmariadb-git-f42419e4b3ee12aad381a7e9e4e219b74252921c.tar.gz
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
-rw-r--r--mysql-test/r/binary.result45
-rw-r--r--mysql-test/t/binary.test16
-rw-r--r--sql/key.cc2
-rw-r--r--sql/sql_select.cc14
-rw-r--r--sql/sql_select.h3
-rw-r--r--strings/ctype-bin.c17
6 files changed, 54 insertions, 43 deletions
diff --git a/mysql-test/r/binary.result b/mysql-test/r/binary.result
index 4d5eb62cc71..5da627a30b9 100644
--- a/mysql-test/r/binary.result
+++ b/mysql-test/r/binary.result
@@ -45,29 +45,30 @@ name
drop table t1,t2;
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 ");
-select * from t1 where a="hello";
-a b
-hello hello
-select * from t1 where a="hello ";
-a b
-hello hello
-select * from t1 ignore index (a) where a="hello ";
-a b
-hello hello
-select * from t1 where b="hello";
-a b
-hello hello
-select * from t1 where b="hello ";
-a b
-hello hello
-select * from t1 ignore index (b) where b="hello ";
-a b
+select concat("-",a,"-",b,"-") from t1 where a="hello";
+concat("-",a,"-",b,"-")
+-hello-hello-
+select concat("-",a,"-",b,"-") from t1 where a="hello ";
+concat("-",a,"-",b,"-")
+-hello-hello-
+select concat("-",a,"-",b,"-") from t1 ignore index (a) where a="hello ";
+concat("-",a,"-",b,"-")
+-hello-hello-
+select concat("-",a,"-",b,"-") from t1 where b="hello";
+concat("-",a,"-",b,"-")
+-hello-hello-
+select concat("-",a,"-",b,"-") from t1 where b="hello ";
+concat("-",a,"-",b,"-")
+-hello-hello-
+select concat("-",a,"-",b,"-") from t1 ignore index (b) where b="hello ";
+concat("-",a,"-",b,"-")
+-hello-hello-
alter table t1 modify b tinytext not null, drop key b, add key (b(100));
-select * from t1 where b="hello ";
-a b
-select * from t1 ignore index (b) where b="hello ";
-a b
-hello hello
+select concat("-",a,"-",b,"-") from t1 where b="hello ";
+concat("-",a,"-",b,"-")
+select concat("-",a,"-",b,"-") from t1 ignore index (b) where b="hello ";
+concat("-",a,"-",b,"-")
+-hello-hello-
drop table t1;
create table t1 (b char(8));
insert into t1 values(NULL);
diff --git a/mysql-test/t/binary.test b/mysql-test/t/binary.test
index 4f9ac7581d2..48912a390ed 100644
--- a/mysql-test/t/binary.test
+++ b/mysql-test/t/binary.test
@@ -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));
insert into t1 values ("hello ","hello "),("hello2 ","hello2 ");
-select * from t1 where a="hello";
-select * from t1 where a="hello ";
-select * from t1 ignore index (a) where a="hello ";
-select * from t1 where b="hello";
-select * from t1 where b="hello ";
-select * from t1 ignore index (b) where b="hello ";
+select concat("-",a,"-",b,"-") from t1 where a="hello";
+select concat("-",a,"-",b,"-") from t1 where a="hello ";
+select concat("-",a,"-",b,"-") from t1 ignore index (a) where a="hello ";
+select concat("-",a,"-",b,"-") from t1 where b="hello";
+select concat("-",a,"-",b,"-") from t1 where b="hello ";
+select concat("-",a,"-",b,"-") from t1 ignore index (b) where b="hello ";
# blob test
alter table t1 modify b tinytext not null, drop key b, add key (b(100));
-select * from t1 where b="hello ";
-select * from t1 ignore index (b) where b="hello ";
+select concat("-",a,"-",b,"-") from t1 where b="hello ";
+select concat("-",a,"-",b,"-") from t1 ignore index (b) where b="hello ";
drop table t1;
#
diff --git a/sql/key.cc b/sql/key.cc
index 38ab596e213..feda9e156b3 100644
--- a/sql/key.cc
+++ b/sql/key.cc
@@ -67,7 +67,7 @@ int find_ref_key(TABLE *table,Field *field, uint *key_length)
/* 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)
{
diff --git a/sql/sql_select.cc b/sql/sql_select.cc
index bf3f9a94936..2288472a4e4 100644
--- a/sql/sql_select.cc
+++ b/sql/sql_select.cc
@@ -2753,19 +2753,15 @@ static bool create_ref_for_key(JOIN *join, JOIN_TAB *j, KEYUSE *org_keyuse,
if (!keyuse->used_tables &&
!(join->select_options & SELECT_DESCRIBE))
{ // Compare against constant
- store_key_item *tmp=new store_key_item(thd,
- keyinfo->key_part[i].field,
- (char*)key_buff +
- maybe_null,
- maybe_null ?
- (char*) key_buff : 0,
- keyinfo->key_part[i].length,
- keyuse->val);
+ store_key_item tmp(thd, keyinfo->key_part[i].field,
+ (char*)key_buff + maybe_null,
+ maybe_null ? (char*) key_buff : 0,
+ keyinfo->key_part[i].length, keyuse->val);
if (thd->is_fatal_error)
{
return TRUE;
}
- tmp->copy();
+ tmp.copy();
}
else
*ref_key++= get_store_key(thd,
diff --git a/sql/sql_select.h b/sql/sql_select.h
index c5411a8790b..ffc98548db4 100644
--- a/sql/sql_select.h
+++ b/sql/sql_select.h
@@ -174,7 +174,7 @@ class JOIN :public Sql_alloc
Item_sum **sum_funcs;
Procedure *procedure;
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;
select_result *result;
TMP_TABLE_PARAM tmp_table_param;
@@ -306,7 +306,6 @@ class store_key :public Sql_alloc
{
protected:
Field *to_field; // Store data here
- Field *key_field; // Copy of key field
char *null_ptr;
char err;
public:
diff --git a/strings/ctype-bin.c b/strings/ctype-bin.c
index 9f5cad01cb2..33855bfcdcd 100644
--- a/strings/ctype-bin.c
+++ b/strings/ctype-bin.c
@@ -75,6 +75,21 @@ static int my_strnncoll_binary(CHARSET_INFO * cs __attribute__((unused)),
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)),
char *str __attribute__((unused)))
{
@@ -309,7 +324,7 @@ CHARSET_INFO my_charset_bin =
"","",
0, /* strxfrm_multiply */
my_strnncoll_binary, /* strnncoll */
- my_strnncoll_binary,
+ my_strnncollsp_binary,
my_strnxfrm_bin, /* strxnfrm */
my_like_range_simple, /* like_range */
my_wildcmp_bin, /* wildcmp */