Commit a0efc901 authored by unknown's avatar unknown
Browse files

Merge mysql.com:/users/lthalmann/bkroot/mysql-5.0-rpl

into  mysql.com:/users/lthalmann/bk/MERGE/mysql-5.0-merge


myisam/mi_open.c:
  Auto merged
sql/slave.cc:
  Auto merged
parents ab133655 00a34b62
Loading
Loading
Loading
Loading
+8 −7
Original line number Diff line number Diff line
@@ -52,7 +52,7 @@ static int _mi_put_key_in_record(MI_INFO *info,uint keynr,byte *record);
uint _mi_make_key(register MI_INFO *info, uint keynr, uchar *key,
		  const byte *record, my_off_t filepos)
{
  byte *pos,*end;
  byte *pos;
  uchar *start;
  reg1 HA_KEYSEG *keyseg;
  my_bool is_ft= info->s->keyinfo[keynr].flag & HA_FULLTEXT;
@@ -107,18 +107,17 @@ uint _mi_make_key(register MI_INFO *info, uint keynr, uchar *key,
    }
    if (keyseg->flag & HA_SPACE_PACK)
    {
      end= pos + length;
      if (type != HA_KEYTYPE_NUM)
      {
	while (end > pos && end[-1] == ' ')
	  end--;
        length= cs->cset->lengthsp(cs, pos, length);
      }
      else
      {
        byte *end= pos + length;
	while (pos < end && pos[0] == ' ')
	  pos++;
      }
	length=(uint) (end-pos);
      }
      FIX_LENGTH(cs, pos, length, char_length);
      store_key_length_inc(key,char_length);
      memcpy((byte*) key,(byte*) pos,(size_t) char_length);
@@ -404,7 +403,9 @@ static int _mi_put_key_in_record(register MI_INFO *info, uint keynr,
      if (keyseg->type != (int) HA_KEYTYPE_NUM)
      {
        memcpy(pos,key,(size_t) length);
	bfill(pos+length,keyseg->length-length,' ');
        keyseg->charset->cset->fill(keyseg->charset,
                                    pos + length, keyseg->length - length,
                                    ' ');
      }
      else
      {
+2 −0
Original line number Diff line number Diff line
@@ -336,6 +336,8 @@ MI_INFO *mi_open(const char *name, int mode, uint open_flags)
	      goto err;
	    }
	  }
	  else if (pos->type == HA_KEYTYPE_BINARY)
	    pos->charset= &my_charset_bin;
	}
	if (share->keyinfo[i].flag & HA_SPATIAL)
	{
+22 −0
Original line number Diff line number Diff line
@@ -723,6 +723,28 @@ lily
river
drop table t1;
deallocate prepare stmt;
create table t1 (
a char(10) unicode not null, 
index a (a)
) engine=myisam;
insert into t1 values (repeat(0x201f, 10));
insert into t1 values (repeat(0x2020, 10));
insert into t1 values (repeat(0x2021, 10));
explain select hex(a) from t1 order by a;
id	select_type	table	type	possible_keys	key	key_len	ref	rows	Extra
1	SIMPLE	t1	index	NULL	a	20	NULL	3	Using index
select hex(a) from t1 order by a;
hex(a)
201F201F201F201F201F201F201F201F201F201F
2020202020202020202020202020202020202020
2021202120212021202120212021202120212021
alter table t1 drop index a;
select hex(a) from t1 order by a;
hex(a)
201F201F201F201F201F201F201F201F201F201F
2020202020202020202020202020202020202020
2021202120212021202120212021202120212021
drop table t1;
CREATE TABLE t1 (id int, s char(5) CHARACTER SET ucs2 COLLATE ucs2_unicode_ci);
INSERT INTO t1 VALUES (1, 'ZZZZZ'), (1, 'ZZZ'), (2, 'ZZZ'), (2, 'ZZZZZ');
SELECT id, MIN(s) FROM t1 GROUP BY id;
+23 −15
Original line number Diff line number Diff line
@@ -6,7 +6,7 @@ drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
start slave;
create table t1 (a int not null, key(a)) engine=innodb;
create table t2 (a int not null, key(a)) engine=innodb;
create table t3 (a int) engine=innodb;
create table t3 (a int unique) engine=innodb;
create table t4 (a int) engine=innodb;
show variables like 'slave_transaction_retries';
Variable_name	Value
@@ -35,14 +35,14 @@ begin;
select * from t1 for update;
a
start slave;
insert into t2 values(22);
insert into t2 values(201);
commit;
select * from t1;
a
1
select * from t2;
a
22
201
show slave status;
Slave_IO_State	#
Master_Host	127.0.0.1
@@ -50,7 +50,7 @@ Master_User root
Master_Port	MASTER_MYPORT
Connect_Retry	1
Master_Log_File	master-bin.000001
Read_Master_Log_Pos	18911
Read_Master_Log_Pos	18918
Relay_Log_File	#
Relay_Log_Pos	#
Relay_Master_Log_File	master-bin.000001
@@ -65,7 +65,7 @@ Replicate_Wild_Ignore_Table
Last_Errno	0
Last_Error	
Skip_Counter	0
Exec_Master_Log_Pos	18911
Exec_Master_Log_Pos	18918
Relay_Log_Space	#
Until_Condition	None
Until_Log_File	
@@ -78,12 +78,16 @@ Master_SSL_Cipher
Master_SSL_Key	
Seconds_Behind_Master	#
stop slave;
change master to master_log_pos=532;
delete from t3;
change master to master_log_pos=539;
begin;
select * from t2 for update;
a
22
201
start slave;
select count(*) from t3  /* must be zero */;
count(*)
0
commit;
select * from t1;
a
@@ -91,7 +95,7 @@ a
1
select * from t2;
a
22
201
show slave status;
Slave_IO_State	#
Master_Host	127.0.0.1
@@ -99,7 +103,7 @@ Master_User root
Master_Port	MASTER_MYPORT
Connect_Retry	1
Master_Log_File	master-bin.000001
Read_Master_Log_Pos	18911
Read_Master_Log_Pos	18918
Relay_Log_File	#
Relay_Log_Pos	#
Relay_Master_Log_File	master-bin.000001
@@ -114,7 +118,7 @@ Replicate_Wild_Ignore_Table
Last_Errno	0
Last_Error	
Skip_Counter	0
Exec_Master_Log_Pos	18911
Exec_Master_Log_Pos	18918
Relay_Log_Space	#
Until_Condition	None
Until_Log_File	
@@ -128,12 +132,16 @@ Master_SSL_Key
Seconds_Behind_Master	#
set global max_relay_log_size=0;
stop slave;
change master to master_log_pos=532;
delete from t3;
change master to master_log_pos=539;
begin;
select * from t2 for update;
a
22
201
start slave;
select count(*) from t3  /* must be zero */;
count(*)
0
commit;
select * from t1;
a
@@ -142,7 +150,7 @@ a
1
select * from t2;
a
22
201
show slave status;
Slave_IO_State	#
Master_Host	127.0.0.1
@@ -150,7 +158,7 @@ Master_User root
Master_Port	MASTER_MYPORT
Connect_Retry	1
Master_Log_File	master-bin.000001
Read_Master_Log_Pos	18911
Read_Master_Log_Pos	18918
Relay_Log_File	#
Relay_Log_Pos	#
Relay_Master_Log_File	master-bin.000001
@@ -165,7 +173,7 @@ Replicate_Wild_Ignore_Table
Last_Errno	0
Last_Error	
Skip_Counter	0
Exec_Master_Log_Pos	18911
Exec_Master_Log_Pos	18918
Relay_Log_Space	#
Until_Condition	None
Until_Log_File	
+17 −0
Original line number Diff line number Diff line
@@ -454,6 +454,23 @@ select utext from t1 where utext like '%%';
drop table t1;
deallocate prepare stmt;

#
# Bug#22052 Trailing spaces are not removed from UNICODE fields in an index
#
create table t1 (
  a char(10) unicode not null, 
  index a (a)
) engine=myisam;
insert into t1 values (repeat(0x201f, 10));
insert into t1 values (repeat(0x2020, 10));
insert into t1 values (repeat(0x2021, 10));
# make sure "index read" is used
explain select hex(a) from t1 order by a;
select hex(a) from t1 order by a;
alter table t1 drop index a;
select hex(a) from t1 order by a;
drop table t1;

#
# Bug #20076: server crashes for a query with GROUP BY if MIN/MAX aggregation
#             over a 'ucs2' field uses a temporary table 
Loading