Commit 42e8d71d authored by unknown's avatar unknown

Merge jamppa@bk-internal.mysql.com:/home/bk/mysql-5.0

into ua141d10.elisa.omakaista.fi:/home/my/bk/mysql-5.0
parents 890835d9 67ebe351
...@@ -44,7 +44,7 @@ ...@@ -44,7 +44,7 @@
#include <locale.h> #include <locale.h>
#endif #endif
const char *VER= "14.8"; const char *VER= "14.9";
/* Don't try to make a nice table if the data is too big */ /* Don't try to make a nice table if the data is too big */
#define MAX_COLUMN_LENGTH 1024 #define MAX_COLUMN_LENGTH 1024
...@@ -1045,7 +1045,12 @@ static COMMANDS *find_command (char *name,char cmd_char) ...@@ -1045,7 +1045,12 @@ static COMMANDS *find_command (char *name,char cmd_char)
{ {
while (my_isspace(charset_info,*name)) while (my_isspace(charset_info,*name))
name++; name++;
if (strstr(name, delimiter) || strstr(name, "\\g")) /*
As special case we allow row that starts with word delimiter
to be able to change delimiter if someone has delimiter 'delimiter'.
*/
if (strstr(name, "\\g") || (strstr(name, delimiter) &&
strncmp(name, "delimiter", 9)))
return ((COMMANDS *) 0); return ((COMMANDS *) 0);
if ((end=strcont(name," \t"))) if ((end=strcont(name," \t")))
{ {
......
...@@ -279,7 +279,6 @@ enum loglevel { ...@@ -279,7 +279,6 @@ enum loglevel {
enum cache_type enum cache_type
{ {
READ_CACHE,WRITE_CACHE, READ_CACHE,WRITE_CACHE,
APPEND_CACHE, /* Like WRITE_CACHE, but only append */
SEQ_READ_APPEND /* sequential read or append */, SEQ_READ_APPEND /* sequential read or append */,
READ_FIFO, READ_NET,WRITE_NET}; READ_FIFO, READ_NET,WRITE_NET};
......
...@@ -87,7 +87,7 @@ static void my_aiowait(my_aio_result *result); ...@@ -87,7 +87,7 @@ static void my_aiowait(my_aio_result *result);
void setup_io_cache(IO_CACHE* info) void setup_io_cache(IO_CACHE* info)
{ {
/* Ensure that my_b_tell() and my_b_bytes_in_cache works */ /* Ensure that my_b_tell() and my_b_bytes_in_cache works */
if (info->type == WRITE_CACHE || info->type == APPEND_CACHE) if (info->type == WRITE_CACHE)
{ {
info->current_pos= &info->write_pos; info->current_pos= &info->write_pos;
info->current_end= &info->write_end; info->current_end= &info->write_end;
...@@ -247,7 +247,7 @@ int init_io_cache(IO_CACHE *info, File file, uint cachesize, ...@@ -247,7 +247,7 @@ int init_io_cache(IO_CACHE *info, File file, uint cachesize,
} }
#endif #endif
if (type == WRITE_CACHE || type == APPEND_CACHE) if (type == WRITE_CACHE)
info->write_end= info->write_end=
info->buffer+info->buffer_length- (seek_offset & (IO_SIZE-1)); info->buffer+info->buffer_length- (seek_offset & (IO_SIZE-1));
else else
...@@ -318,7 +318,6 @@ my_bool reinit_io_cache(IO_CACHE *info, enum cache_type type, ...@@ -318,7 +318,6 @@ my_bool reinit_io_cache(IO_CACHE *info, enum cache_type type,
/* One can't do reinit with the following types */ /* One can't do reinit with the following types */
DBUG_ASSERT(type != READ_NET && info->type != READ_NET && DBUG_ASSERT(type != READ_NET && info->type != READ_NET &&
type != WRITE_NET && info->type != WRITE_NET && type != WRITE_NET && info->type != WRITE_NET &&
type != APPEND_CACHE && info->type != APPEND_CACHE &&
type != SEQ_READ_APPEND && info->type != SEQ_READ_APPEND); type != SEQ_READ_APPEND && info->type != SEQ_READ_APPEND);
/* If the whole file is in memory, avoid flushing to disk */ /* If the whole file is in memory, avoid flushing to disk */
...@@ -1124,8 +1123,7 @@ int my_b_flush_io_cache(IO_CACHE *info, int need_append_buffer_lock) ...@@ -1124,8 +1123,7 @@ int my_b_flush_io_cache(IO_CACHE *info, int need_append_buffer_lock)
my_off_t pos_in_file; my_off_t pos_in_file;
DBUG_ENTER("my_b_flush_io_cache"); DBUG_ENTER("my_b_flush_io_cache");
if (!(append_cache = (info->type == SEQ_READ_APPEND || if (!(append_cache = (info->type == SEQ_READ_APPEND)))
info->type == APPEND_CACHE)))
need_append_buffer_lock=0; need_append_buffer_lock=0;
if (info->type == WRITE_CACHE || append_cache) if (info->type == WRITE_CACHE || append_cache)
...@@ -1172,13 +1170,7 @@ int my_b_flush_io_cache(IO_CACHE *info, int need_append_buffer_lock) ...@@ -1172,13 +1170,7 @@ int my_b_flush_io_cache(IO_CACHE *info, int need_append_buffer_lock)
else else
{ {
info->end_of_file+=(info->write_pos-info->append_read_pos); info->end_of_file+=(info->write_pos-info->append_read_pos);
/* DBUG_ASSERT(info->end_of_file == my_tell(info->file,MYF(0)));
We only need to worry that info->end_of_file is really accurate
for SEQ_READ_APPEND. For APPEND_CACHE, it is possible that the
file is non-seekable, like a FIFO.
*/
DBUG_ASSERT(info->type != SEQ_READ_APPEND ||
info->end_of_file == my_tell(info->file,MYF(0)));
} }
info->append_read_pos=info->write_pos=info->write_buffer; info->append_read_pos=info->write_pos=info->write_buffer;
......
...@@ -293,13 +293,13 @@ class MYSQL_LOG: public TC_LOG ...@@ -293,13 +293,13 @@ class MYSQL_LOG: public TC_LOG
{ {
char buf[FN_REFLEN]; char buf[FN_REFLEN];
return open(generate_name(log_name, ".log", 0, buf), return open(generate_name(log_name, ".log", 0, buf),
LOG_NORMAL, 0, APPEND_CACHE, 0, 0, 0); LOG_NORMAL, 0, WRITE_CACHE, 0, 0, 0);
} }
bool open_slow_log(const char *log_name) bool open_slow_log(const char *log_name)
{ {
char buf[FN_REFLEN]; char buf[FN_REFLEN];
return open(generate_name(log_name, "-slow.log", 0, buf), return open(generate_name(log_name, "-slow.log", 0, buf),
LOG_NORMAL, 0, APPEND_CACHE, 0, 0, 0); LOG_NORMAL, 0, WRITE_CACHE, 0, 0, 0);
} }
bool open_index_file(const char *index_file_name_arg, bool open_index_file(const char *index_file_name_arg,
const char *log_name); const char *log_name);
......
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