Commit df0a4ed6 authored by unknown's avatar unknown
Browse files

Merge bk-internal.mysql.com:/home/bk/mysql-4.1

into mysql.com:/home/my/mysql-4.1


sql/sql_insert.cc:
  Auto merged
parents 57d9c6d0 167ce823
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
@@ -30,13 +30,13 @@ table7, table8, table9, table10, table11, table12, table13,
table14, table15, table16, table17, table18, table19, table20,
table21, table22, table23, table24, table25, table26, table27,
table28;
ERROR 42S02: Unknown table 'table1,table2,table3,table4,table5,table6,table7,table8,table9,table10,table11,table12,table13,table14,table15,table16,table17,table18,table19,table20,table21,table22,table23,table'
ERROR 42S02: Unknown table 'table1,table2,table3,table4,table5,table6,table7,table8,table9,table10,table11,table12,table13,table'
drop table table1, table2, table3, table4, table5, table6,
table7, table8, table9, table10, table11, table12, table13,
table14, table15, table16, table17, table18, table19, table20,
table21, table22, table23, table24, table25, table26, table27,
table28, table29, table30;
ERROR 42S02: Unknown table 'table1,table2,table3,table4,table5,table6,table7,table8,table9,table10,table11,table12,table13,table14,table15,table16,table17,table18,table19,table20,table21,table22,table23,table'
ERROR 42S02: Unknown table 'table1,table2,table3,table4,table5,table6,table7,table8,table9,table10,table11,table12,table13,table'
use test;
drop database mysqltest;
flush tables with read lock;
+1 −0
Original line number Diff line number Diff line
drop table if exists t1;
create table t1 (c1 char(5) unique not null, c2 int, stamp timestamp) engine=innodb;
select * from t1;
c1	c2	stamp
+4 −0
Original line number Diff line number Diff line
@@ -2,6 +2,10 @@
# embedded server ignores 'delayed', so skip this
-- source include/not_embedded.inc

--disable_warnings
drop table if exists t1;
--enable_warnings

#
# Bug #1078
#
+35 −27
Original line number Diff line number Diff line
@@ -402,33 +402,48 @@ static int search_default_file_with_ext(DYNAMIC_ARRAY *args, MEM_ROOT *alloc,
      continue;

    /* Configuration File Directives */
    if ((*ptr == '!') && (recursion_level < max_recursion_level))
    if ((*ptr == '!'))
    {
      if (recursion_level >= max_recursion_level)
      {
        for (end= ptr + strlen(ptr) - 1; 
             my_isspace(&my_charset_latin1, *(end - 1));
             end--)
        {}
        end[0]= 0;
        fprintf(stderr,
                "Warning: skipping '%s' directive as maximum include"
                "recursion level was reached in file %s at line %d\n",
                ptr, name, line);
        continue;
      }

      /* skip over `!' and following whitespace */
      for (++ptr; my_isspace(&my_charset_latin1, ptr[0]); ptr++)
      {}

      if ((!strncmp(ptr, includedir_keyword, sizeof(includedir_keyword) - 1))
         && my_isspace(&my_charset_latin1, ptr[sizeof(includedir_keyword) - 1]))
      if ((!strncmp(ptr, includedir_keyword,
                    sizeof(includedir_keyword) - 1)) &&
          my_isspace(&my_charset_latin1, ptr[sizeof(includedir_keyword) - 1]))
      {
        /* skip over "includedir" and following whitespace */
        for (ptr+= sizeof(includedir_keyword) - 1;
            my_isspace(&my_charset_latin1, ptr[0]); ptr++)
        {}

        /* trim trailing whitespace from directory name */
        end= ptr + strlen(ptr) - 1;
        /* fgets() stores the newline character in the buffer */
        if ((end[0] == '\n') || (end[0] == '\r') ||
            my_isspace(&my_charset_latin1, end[0]))
        {
          for (; my_isspace(&my_charset_latin1, *(end - 1)); end--)
        /*
          trim trailing whitespace from directory name
          The -1 below is for the newline added by fgets()
          Note that my_isspace() is true for \r and \n
        */
        for (end= ptr + strlen(ptr) - 1; 
             my_isspace(&my_charset_latin1, *(end - 1));
             end--)
        {}
        end[0]= 0;
        }

        /* print error msg if there is nothing after !includedir directive */
        if (end == ptr)
        if (end <= ptr)
        {
          fprintf(stderr,
                  "error: Wrong !includedir directive in config "
@@ -468,8 +483,8 @@ static int search_default_file_with_ext(DYNAMIC_ARRAY *args, MEM_ROOT *alloc,

        my_dirend(search_dir);
      }
      else if ((!strncmp(ptr, include_keyword, sizeof(include_keyword) - 1))
          && my_isspace(&my_charset_latin1, ptr[sizeof(include_keyword) - 1]))
      else if ((!strncmp(ptr, include_keyword, sizeof(include_keyword) - 1)) &&
               my_isspace(&my_charset_latin1, ptr[sizeof(include_keyword)-1]))
      {
        /* skip over `include' and following whitespace */
        for (ptr+= sizeof(include_keyword) - 1;
@@ -477,12 +492,13 @@ static int search_default_file_with_ext(DYNAMIC_ARRAY *args, MEM_ROOT *alloc,
        {}

        /* trim trailing whitespace from filename */
        end= ptr + strlen(ptr) - 1;
        for (; my_isspace(&my_charset_latin1, *(end - 1)) ; end--)
        for (end= ptr + strlen(ptr) - 1;
             my_isspace(&my_charset_latin1, *(end - 1));
             end--)
        {}
        end[0]= 0;

        if (end == ptr)
        if (end <= ptr)
        {
          fprintf(stderr,
                  "error: Wrong !include directive in config "
@@ -497,14 +513,6 @@ static int search_default_file_with_ext(DYNAMIC_ARRAY *args, MEM_ROOT *alloc,

      continue;
    }
    else
      if (recursion_level >= max_recursion_level)
      {
        fprintf(stderr,
                "warning: skipping !include directive as maximum include"
                "recursion level was reached in file %s at line %d\n",
                name, line);
      }

    if (*ptr == '[')				/* Group name */
    {
+7 −4
Original line number Diff line number Diff line
@@ -1025,7 +1025,7 @@ static void reg_requests(KEY_CACHE *keycache, BLOCK_LINK *block, int count)
    for a too long time (this time is determined by parameter age_threshold).
*/

static inline void unreg_request(KEY_CACHE *keycache,
static void unreg_request(KEY_CACHE *keycache,
                          BLOCK_LINK *block, int at_end)
{
  if (! --block->requests)
@@ -1045,10 +1045,13 @@ static inline void unreg_request(KEY_CACHE *keycache,
    }
    link_block(keycache, block, hot, (my_bool)at_end);
    block->last_hit_time= keycache->keycache_time;
    if (++keycache->keycache_time - keycache->used_ins->last_hit_time >
    keycache->keycache_time++;

    block= keycache->used_ins;
    /* Check if we should link a hot block to the warm block */
    if (block && keycache->keycache_time - block->last_hit_time >
	keycache->age_threshold)
    {
      block= keycache->used_ins;
      unlink_block(keycache, block);
      link_block(keycache, block, 0, 0);
      if (block->temperature != BLOCK_WARM)
Loading