fixed wrong DBUG_ASSERT() in IO_CACHE

fixed apparent typo in opt_sum.cc
I will push this Changeset although it fails select test - failing select 
is better than the code that does not compile.
parent 65989dac
...@@ -7,7 +7,7 @@ use test; ...@@ -7,7 +7,7 @@ use test;
drop table if exists t1,t3; drop table if exists t1,t3;
create table t1 (word char(20) not null); create table t1 (word char(20) not null);
load data infile '../../std_data/words.dat' into table t1; load data infile '../../std_data/words.dat' into table t1;
load data local infile '$MYSQL_TEST_DIR/std_data/words.dat' into table t1; load data local infile '/home/sasha/bk/mysql-4.0/mysql-test/std_data/words.dat' into table t1;
select * from t1; select * from t1;
word word
Aarhus Aarhus
...@@ -44,19 +44,18 @@ sum(length(word)) ...@@ -44,19 +44,18 @@ sum(length(word))
141 141
drop table t1,t3; drop table t1,t3;
reset master; reset master;
slave stop;
reset slave; reset slave;
drop table if exists t1,t2; drop table if exists t1,t2;
create table t1(n int); create table t1(n int);
insert into t1 values(10); select get_lock("hold_slave",10);
insert into t1 values(9); get_lock("hold_slave",10)
insert into t1 values(8); 1
insert into t1 values(7); slave start;
insert into t1 values(6); select release_lock("hold_slave");
insert into t1 values(5); release_lock("hold_slave")
insert into t1 values(4); 1
insert into t1 values(3); unlock tables;
insert into t1 values(2);
insert into t1 values(1);
create table t2(id int); create table t2(id int);
insert into t2 values(connection_id()); insert into t2 values(connection_id());
create temporary table t1_temp(n int); create temporary table t1_temp(n int);
...@@ -72,7 +71,7 @@ set sql_slave_skip_counter=1; ...@@ -72,7 +71,7 @@ set sql_slave_skip_counter=1;
slave start; slave start;
select count(*) from t1; select count(*) from t1;
count(*) count(*)
10 5000
drop table t1; drop table t1;
create table t1 (n int); create table t1 (n int);
insert into t1 values(3456); insert into t1 values(3456);
......
...@@ -41,8 +41,20 @@ my_off_t my_b_append_tell(IO_CACHE* info) ...@@ -41,8 +41,20 @@ my_off_t my_b_append_tell(IO_CACHE* info)
/* save the value of my_tell in res so we can see it when studying /* save the value of my_tell in res so we can see it when studying
coredump coredump
*/ */
DBUG_ASSERT(info->end_of_file - (info->append_read_pos-info->write_buffer) #ifndef DBUG_OFF
/* make sure EOF is where we think it is. Note that we cannot just use
my_tell() because we have a reader thread that could have left the
file offset in a non-EOF location
*/
{
volatile my_off_t save_pos;
save_pos = my_tell(info->file,MYF(0));
my_seek(info->file,(my_off_t)0,MY_SEEK_END,MYF(0));
DBUG_ASSERT(info->end_of_file - (info->append_read_pos-info->write_buffer)
== (res=my_tell(info->file,MYF(0)))); == (res=my_tell(info->file,MYF(0))));
my_seek(info->file,save_pos,MY_SEEK_SET,MYF(0));
}
#endif
res = info->end_of_file + (info->write_pos-info->append_read_pos); res = info->end_of_file + (info->write_pos-info->append_read_pos);
#ifdef THREAD #ifdef THREAD
pthread_mutex_unlock(&info->append_buffer_lock); pthread_mutex_unlock(&info->append_buffer_lock);
......
...@@ -299,7 +299,7 @@ static bool find_range_key(TABLE_REF *ref, Field* field, COND *cond) ...@@ -299,7 +299,7 @@ static bool find_range_key(TABLE_REF *ref, Field* field, COND *cond)
uint idx=0; uint idx=0;
/* Check if some key has field as first key part */ /* Check if some key has field as first key part */
if ((field->key_start & field->table->keys_in_use_for_query) &&A if ((field->key_start & field->table->keys_in_use_for_query) &&
(! cond || ! (cond->used_tables() & table->map))) (! cond || ! (cond->used_tables() & table->map)))
{ {
for (key_map key=field->key_start ; !(key & 1) ; idx++) for (key_map key=field->key_start ; !(key & 1) ; idx++)
......
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