From 552656c3ba5e3604fabc656f8b7dec805febb91b Mon Sep 17 00:00:00 2001
From: unknown <sasha@mysql.sashanet.com>
Date: Thu, 31 Jan 2002 16:17:24 -0700
Subject: [PATCH] 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.

mysql-test/r/rpl000001.result:
  updated result
mysys/mf_iocache2.c:
  fixed wrong DBUG_ASSERT()
sql/opt_sum.cc:
  fixed an apparent typo to make it compile
---
 mysql-test/r/rpl000001.result | 23 +++++++++++------------
 mysys/mf_iocache2.c           | 14 +++++++++++++-
 sql/opt_sum.cc                |  2 +-
 3 files changed, 25 insertions(+), 14 deletions(-)

diff --git a/mysql-test/r/rpl000001.result b/mysql-test/r/rpl000001.result
index ab242b349cd..3dae52c6d3f 100644
--- a/mysql-test/r/rpl000001.result
+++ b/mysql-test/r/rpl000001.result
@@ -7,7 +7,7 @@ use test;
 drop table if exists t1,t3;
 create table t1 (word char(20) not null);
 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;
 word
 Aarhus
@@ -44,19 +44,18 @@ sum(length(word))
 141
 drop table t1,t3;
 reset master;
+slave stop;
 reset slave;
 drop table if exists t1,t2;
 create table t1(n int);
-insert into t1 values(10);
-insert into t1 values(9);
-insert into t1 values(8);
-insert into t1 values(7);
-insert into t1 values(6);
-insert into t1 values(5);
-insert into t1 values(4);
-insert into t1 values(3);
-insert into t1 values(2);
-insert into t1 values(1);
+select get_lock("hold_slave",10);
+get_lock("hold_slave",10)
+1
+slave start;
+select release_lock("hold_slave");
+release_lock("hold_slave")
+1
+unlock tables;
 create table t2(id int);
 insert into t2 values(connection_id());
 create temporary table t1_temp(n int);
@@ -72,7 +71,7 @@ set sql_slave_skip_counter=1;
 slave start;
 select count(*) from t1;
 count(*)
-10
+5000
 drop table t1;
 create table t1 (n int);
 insert into t1 values(3456);
diff --git a/mysys/mf_iocache2.c b/mysys/mf_iocache2.c
index 00ebf1e6846..127bf20e8fe 100644
--- a/mysys/mf_iocache2.c
+++ b/mysys/mf_iocache2.c
@@ -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
      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))));
+   my_seek(info->file,save_pos,MY_SEEK_SET,MYF(0));
+  }
+#endif  
   res = info->end_of_file + (info->write_pos-info->append_read_pos);
 #ifdef THREAD
   pthread_mutex_unlock(&info->append_buffer_lock);
diff --git a/sql/opt_sum.cc b/sql/opt_sum.cc
index 31611798064..78878c40b37 100644
--- a/sql/opt_sum.cc
+++ b/sql/opt_sum.cc
@@ -299,7 +299,7 @@ static bool find_range_key(TABLE_REF *ref, Field* field, COND *cond)
   uint idx=0;
 
   /* 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)))
   {
     for (key_map key=field->key_start ; !(key & 1) ; idx++)
-- 
2.30.9