Commit fe675641 authored by reggie@bob.(none)'s avatar reggie@bob.(none)

Merge bob.(none):/home/reggie/bk/mysql41

into bob.(none):/home/reggie/bk/mysql5.0
parents 941b959c 16334eb4
...@@ -219,6 +219,7 @@ AsyncFile::run() ...@@ -219,6 +219,7 @@ AsyncFile::run()
rmrfReq(request, (char*)theFileName.c_str(), request->par.rmrf.own_directory); rmrfReq(request, (char*)theFileName.c_str(), request->par.rmrf.own_directory);
break; break;
case Request:: end: case Request:: end:
if (theFd > 0)
closeReq(request); closeReq(request);
endReq(); endReq();
return; return;
...@@ -239,6 +240,7 @@ void AsyncFile::openReq(Request* request) ...@@ -239,6 +240,7 @@ void AsyncFile::openReq(Request* request)
{ {
m_openedWithSync = false; m_openedWithSync = false;
m_syncFrequency = 0; m_syncFrequency = 0;
m_syncCount= 0;
// for open.flags, see signal FSOPENREQ // for open.flags, see signal FSOPENREQ
#ifdef NDB_WIN32 #ifdef NDB_WIN32
...@@ -329,7 +331,6 @@ void AsyncFile::openReq(Request* request) ...@@ -329,7 +331,6 @@ void AsyncFile::openReq(Request* request)
} else { } else {
#endif #endif
m_openedWithSync = false; m_openedWithSync = false;
m_syncCount = 0;
m_syncFrequency = Global_syncFreq; m_syncFrequency = Global_syncFreq;
#if 0 #if 0
} }
...@@ -656,6 +657,7 @@ AsyncFile::writeBuffer(const char * buf, size_t size, off_t offset, ...@@ -656,6 +657,7 @@ AsyncFile::writeBuffer(const char * buf, size_t size, off_t offset,
} }
#endif #endif
m_syncCount+= bytes_written;
buf += bytes_written; buf += bytes_written;
size -= bytes_written; size -= bytes_written;
offset += bytes_written; offset += bytes_written;
...@@ -682,6 +684,10 @@ AsyncFile::closeReq(Request * request) ...@@ -682,6 +684,10 @@ AsyncFile::closeReq(Request * request)
hFile = INVALID_HANDLE_VALUE; hFile = INVALID_HANDLE_VALUE;
#else #else
if (-1 == ::close(theFd)) { if (-1 == ::close(theFd)) {
#ifndef DBUG_OFF
if (theFd == -1)
abort();
#endif
request->error = errno; request->error = errno;
} }
theFd = -1; theFd = -1;
...@@ -700,7 +706,8 @@ bool AsyncFile::isOpen(){ ...@@ -700,7 +706,8 @@ bool AsyncFile::isOpen(){
void void
AsyncFile::syncReq(Request * request) AsyncFile::syncReq(Request * request)
{ {
if(m_openedWithSync){ if(m_openedWithSync ||
m_syncCount == 0){
return; return;
} }
#ifdef NDB_WIN32 #ifdef NDB_WIN32
...@@ -756,7 +763,6 @@ AsyncFile::appendReq(Request * request){ ...@@ -756,7 +763,6 @@ AsyncFile::appendReq(Request * request){
if(m_syncFrequency != 0 && m_syncCount > m_syncFrequency){ if(m_syncFrequency != 0 && m_syncCount > m_syncFrequency){
syncReq(request); syncReq(request);
request->error = 0;
} }
} }
......
...@@ -2394,8 +2394,7 @@ bool mysql_create_like_table(THD* thd, TABLE_LIST* table, ...@@ -2394,8 +2394,7 @@ bool mysql_create_like_table(THD* thd, TABLE_LIST* table,
strxmov(src_path, (*tmp_table)->s->path, reg_ext, NullS); strxmov(src_path, (*tmp_table)->s->path, reg_ext, NullS);
else else
{ {
strxmov(src_path, mysql_data_home, "/", src_db, "/", src_table, fn_format( src_path, src_table, src_db, reg_ext, MYF(MY_UNPACK_FILENAME));
reg_ext, NullS);
if (access(src_path, F_OK)) if (access(src_path, F_OK))
{ {
my_error(ER_BAD_TABLE_ERROR, MYF(0), src_table); my_error(ER_BAD_TABLE_ERROR, MYF(0), src_table);
...@@ -2422,8 +2421,7 @@ bool mysql_create_like_table(THD* thd, TABLE_LIST* table, ...@@ -2422,8 +2421,7 @@ bool mysql_create_like_table(THD* thd, TABLE_LIST* table,
} }
else else
{ {
strxmov(dst_path, mysql_data_home, "/", db, "/", table_name, fn_format( dst_path, table_name, db, reg_ext, MYF(MY_UNPACK_FILENAME));
reg_ext, NullS);
if (!access(dst_path, F_OK)) if (!access(dst_path, F_OK))
goto table_exists; goto table_exists;
} }
......
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