BUG#59267 LOAD DATA LOCAL INFILE not executed on slave with SBR
On windows, an #endif in a wrong place was causing an early return from mysql_load and thus the LOAD DATA LOCAL was not executed. This problem was fixed by moving the #endif to the right place. The following code was missing if ((stat_info.st_mode & S_IFIFO) == S_IFIFO) is_fifo = 1; which is required to properly configure and read from the IO_CACHE when a named pipe is used. So it was re-introduced before the #endif.
This commit is contained in:
parent
493c6e57b7
commit
c04979b841
@ -74,6 +74,21 @@ LOAD/*!99999 special comments that do not expand */DATA/*!99999 code from the fu
|
||||
SET sql_mode='PIPES_AS_CONCAT,ANSI_QUOTES,NO_KEY_OPTIONS,NO_TABLE_OPTIONS,NO_FIELD_OPTIONS,STRICT_TRANS_TABLES,STRICT_ALL_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,TRADITIONAL,NO_AUTO_CREATE_USER';
|
||||
LOAD DATA LOCAL INFILE 'MYSQLD_DATADIR/bug43746.sql' INTO TABLE t1;
|
||||
[slave]
|
||||
|
||||
Bug #59267:
|
||||
"LOAD DATA LOCAL INFILE not executed on slave with SBR"
|
||||
|
||||
[master]
|
||||
SELECT * INTO OUTFILE 'MYSQLD_DATADIR/bug59267.sql' FROM t1;
|
||||
TRUNCATE TABLE t1;
|
||||
LOAD DATA LOCAL INFILE 'MYSQLD_DATADIR/bug59267.sql' INTO TABLE t1;
|
||||
SELECT 'Master', COUNT(*) FROM t1;
|
||||
Master COUNT(*)
|
||||
Master 44
|
||||
[slave]
|
||||
SELECT 'Slave', COUNT(*) FROM t1;
|
||||
Slave COUNT(*)
|
||||
Slave 44
|
||||
[master]
|
||||
DROP TABLE t1;
|
||||
SET SESSION sql_mode=@old_mode;
|
||||
|
@ -151,12 +151,34 @@ eval LOAD DATA LOCAL INFILE '$MYSQLD_DATADIR/bug43746.sql' INTO TABLE t1;
|
||||
--echo [slave]
|
||||
sync_slave_with_master;
|
||||
|
||||
# cleanup
|
||||
|
||||
--remove_file $MYSQLD_DATADIR/bug43746.sql
|
||||
--echo
|
||||
--echo Bug #59267:
|
||||
--echo "LOAD DATA LOCAL INFILE not executed on slave with SBR"
|
||||
--echo
|
||||
|
||||
--echo [master]
|
||||
connection master;
|
||||
|
||||
--replace_result $MYSQLD_DATADIR MYSQLD_DATADIR
|
||||
eval SELECT * INTO OUTFILE '$MYSQLD_DATADIR/bug59267.sql' FROM t1;
|
||||
TRUNCATE TABLE t1;
|
||||
|
||||
--replace_result $MYSQLD_DATADIR MYSQLD_DATADIR
|
||||
eval LOAD DATA LOCAL INFILE '$MYSQLD_DATADIR/bug59267.sql' INTO TABLE t1;
|
||||
|
||||
SELECT 'Master', COUNT(*) FROM t1;
|
||||
|
||||
--echo [slave]
|
||||
--sync_slave_with_master
|
||||
SELECT 'Slave', COUNT(*) FROM t1;
|
||||
|
||||
# cleanup
|
||||
--echo [master]
|
||||
connection master;
|
||||
|
||||
--remove_file $MYSQLD_DATADIR/bug43746.sql
|
||||
--remove_file $MYSQLD_DATADIR/bug59267.sql
|
||||
|
||||
DROP TABLE t1;
|
||||
SET SESSION sql_mode=@old_mode;
|
||||
|
||||
|
@ -410,9 +410,11 @@ int mysql_load(THD *thd,sql_exchange *ex,TABLE_LIST *table_list,
|
||||
my_error(ER_TEXTFILE_NOT_READABLE, MYF(0), name);
|
||||
DBUG_RETURN(TRUE);
|
||||
}
|
||||
if ((stat_info.st_mode & S_IFIFO) == S_IFIFO)
|
||||
is_fifo = 1;
|
||||
#endif
|
||||
if ((file= mysql_file_open(key_file_load,
|
||||
name, O_RDONLY, MYF(MY_WME))) < 0)
|
||||
#endif
|
||||
|
||||
DBUG_RETURN(TRUE);
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user