Commit 82a72ee1 authored by unknown's avatar unknown

Merge bk-internal:/home/bk/mysql-4.0

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


BitKeeper/etc/ignore:
  auto-union
include/my_global.h:
  Auto merged
myisam/mi_rkey.c:
  Manual null merge as a better fix is already present.
mysql-test/r/myisam.result:
  Manual null merge as a better fix is already present.
mysql-test/t/myisam.test:
  Manual null merge as a better fix is already present.
sql/sql_select.cc:
  Manual merge of purify improvements.
parents ab7d1d70 dcb66590
*.Plo
*.Po
*.a *.a
*.bb *.bb
*.bbg *.bbg
...@@ -11,6 +13,8 @@ ...@@ -11,6 +13,8 @@
*.reject *.reject
*.spec *.spec
*/*_pure_*warnings */*_pure_*warnings
*/.deps
*/.libs/*
*/.pure */.pure
*~ *~
.*.swp .*.swp
...@@ -336,6 +340,7 @@ isam/test2 ...@@ -336,6 +340,7 @@ isam/test2
isam/test3 isam/test3
libmysql/*.c libmysql/*.c
libmysql/conf_to_src libmysql/conf_to_src
libmysql/libmysql.ver
libmysql/my_static.h libmysql/my_static.h
libmysql/my_time.c libmysql/my_time.c
libmysql/mysys_priv.h libmysql/mysys_priv.h
...@@ -443,6 +448,7 @@ libmysqld/sql_insert.cc ...@@ -443,6 +448,7 @@ libmysqld/sql_insert.cc
libmysqld/sql_lex.cc libmysqld/sql_lex.cc
libmysqld/sql_list.cc libmysqld/sql_list.cc
libmysqld/sql_load.cc libmysqld/sql_load.cc
libmysqld/sql_locale.cc
libmysqld/sql_manager.cc libmysqld/sql_manager.cc
libmysqld/sql_map.cc libmysqld/sql_map.cc
libmysqld/sql_olap.cc libmysqld/sql_olap.cc
...@@ -1057,5 +1063,3 @@ vio/test-ssl ...@@ -1057,5 +1063,3 @@ vio/test-ssl
vio/test-sslclient vio/test-sslclient
vio/test-sslserver vio/test-sslserver
vio/viotest-ssl vio/viotest-ssl
libmysql/libmysql.ver
libmysqld/sql_locale.cc
...@@ -132,7 +132,6 @@ int mi_rkey(MI_INFO *info, byte *buf, int inx, const byte *key, uint key_len, ...@@ -132,7 +132,6 @@ int mi_rkey(MI_INFO *info, byte *buf, int inx, const byte *key, uint key_len,
} }
} }
} }
if (share->concurrent_insert) if (share->concurrent_insert)
rw_unlock(&share->key_root_lock[inx]); rw_unlock(&share->key_root_lock[inx]);
......
...@@ -5,46 +5,46 @@ myisamchk: MyISAM file test2 ...@@ -5,46 +5,46 @@ myisamchk: MyISAM file test2
myisamchk: warning: Datafile is almost full, 65532 of 65534 used myisamchk: warning: Datafile is almost full, 65532 of 65534 used
MyISAM-table 'test2' is usable but should be fixed MyISAM-table 'test2' is usable but should be fixed
Commands Used count Errors Recover errors Commands Used count Errors Recover errors
open 17 0 0 open 7 0 0
write 850 0 0 write 350 0 0
update 85 0 0 update 35 0 0
delete 850 0 0 delete 350 0 0
close 17 0 0 close 7 0 0
extra 102 0 0 extra 42 0 0
Total 1921 0 0 Total 791 0 0
Commands Used count Errors Recover errors Commands Used count Errors Recover errors
open 18 0 0 open 8 0 0
write 900 0 0 write 400 0 0
update 90 0 0 update 40 0 0
delete 900 0 0 delete 400 0 0
close 18 0 0 close 8 0 0
extra 108 0 0 extra 48 0 0
Total 2034 0 0 Total 904 0 0
real 0m1.054s real 0m0.221s
user 0m0.410s user 0m0.120s
sys 0m0.640s sys 0m0.100s
real 0m1.077s real 0m0.222s
user 0m0.550s user 0m0.140s
sys 0m0.530s sys 0m0.084s
real 0m1.100s real 0m0.232s
user 0m0.420s user 0m0.112s
sys 0m0.680s sys 0m0.120s
real 0m0.783s real 0m0.163s
user 0m0.590s user 0m0.116s
sys 0m0.200s sys 0m0.036s
real 0m0.764s real 0m0.159s
user 0m0.560s user 0m0.136s
sys 0m0.210s sys 0m0.020s
real 0m0.699s real 0m0.147s
user 0m0.570s user 0m0.132s
sys 0m0.130s sys 0m0.016s
real 0m0.991s real 0m0.211s
user 0m0.630s user 0m0.124s
sys 0m0.350s sys 0m0.088s
...@@ -79,7 +79,8 @@ myisamchk$suffix -se test1 ...@@ -79,7 +79,8 @@ myisamchk$suffix -se test1
# check of myisampack / myisamchk # check of myisampack / myisamchk
myisampack$suffix --force -s test1 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 -rqs test1
myisamchk$suffix -es test1 myisamchk$suffix -es test1
myisamchk$suffix -rs test1 myisamchk$suffix -rs test1
......
...@@ -9083,6 +9083,8 @@ setup_copy_fields(THD *thd, TMP_TABLE_PARAM *param, ...@@ -9083,6 +9083,8 @@ setup_copy_fields(THD *thd, TMP_TABLE_PARAM *param,
param->copy_funcs.empty(); param->copy_funcs.empty();
for (i= 0; (pos= li++); i++) for (i= 0; (pos= li++); i++)
{ {
Field *field;
char *tmp;
if (pos->type() == Item::FIELD_ITEM) if (pos->type() == Item::FIELD_ITEM)
{ {
Item_field *item; Item_field *item;
...@@ -9111,14 +9113,22 @@ setup_copy_fields(THD *thd, TMP_TABLE_PARAM *param, ...@@ -9111,14 +9113,22 @@ setup_copy_fields(THD *thd, TMP_TABLE_PARAM *param,
set up save buffer and change result_field to point at set up save buffer and change result_field to point at
saved value saved value
*/ */
Field *field= item->field; field= item->field;
item->result_field=field->new_field(thd->mem_root,field->table); item->result_field=field->new_field(thd->mem_root,field->table);
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) if (!tmp)
goto err; goto err;
copy->set(tmp, item->result_field); copy->set(tmp, item->result_field);
item->result_field->move_field(copy->to_ptr,copy->to_null_ptr,1); item->result_field->move_field(copy->to_ptr,copy->to_null_ptr,1);
copy++; #ifdef HAVE_purify
copy->to_ptr[copy->from_length]= 0;
#endif
copy++;
} }
} }
else if ((pos->type() == Item::FUNC_ITEM || else if ((pos->type() == Item::FUNC_ITEM ||
......
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