Commit 76ed6c26 authored by monty@hundin.mysql.fi's avatar monty@hundin.mysql.fi
Browse files

Fix of testcases after merge.

Small improvement to write caching.
parent 69f68026
Loading
Loading
Loading
Loading
+4 −0
Original line number Diff line number Diff line
@@ -46340,6 +46340,10 @@ Fixed bug when joining with caching (unlikely to happen).
Fixed race condition when using the binary log and @code{INSERT DELAYED}
which could cause the binary log to have rows that was not yet written
to MyISAM tables.
@item
Changed caching of binary log to make replication slightly faster.
@item
Fixed bug in replication on Mac OS X.
@end itemize
@node News-3.23.45, News-3.23.44, News-3.23.46, News-3.23.x
+1 −1
Original line number Diff line number Diff line
@@ -10,7 +10,7 @@ insert into t1 values(1),(2),(3);
insert into t2 select * from t1;
create temporary table t1 (n int);
insert into t1 values (4),(5);
insert into t2 select * from t1;
insert into t2 select * from t1 as t10;
insert into t2 values(6);
select * from t2;
n
+9 −8
Original line number Diff line number Diff line
@@ -2,11 +2,11 @@ slave start;
Could not initialize master info structure, check permisions on master.info
slave start;
Could not initialize master info structure, check permisions on master.info
change master to master_host='127.0.0.1',master_port=$MASTER_MYPORT,
change master to master_host='127.0.0.1',master_port=9306,
master_user='root';
Could not initialize master info
reset slave;
change master to master_host='127.0.0.1',master_port=$MASTER_MYPORT,
change master to master_host='127.0.0.1',master_port=9306,
master_user='root';
reset master;
slave start;
@@ -15,14 +15,14 @@ create table t1 (s text);
insert into t1 values('Could not break slave'),('Tried hard');
show slave status;
Master_Host	Master_User	Master_Port	Connect_retry	Log_File	Pos	Slave_Running	Replicate_do_db	Replicate_ignore_db	Last_errno	Last_error	Skip_counter	Last_log_seq
127.0.0.1	root	$MASTER_MYPORT	60	master-bin.001	234	Yes			0		0	3
127.0.0.1	root	9306	60	master-bin.001	234	Yes			0		0	3
select * from t1;
s
Could not break slave
Tried hard
flush logs;
drop table if exists t2;
create table t2(m int not null primary key);
create table t2(m int not null auto_increment primary key);
insert into t2 values (34),(67),(123);
flush logs;
show master logs;
@@ -31,7 +31,8 @@ master-bin.001
master-bin.002
master-bin.003
insert into t2 values(1234);
insert into t2 values(1234);
set insert_id=1234;
insert into t2 values(NULL);
slave stop;
set sql_slave_skip_counter=1;
slave start;
@@ -42,7 +43,7 @@ master-bin.003
insert into t2 values (65);
show slave status;
Master_Host	Master_User	Master_Port	Connect_retry	Log_File	Pos	Slave_Running	Replicate_do_db	Replicate_ignore_db	Last_errno	Last_error	Skip_counter	Last_log_seq
127.0.0.1	root	$MASTER_MYPORT	60	master-bin.003	127	Yes			0		0	2
127.0.0.1	root	9306	60	master-bin.003	155	Yes			0		0	3
select * from t2;
m
34
@@ -60,12 +61,12 @@ master-bin.005
master-bin.006
show master status;
File	Position	Binlog_do_db	Binlog_ignore_db
master-bin.006	382		
master-bin.006	445		
slave stop;
slave start;
show slave status;
Master_Host	Master_User	Master_Port	Connect_retry	Log_File	Pos	Slave_Running	Replicate_do_db	Replicate_ignore_db	Last_errno	Last_error	Skip_counter	Last_log_seq
127.0.0.1	root	$MASTER_MYPORT	60	master-bin.006	382	Yes			0		0	6
127.0.0.1	root	9306	60	master-bin.006	445	Yes			0		0	7
lock tables t3 read;
select count(*) from t3 where n >= 4;
count(*)
+14 −8
Original line number Diff line number Diff line
@@ -60,16 +60,20 @@ void my_b_seek(IO_CACHE *info,my_off_t pos)
      DBUG_VOID_RETURN;
    }
    flush_io_cache(info);
    /* Correct buffer end so that we write in increments of IO_SIZE */
    info->write_end=(info->write_buffer+info->buffer_length-
		     (pos & (IO_SIZE-1)));
  }
  info->pos_in_file=pos;
  info->seek_not_done=1;
}


/*
**  Fill buffer.  Note that this assumes that you have already used
**  all characters in the CACHE, independent of the read_pos value!
**  return:  0 on error or EOF (info->error = -1 on error)
**           number of characters
  Fill buffer.  Note that this assumes that you have already used
  all characters in the CACHE, independent of the read_pos value!
  return:  0 on error or EOF (info->error = -1 on error)
  number of characters
*/

uint my_b_fill(IO_CACHE *info)
@@ -109,11 +113,12 @@ uint my_b_fill(IO_CACHE *info)
  return length;
}


/*
** Read a string ended by '\n' into a buffer of 'max_length' size.
** Returns number of characters read, 0 on error.
** last byte is set to '\0'
** If buffer is full then to[max_length-1] will be set to \0.
  Read a string ended by '\n' into a buffer of 'max_length' size.
  Returns number of characters read, 0 on error.
  last byte is set to '\0'
  If buffer is full then to[max_length-1] will be set to \0.
*/

uint my_b_gets(IO_CACHE *info, char *to, uint max_length)
@@ -151,6 +156,7 @@ uint my_b_gets(IO_CACHE *info, char *to, uint max_length)
  }
}


/*
  Simple printf version.  Supports '%s', '%d', '%u', "%ld" and "%lu"
  Used for logging in MySQL
+1 −1
Original line number Diff line number Diff line
@@ -2322,7 +2322,7 @@ make_join_select(JOIN *join,SQL_SELECT *select,COND *cond)
      used_tables|=current_map;

      if (tab->type == JT_REF && tab->quick &&
	  tab->ref.key == tab->quick->index &&
	  (uint) tab->ref.key == tab->quick->index &&
	  tab->ref.key_length < tab->quick->max_used_key_length)
      {
	/* Range uses longer key;  Use this instead of ref on key */