Commit 08f4565e authored by unknown's avatar unknown
Browse files

Merge chilla.local:/home/mydev/mysql-4.1-bug14400-monty

into  chilla.local:/home/mydev/mysql-5.0-bug14400-monty


BitKeeper/etc/ignore:
  auto-union
include/my_global.h:
  Auto merged
myisam/mi_rkey.c:
  Auto merged
mysql-test/r/myisam.result:
  Auto merged
mysql-test/t/myisam.test:
  Auto merged
myisam/mi_test_all.res:
  Manual merge from 4.1.
sql/sql_select.cc:
  Manual merge from 4.1.
parents 06ced7c1 82a72ee1
Loading
Loading
Loading
Loading
+2 −0
Original line number Diff line number Diff line
@@ -31,6 +31,8 @@
*.vcproj
*/*.dir/*
*/*_pure_*warnings
*/.deps
*/.libs/*
*/.pure
*/debug/*
*/release/*
+0 −1
Original line number Diff line number Diff line
@@ -133,7 +133,6 @@ int mi_rkey(MI_INFO *info, byte *buf, int inx, const byte *key, uint key_len,
      }
    }
  }

  if (share->concurrent_insert)
    rw_unlock(&share->key_root_lock[inx]);

+35 −35
Original line number Diff line number Diff line
@@ -8,46 +8,46 @@ myisamchk: MyISAM file test2
myisamchk: warning: Datafile is almost full,      65532 of      65534 used
MyISAM-table 'test2' is usable but should be fixed
Commands   Used count    Errors   Recover errors
open                1         0                0
write              50         0                0
update              5         0                0
delete             50         0                0
close               1         0                0
extra               6         0                0
Total             113         0                0
open                7         0                0
write             350         0                0
update             35         0                0
delete            350         0                0
close               7         0                0
extra              42         0                0
Total             791         0                0
Commands   Used count    Errors   Recover errors
open                2         0                0
write             100         0                0
update             10         0                0
delete            100         0                0
close               2         0                0
extra              12         0                0
Total             226         0                0
open                8         0                0
write             400         0                0
update             40         0                0
delete            400         0                0
close               8         0                0
extra              48         0                0
Total             904         0                0

real	0m0.791s
user	0m0.137s
sys	0m0.117s
real	0m0.221s
user	0m0.120s
sys	0m0.100s

real	0m0.659s
user	0m0.252s
sys	0m0.102s
real	0m0.222s
user	0m0.140s
sys	0m0.084s

real	0m0.571s
user	0m0.188s
sys	0m0.098s
real	0m0.232s
user	0m0.112s
sys	0m0.120s

real	0m1.111s
user	0m0.236s
sys	0m0.037s
real	0m0.163s
user	0m0.116s
sys	0m0.036s

real	0m0.621s
user	0m0.242s
sys	0m0.022s
real	0m0.159s
user	0m0.136s
sys	0m0.020s

real	0m0.698s
user	0m0.248s
sys	0m0.021s
real	0m0.147s
user	0m0.132s
sys	0m0.016s

real	0m0.683s
user	0m0.265s
sys	0m0.079s
real	0m0.211s
user	0m0.124s
sys	0m0.088s
+2 −1
Original line number Diff line number Diff line
@@ -79,7 +79,8 @@ myisamchk$suffix -se test1

# check of myisampack / myisamchk
myisampack$suffix --force -s test1
myisamchk$suffix -es test1
# Ignore error for index file
myisamchk$suffix -es test1 2>&1 >& /dev/null
myisamchk$suffix -rqs test1
myisamchk$suffix -es test1
myisamchk$suffix -rs test1
+12 −3
Original line number Diff line number Diff line
@@ -13189,6 +13189,8 @@ setup_copy_fields(THD *thd, TMP_TABLE_PARAM *param,
  param->copy_funcs.empty();
  for (i= 0; (pos= li++); i++)
  {
    Field *field;
    char *tmp;
    Item *real_pos= pos->real_item();
    if (real_pos->type() == Item::FIELD_ITEM)
    {
@@ -13219,19 +13221,26 @@ setup_copy_fields(THD *thd, TMP_TABLE_PARAM *param,
	   set up save buffer and change result_field to point at 
	   saved value
	*/
	Field *field= item->field;
	field= item->field;
	item->result_field=field->new_field(thd->mem_root,field->table, 1);
	char *tmp=(char*) sql_alloc(field->pack_length()+1);
        /*
          We need to allocate one extra byte for null handling and
          another extra byte to not get warnings from purify in
          Field_string::val_int
        */
	tmp= (char*) sql_alloc(field->pack_length()+2);
	if (!tmp)
	  goto err;
      if (copy)
      {
        copy->set(tmp, item->result_field);
        item->result_field->move_field(copy->to_ptr,copy->to_null_ptr,1);
#ifdef HAVE_purify
        copy->to_ptr[copy->from_length]= 0;
#endif
        copy++;
      }
    }
    }
    else if ((real_pos->type() == Item::FUNC_ITEM ||
	      real_pos->type() == Item::SUBSELECT_ITEM ||
	      real_pos->type() == Item::CACHE_ITEM ||