Bug#25807 LOAD DATA INFILE does not work with Pipes
- Additional fix for io_cache_init being called on a closed file mysys/mf_iocache.c: The file does not need to be open when init_io_cache is called so don't call my_tell in that case
This commit is contained in:
parent
a9afbd5085
commit
ec6807d32f
@ -170,24 +170,28 @@ int init_io_cache(IO_CACHE *info, File file, uint cachesize,
|
|||||||
info->arg = 0;
|
info->arg = 0;
|
||||||
info->alloced_buffer = 0;
|
info->alloced_buffer = 0;
|
||||||
info->buffer=0;
|
info->buffer=0;
|
||||||
|
info->seek_not_done= 0;
|
||||||
|
|
||||||
pos= my_tell(file, MYF(0));
|
if (file >= 0)
|
||||||
if ((pos == (my_off_t) -1) && (my_errno == ESPIPE))
|
|
||||||
{
|
{
|
||||||
/*
|
pos= my_tell(file, MYF(0));
|
||||||
This kind of object doesn't support seek() or tell(). Don't set a flag
|
if ((pos == (my_off_t) -1) && (my_errno == ESPIPE))
|
||||||
that will make us again try to seek() later and fail.
|
{
|
||||||
*/
|
/*
|
||||||
info->seek_not_done= 0;
|
This kind of object doesn't support seek() or tell(). Don't set a
|
||||||
/*
|
flag that will make us again try to seek() later and fail.
|
||||||
Additionally, if we're supposed to start somewhere other than the
|
*/
|
||||||
the beginning of whatever this file is, then somebody made a bad
|
info->seek_not_done= 0;
|
||||||
assumption.
|
/*
|
||||||
*/
|
Additionally, if we're supposed to start somewhere other than the
|
||||||
DBUG_ASSERT(seek_offset == 0);
|
the beginning of whatever this file is, then somebody made a bad
|
||||||
|
assumption.
|
||||||
|
*/
|
||||||
|
DBUG_ASSERT(seek_offset == 0);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
info->seek_not_done= test(seek_offset != pos);
|
||||||
}
|
}
|
||||||
else
|
|
||||||
info->seek_not_done= test(file >= 0 && seek_offset != pos);
|
|
||||||
|
|
||||||
info->disk_writes= 0;
|
info->disk_writes= 0;
|
||||||
#ifdef THREAD
|
#ifdef THREAD
|
||||||
|
Loading…
x
Reference in New Issue
Block a user