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

Fix of testcases after merge.

Small improvement to write caching.
parent 69f68026
......@@ -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
......@@ -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
......
......@@ -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(*)
......
......@@ -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
......
......@@ -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 */
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment