From b331fe928c38666a7119aa62f7a8e3acbb4e330a Mon Sep 17 00:00:00 2001
From: unknown <guilhem@mysql.com>
Date: Sun, 2 Mar 2003 18:20:32 +0100
Subject: [PATCH] ChangeSet 1.1625 was faulty as regards sql/mf_iocache.cc and
 LOAD DATA LOCAL replication tests

mysql-test/r/rpl_loaddatalocal.result:
  ChangeSet 1.1625 was faulty as regards this file (LOAD DATA LOCAL bug)
mysql-test/t/rpl_loaddatalocal.test:
  ChangeSet 1.1625 was faulty as regards this file (LOAD DATA LOCAL bug)
sql/mf_iocache.cc:
  ChangeSet 1.1625 was faulty as regards this file (LOAD DATA LOCAL bug)
---
 mysql-test/r/rpl_loaddatalocal.result | 14 +++++++++++
 mysql-test/t/rpl_loaddatalocal.test   | 36 +++++++++++++++++++++++++++
 sql/mf_iocache.cc                     |  1 -
 3 files changed, 50 insertions(+), 1 deletion(-)

diff --git a/mysql-test/r/rpl_loaddatalocal.result b/mysql-test/r/rpl_loaddatalocal.result
index e69de29bb2d..dc98b1b5bfb 100644
--- a/mysql-test/r/rpl_loaddatalocal.result
+++ b/mysql-test/r/rpl_loaddatalocal.result
@@ -0,0 +1,14 @@
+slave stop;
+drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
+reset master;
+reset slave;
+drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
+slave start;
+create table t1(a int);
+select * into outfile '../../var/master-data/rpl_loaddatalocal.select_outfile' from t1;
+truncate table t1;
+load data local infile './var/master-data/rpl_loaddatalocal.select_outfile' into table t1;
+select a,count(*) from t1 group by a;
+a	count(*)
+1	10000
+drop table t1;
diff --git a/mysql-test/t/rpl_loaddatalocal.test b/mysql-test/t/rpl_loaddatalocal.test
index e69de29bb2d..70f4ab96b6a 100644
--- a/mysql-test/t/rpl_loaddatalocal.test
+++ b/mysql-test/t/rpl_loaddatalocal.test
@@ -0,0 +1,36 @@
+# See if "LOAD DATA LOCAL INFILE" is well replicated
+# (LOAD DATA LOCAL INFILE is not written to the binlog
+# the same way as LOAD DATA INFILE : Append_blocks are smaller).
+# In MySQL 4.0 <4.0.12 there were 2 bugs with LOAD DATA LOCAL INFILE :
+# - the loaded file was not written entirely to the master's binlog,
+# only the first 4KB, 8KB or 16KB usually.
+# - the loaded file's first line was not written entirely to the
+# master's binlog (1st char was absent)
+source include/master-slave.inc;
+
+create table t1(a int);
+let $1=10000;
+disable_query_log;
+set SQL_LOG_BIN=0;
+while ($1)
+{
+#eval means expand $ expressions
+ eval insert into t1 values(1);
+ dec $1;
+}
+set SQL_LOG_BIN=1;
+enable_query_log;
+select * into outfile '../../var/master-data/rpl_loaddatalocal.select_outfile' from t1;
+#This will generate a 20KB file, now test LOAD DATA LOCAL
+truncate table t1;
+load data local infile './var/master-data/rpl_loaddatalocal.select_outfile' into table t1;
+system rm ./var/master-data/rpl_loaddatalocal.select_outfile ;
+save_master_pos;
+connection slave;
+sync_with_master;
+select a,count(*) from t1 group by a;
+connection master;
+drop table t1;
+save_master_pos;
+connection slave;
+sync_with_master;
diff --git a/sql/mf_iocache.cc b/sql/mf_iocache.cc
index 3b70dae2563..c79317cfeb3 100644
--- a/sql/mf_iocache.cc
+++ b/sql/mf_iocache.cc
@@ -81,7 +81,6 @@ int _my_b_net_read(register IO_CACHE *info, byte *Buffer,
 
   info->read_pos++;
 
-info->request_pos=info->read_pos;
   DBUG_RETURN(0);
 }
 
-- 
2.30.9