List:Commits« Previous MessageNext Message »
From:Tatiana A. Nurnberg Date:March 6 2009 3:29pm
Subject:bzr commit into mysql-6.0-bugteam branch (azundris:3088)
View as plain text  
#At file:///misc/mysql/forest/40657_/60-40657_/ based on revid:azundris@stripped

 3088 Tatiana A. Nurnberg	2009-03-06 [merge]
      manual merge

    added:
      mysql-test/r/innodb-consistent.result
      mysql-test/r/innodb_ctype_ldml.result
      mysql-test/suite/binlog/r/binlog_sql_mode.result
      mysql-test/suite/binlog/t/binlog_sql_mode.test
      mysql-test/suite/rpl/r/rpl_mixed_bit_pk.result
      mysql-test/suite/rpl/t/rpl_mixed_bit_pk.test
      mysql-test/t/innodb-consistent-master.opt
      mysql-test/t/innodb-consistent.test
      mysql-test/t/innodb_ctype_ldml-master.opt
      mysql-test/t/innodb_ctype_ldml.test
    modified:
      .bzrignore
      mysql-test/extra/rpl_tests/rpl_row_func003.test
      mysql-test/include/handler.inc
      mysql-test/lib/mtr_gcov.pl
      mysql-test/mysql-test-run.pl
      mysql-test/r/comment_column.result
      mysql-test/r/comment_table.result
      mysql-test/r/debug_sync.result
      mysql-test/r/group_by.result
      mysql-test/r/group_min_max.result
      mysql-test/r/innodb.result
      mysql-test/r/lock.result
      mysql-test/r/locktrans_innodb.result
      mysql-test/r/locktrans_myisam.result
      mysql-test/r/mysqlcheck.result
      mysql-test/r/preload.result
      mysql-test/r/ps.result
      mysql-test/r/repair.result
      mysql-test/r/show_check.result
      mysql-test/r/skip_name_resolve.result
      mysql-test/r/variables.result
      mysql-test/r/view_grant.result
      mysql-test/suite/backup/r/backup_backupdir.result
      mysql-test/suite/backup/r/backup_db_grants.result
      mysql-test/suite/backup/r/backup_objects.result
      mysql-test/suite/binlog/r/binlog_unsafe.result
      mysql-test/suite/binlog/t/binlog_unsafe.test
      mysql-test/suite/funcs_1/r/falcon_views.result
      mysql-test/suite/funcs_1/r/innodb_views.result
      mysql-test/suite/funcs_1/r/is_columns_falcon.result
      mysql-test/suite/funcs_1/r/is_columns_innodb.result
      mysql-test/suite/funcs_1/r/is_columns_memory.result
      mysql-test/suite/funcs_1/r/is_columns_myisam.result
      mysql-test/suite/funcs_1/r/memory_views.result
      mysql-test/suite/funcs_1/r/myisam_views.result
      mysql-test/suite/funcs_1/r/ndb_views.result
      mysql-test/suite/maria/r/maria-preload.result
      mysql-test/suite/rpl/r/rpl_failed_optimize.result
      mysql-test/suite/rpl/r/rpl_heartbeat.result
      mysql-test/suite/rpl/r/rpl_locktrans_falcon.result
      mysql-test/suite/rpl/r/rpl_locktrans_innodb.result
      mysql-test/suite/rpl/r/rpl_locktrans_myisam.result
      mysql-test/t/comment_column.test
      mysql-test/t/comment_table.test
      mysql-test/t/ddl_i18n_koi8r.test
      mysql-test/t/ddl_i18n_utf8.test
      mysql-test/t/disabled.def
      mysql-test/t/drop.test
      mysql-test/t/func_group.test
      mysql-test/t/group_by.test
      mysql-test/t/group_min_max.test
      mysql-test/t/innodb.test
      mysql-test/t/lock.test
      mysql-test/t/mysql.test
      mysql-test/t/mysqldump-compat.test
      mysql-test/t/mysqltest.test
      mysql-test/t/show_check.test
      mysql-test/t/skip_name_resolve.test
      mysql-test/t/variables.test
      mysql-test/t/view_grant.test
      sql/item_func.cc
      sql/log.cc
      sql/mysqld.cc
      sql/opt_range.cc
      sql/protocol.cc
      sql/rpl_record.cc
      sql/set_var.cc
      sql/share/errmsg.txt
      sql/sp.cc
      sql/sql_cache.cc
      sql/sql_class.cc
      sql/sql_class.h
      sql/sql_lex.cc
      sql/sql_lex.h
      sql/sql_parse.cc
      sql/sql_show.cc
      sql/sql_table.cc
      sql/sql_yacc.yy
      sql/unireg.cc
      storage/innobase/dict/dict0load.c
      storage/innobase/fsp/fsp0fsp.c
      storage/innobase/handler/ha_innodb.cc
      storage/innobase/handler/ha_innodb.h
      storage/innobase/ibuf/ibuf0ibuf.c
      storage/innobase/include/rem0rec.h
      storage/innobase/include/rem0rec.ic
      storage/innobase/include/trx0roll.h
      storage/innobase/lock/lock0lock.c
      storage/innobase/os/os0thread.c
      storage/innobase/row/row0sel.c
      storage/innobase/trx/trx0roll.c
      storage/innobase/trx/trx0trx.c
=== modified file '.bzrignore'
--- a/.bzrignore	2009-02-13 16:30:54 +0000
+++ b/.bzrignore	2009-02-27 12:56:58 +0000
@@ -769,6 +769,8 @@ mysql-test/load_sysvars.inc
 mysql-test/maria_recovery.trace
 mysql-test/mtr
 mysql-test/mysql-test-run
+mysql-test/mysql-test-gcov.err
+mysql-test/mysql-test-gcov.msg
 mysql-test/mysql-test-run-shell
 mysql-test/mysql-test-run.log
 mysql-test/mysql_test_run_new

=== modified file 'mysql-test/extra/rpl_tests/rpl_row_func003.test'
--- a/mysql-test/extra/rpl_tests/rpl_row_func003.test	2008-12-05 17:56:03 +0000
+++ b/mysql-test/extra/rpl_tests/rpl_row_func003.test	2009-03-06 10:46:23 +0000
@@ -3,10 +3,7 @@
 # Original Date: Aug/15/2005                                                #
 # Update: 08/29/2005 Comment out sleep. Only needed for debugging           #
 #############################################################################
-# Note: Many lines are commented out in this test case. These were used for #
-#       creating the test case and debugging and are being left for         #
-#       debugging, but they can not be used for the regular testing as the  #
-#       Time changes and is not deteministic, so instead we dump both the   #
+# Note: Time changes and is not deteministic, so instead we dump both the   #
 #       master and slave and diff the dumps. If the dumps differ then the   #
 #       test case will fail. To run during diff failuers, comment out the   #
 #       diff.                                                               #
@@ -26,7 +23,6 @@ DROP TABLE IF EXISTS test.t1;
 
 --enable_warnings
 
-
 eval CREATE TABLE test.t1 (a INT NOT NULL AUTO_INCREMENT, c CHAR(16),PRIMARY KEY(a))ENGINE=$engine_type;
 
 delimiter |;
@@ -44,34 +40,24 @@ END|
 delimiter ;|
 
 INSERT INTO test.t1 VALUES (null,test.f1()),(null,test.f1()),(null,test.f1());
-let $wait_time= 6;
---source include/wait_for_ndb_to_binlog.inc
 INSERT INTO test.t1 VALUES (null,test.f1()),(null,test.f1()),(null,test.f1());
---source include/wait_for_ndb_to_binlog.inc
-
-#Select in this test are used for debugging
-#select * from test.t1;
-#connection slave;
-#select * from test.t1;
 
-connection master;
 SET AUTOCOMMIT=0;
 START TRANSACTION;
 INSERT INTO test.t1 VALUES (null,test.f1());
 ROLLBACK;
 SET AUTOCOMMIT=1;
-#select * from test.t1;
-#sleep 6;
-
-#connection slave;
-#select * from test.t1;
-
-#connection master;
 
-#used for debugging
-#show binlog events;
+# Sync master and slave for all engines except NDB
+if (`SELECT UPPER(LEFT('$engine_type', 3)) != 'NDB'`) {
+  sync_slave_with_master;
+  connection master;
+}
+# Sync master and slave for NDB engine
+let $wait_time= 6;
+--source include/wait_for_ndb_to_binlog.inc
 
-# time to dump the databases and so we can see if they match
+# Time to dump the databases and so we can see if they match
 
 --exec $MYSQL_DUMP --compact --order-by-primary --skip-extended-insert --no-create-info test > $MYSQLTEST_VARDIR/tmp/func003_master.sql
 --exec $MYSQL_DUMP_SLAVE --compact --order-by-primary --skip-extended-insert --no-create-info test > $MYSQLTEST_VARDIR/tmp/func003_slave.sql
@@ -88,5 +74,8 @@ DROP TABLE test.t1;
 
 diff_files $MYSQLTEST_VARDIR/tmp/func003_master.sql $MYSQLTEST_VARDIR/tmp/func003_slave.sql;
 
+# Clean up
+remove_file $MYSQLTEST_VARDIR/tmp/func003_master.sql;
+remove_file $MYSQLTEST_VARDIR/tmp/func003_slave.sql;
 
 # End of 5.0 test case

=== modified file 'mysql-test/include/handler.inc'
--- a/mysql-test/include/handler.inc	2009-02-25 12:42:06 +0000
+++ b/mysql-test/include/handler.inc	2009-02-26 17:02:36 +0000
@@ -705,6 +705,7 @@ handler t1 read a next;
 #
 
 connect(con1,localhost,root,,);
+connect(con2,localhost,root,,);
 
 connection default;
 --disable_warnings
@@ -728,5 +729,5 @@ connection con1;
 --reap
 drop table t1;
 disconnect con1;
+disconnect con2;
 connection default;
-disconnect con1;

=== modified file 'mysql-test/lib/mtr_gcov.pl'
--- a/mysql-test/lib/mtr_gcov.pl	2009-02-13 16:30:54 +0000
+++ b/mysql-test/lib/mtr_gcov.pl	2009-02-27 12:56:58 +0000
@@ -22,40 +22,46 @@ use strict;
 
 sub gcov_prepare ($) {
   my ($dir)= @_;
+  print "Purging gcov information from '$dir'...\n";
 
-  `find $dir -name \*.gcov \
-    -or -name \*.da | xargs rm`;
+  system("find $dir -name \*.gcov -o -name \*.da"
+             . " -o -name \*.gcda | grep -v 'README.gcov\$' | xargs rm");
 }
 
-my @mysqld_src_dirs=
-  (
-   "strings",
-   "mysys",
-   "include",
-   "extra",
-   "regex",
-   "isam",
-   "merge",
-   "myisam",
-   "myisammrg",
-   "heap",
-   "sql",
-  );
-
+#
+# Collect gcov statistics.
+# Arguments:
+#   $dir       basedir, normally source directory
+#   $gcov      gcov utility program [path] name
+#   $gcov_msg  message file name
+#   $gcov_err  error file name
+#
 sub gcov_collect ($$$) {
   my ($dir, $gcov, $gcov_msg, $gcov_err)= @_;
 
+  # Get current directory to return to later.
   my $start_dir= cwd();
 
-  print "Collecting source coverage info...\n";
-  -f $gcov_msg and unlink($gcov_msg);
-  -f $gcov_err and unlink($gcov_err);
-  foreach my $d ( @mysqld_src_dirs )
-  {
-    chdir("$dir/$d");
-    foreach my $f ( (glob("*.h"), glob("*.cc"), glob("*.c")) )
-    {
-      `$gcov $f 2>>$gcov_err  >>$gcov_msg`;
+  print "Collecting source coverage info using '$gcov'...\n";
+  -f "$start_dir/$gcov_msg" and unlink("$start_dir/$gcov_msg");
+  -f "$start_dir/$gcov_err" and unlink("$start_dir/$gcov_err");
+
+  my @dirs= `find "$dir" -type d -print | sort`;
+  #print "List of directories:\n@dirs\n";
+
+  foreach my $d ( @dirs ) {
+    my $dir_reported= 0;
+    chomp($d);
+    chdir($d) or next;
+
+    foreach my $f ( (glob("*.h"), glob("*.cc"), glob("*.c")) ) {
+      $f =~ /(.*)\.[ch]c?/;
+      -f "$1.gcno" or next;
+      if (!$dir_reported) {
+	print "Collecting in '$d'...\n";
+	$dir_reported= 1;
+      }
+      system("$gcov $f 2>>$start_dir/$gcov_err >>$start_dir/$gcov_msg");
     }
     chdir($start_dir);
   }

=== modified file 'mysql-test/mysql-test-run.pl'
--- a/mysql-test/mysql-test-run.pl	2009-02-18 10:23:38 +0000
+++ b/mysql-test/mysql-test-run.pl	2009-02-27 12:56:58 +0000
@@ -167,8 +167,9 @@ our $opt_force;
 our $opt_mem= $ENV{'MTR_MEM'};
 
 our $opt_gcov;
-our $opt_gcov_err;
-our $opt_gcov_msg;
+our $opt_gcov_exe= "gcov";
+our $opt_gcov_err= "mysql-test-gcov.msg";
+our $opt_gcov_msg= "mysql-test-gcov.err";
 
 our $glob_debugger= 0;
 our $opt_gdb;
@@ -407,7 +408,7 @@ sub main {
   mtr_print_line();
 
   if ( $opt_gcov ) {
-    gcov_collect($basedir, $opt_gcov,
+    gcov_collect($basedir, $opt_gcov_exe,
 		 $opt_gcov_msg, $opt_gcov_err);
   }
 
@@ -5138,6 +5139,8 @@ Misc options
   sleep=SECONDS         Passed to mysqltest, will be used as fixed sleep time
   debug-sync-timeout=NUM Set default timeout for WAIT_FOR debug sync
                         actions. Disable facility with NUM=0.
+  gcov                  Collect coverage information after the test.
+                        The result is a gcov file per source and header file.
 
 HERE
   exit(1);

=== modified file 'mysql-test/r/comment_column.result'
--- a/mysql-test/r/comment_column.result	2007-08-28 11:04:35 +0000
+++ b/mysql-test/r/comment_column.result	2009-03-06 12:24:03 +0000
@@ -238,8 +238,8 @@ t1	CREATE TABLE `t1` (
 ) ENGINE=ENGINE DEFAULT CHARSET=latin1 COMMENT='ABCDEFGHIJabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcd'
 ALTER TABLE t1 ADD COLUMN c11 INTEGER COMMENT 'ABCDEfghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdABCDEfghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdABCDEfghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcd';
 Warnings:
-Warning	1470	String 'ABCDEfghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghij' is too long for COLUMN COMMENT (should be no longer than 1024)
-Warning	1470	String 'ABCDEfghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghij' is too long for COLUMN COMMENT (should be no longer than 1024)
+Warning	1629	Comment for field 'c11' is too long (max = 1024)
+Warning	1629	Comment for field 'c11' is too long (max = 1024)
 SELECT table_comment,char_length(table_comment) FROM information_schema.tables WHERE table_name='t1';
 table_comment	char_length(table_comment)
 ABCDEFGHIJabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcd	1024
@@ -275,7 +275,7 @@ t1	CREATE TABLE `t1` (
 ) ENGINE=ENGINE DEFAULT CHARSET=latin1 COMMENT='ABCDEFGHIJabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcd'
 set sql_mode='TRADITIONAL';
 ALTER TABLE t1 ADD COLUMN c12 INTEGER COMMENT 'ABCDEfghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdABCDEfghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdABCDEfghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcd';
-ERROR HY000: String 'ABCDEfghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghij' is too long for COLUMN COMMENT (should be no longer than 1024)
+ERROR HY000: Comment for field 'c12' is too long (max = 1024)
 SELECT table_comment,char_length(table_comment) FROM information_schema.tables WHERE table_name='t1';
 table_comment	char_length(table_comment)
 ABCDEFGHIJabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcd	1024
@@ -350,7 +350,7 @@ drop table t1;
 create table t1 (c1 VARCHAR(10) NOT NULL COMMENT 'Abcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcd', c2 INTEGER COMMENT 'aBcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdaBcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcd',c3 INTEGER COMMENT '012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789', c4 INTEGER, c5 INTEGER, c6 INTEGER, c7 INTEGER, INDEX i1 (c1) COMMENT 'i1 comment',INDEX i2(c2) 
 ) COMMENT='ABCDEFGHIJabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcd';
 Warnings:
-Warning	1470	String 'aBcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghij' is too long for COLUMN COMMENT (should be no longer than 1024)
+Warning	1629	Comment for field 'c2' is too long (max = 1024)
 SELECT table_comment,char_length(table_comment) FROM information_schema.tables WHERE table_name='t1';
 table_comment	char_length(table_comment)
 ABCDEFGHIJabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcd	1024
@@ -384,7 +384,7 @@ DROP TABLE t1;
 set sql_mode='TRADITIONAL';
 create table t1 (c1 VARCHAR(10) NOT NULL COMMENT 'Abcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcd', c2 INTEGER COMMENT 'aBcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdaBcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcd',c3 INTEGER COMMENT '012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789', c4 INTEGER, c5 INTEGER, c6 INTEGER, c7 INTEGER, INDEX i1 (c1) COMMENT 'i1 comment',INDEX i2(c2) 
 ) COMMENT='ABCDEFGHIJabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcd';
-ERROR HY000: String 'aBcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghij' is too long for COLUMN COMMENT (should be no longer than 1024)
+ERROR HY000: Comment for field 'c2' is too long (max = 1024)
 SELECT table_comment,char_length(table_comment) FROM information_schema.tables WHERE table_name='t1';
 table_comment	char_length(table_comment)
 SELECT column_comment,char_length(column_comment) FROM information_schema.columns WHERE table_name='t1';

=== modified file 'mysql-test/r/comment_table.result'
--- a/mysql-test/r/comment_table.result	2007-06-30 21:25:11 +0000
+++ b/mysql-test/r/comment_table.result	2009-03-06 12:24:03 +0000
@@ -103,7 +103,7 @@ SET SQL_MODE='';
 create table t1 (c1 VARCHAR(10) NOT NULL COMMENT 'c1 comment', c2 INTEGER,c3 INTEGER COMMENT '012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789', c4 INTEGER, c5 INTEGER, c6 INTEGER, c7 INTEGER, INDEX i1 (c1) COMMENT 'i1 comment',INDEX i2(c2) 
 ) COMMENT='abcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcde';
 Warnings:
-Warning	1470	String 'abcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghij' is too long for TABLE COMMENT (should be no longer than 2048)
+Warning	1628	Comment for table 't1' is too long (max = 2048)
 SELECT table_comment,char_length(table_comment) FROM information_schema.tables WHERE table_name='t1';
 table_comment	char_length(table_comment)
 abcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcd	2048
@@ -120,7 +120,7 @@ drop table t1;
 SET SQL_MODE='TRADITIONAL';
 create table t1 (c1 VARCHAR(10) NOT NULL COMMENT 'c1 comment', c2 INTEGER,c3 INTEGER COMMENT '012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789', c4 INTEGER, c5 INTEGER, c6 INTEGER, c7 INTEGER, INDEX i1 (c1) COMMENT 'i1 comment',INDEX i2(c2) 
 ) COMMENT='abcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcde';
-ERROR HY000: String 'abcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghij' is too long for TABLE COMMENT (should be no longer than 2048)
+ERROR HY000: Comment for table 't1' is too long (max = 2048)
 SELECT table_comment,char_length(table_comment) FROM information_schema.tables WHERE table_name='t1';
 table_comment	char_length(table_comment)
 SELECT column_comment,char_length(column_comment) FROM information_schema.columns WHERE table_name='t1';

=== modified file 'mysql-test/r/debug_sync.result'
--- a/mysql-test/r/debug_sync.result	2008-12-24 10:48:24 +0000
+++ b/mysql-test/r/debug_sync.result	2009-03-06 12:24:03 +0000
@@ -137,7 +137,7 @@ Variable_name	Value
 debug_sync	ON - current signal: 'something'
 SET DEBUG_SYNC= 'now WAIT_FOR nothing TIMEOUT 0';
 Warnings:
-Warning	1728	debug sync point wait timed out
+Warning	1734	debug sync point wait timed out
 SET DEBUG_SYNC= 'now SIGNAL nothing';
 SHOW VARIABLES LIKE 'DEBUG_SYNC';
 Variable_name	Value

=== modified file 'mysql-test/r/group_by.result'
--- a/mysql-test/r/group_by.result	2009-01-08 19:06:44 +0000
+++ b/mysql-test/r/group_by.result	2009-02-26 17:31:59 +0000
@@ -1721,3 +1721,15 @@ id	select_type	table	type	possible_keys
 SELECT COUNT(varchar_key) AS X FROM t1 WHERE pk = 8 having 'foo'='bar';
 X
 drop table t1;
+SET @old_sql_mode = @@sql_mode;
+SET @@sql_mode='ONLY_FULL_GROUP_BY';
+CREATE TABLE t1(i INT);
+INSERT INTO t1 VALUES (1), (10);
+SELECT COUNT(i) FROM t1;
+COUNT(i)
+2
+SELECT COUNT(i) FROM t1 WHERE i > 1;
+COUNT(i)
+1
+DROP TABLE t1;
+SET @@sql_mode = @old_sql_mode;

=== modified file 'mysql-test/r/group_min_max.result'
--- a/mysql-test/r/group_min_max.result	2008-08-28 11:17:29 +0000
+++ b/mysql-test/r/group_min_max.result	2009-02-27 15:47:32 +0000
@@ -2448,3 +2448,18 @@ id	select_type	table	type	possible_keys
 Warnings:
 Note	1003	select sql_buffer_result `test`.`t1`.`a` AS `a`,(max(`test`.`t1`.`b`) + 1) AS `max(b)+1` from `test`.`t1` where (`test`.`t1`.`a` = 0) group by `test`.`t1`.`a`
 drop table t1;
+CREATE TABLE t1 (a int, b int, c int, d int,
+KEY foo (c,d,a,b), KEY bar (c,a,b,d));
+INSERT INTO t1 VALUES (1, 1, 1, 1), (1, 1, 1, 2), (1, 1, 1, 3), (1, 1, 1, 4);
+INSERT INTO t1 SELECT * FROM t1;
+INSERT INTO t1 SELECT * FROM t1;
+INSERT INTO t1 SELECT a,b,c+1,d FROM t1;
+EXPLAIN SELECT DISTINCT c FROM t1 WHERE d=4;
+id	select_type	table	type	possible_keys	key	key_len	ref	rows	Extra
+1	SIMPLE	t1	range	NULL	foo	10	NULL	9	Using where; Using index for group-by
+SELECT DISTINCT c FROM t1 WHERE d=4;
+c
+1
+2
+DROP TABLE t1;
+End of 5.0 tests

=== added file 'mysql-test/r/innodb-consistent.result'
--- a/mysql-test/r/innodb-consistent.result	1970-01-01 00:00:00 +0000
+++ b/mysql-test/r/innodb-consistent.result	2009-02-14 23:29:32 +0000
@@ -0,0 +1,35 @@
+drop table if exists t1;
+set session transaction isolation level read committed;
+create table t1(a int not null) engine=innodb DEFAULT CHARSET=latin1;
+create table t2 like t1;
+insert into t2 values (1),(2),(3),(4),(5),(6),(7);
+set autocommit=0;
+begin;
+replace into t1 select * from t2;
+set session transaction isolation level read committed;
+set autocommit=0;
+delete from t2 where a=5;
+commit;
+delete from t2;
+commit;
+commit;
+begin;
+insert into t1 select * from t2;
+set session transaction isolation level read committed;
+set autocommit=0;
+delete from t2 where a=5;
+commit;
+delete from t2;
+commit;
+commit;
+select * from t1;
+a
+1
+2
+3
+4
+5
+6
+7
+drop table t1;
+drop table t2;

=== modified file 'mysql-test/r/innodb.result'
--- a/mysql-test/r/innodb.result	2009-02-13 16:30:54 +0000
+++ b/mysql-test/r/innodb.result	2009-02-28 00:31:33 +0000
@@ -2689,19 +2689,19 @@ truncate t4;
 truncate t1;
 truncate t3;
 drop table t4,t3,t2,t1;
-create table t1 (a varchar(255) character set utf8,
-b varchar(255) character set utf8,
-c varchar(255) character set utf8,
-d varchar(255) character set utf8,
+create table t1 (a varchar(255) character set utf8mb3,
+b varchar(255) character set utf8mb3,
+c varchar(255) character set utf8mb3,
+d varchar(255) character set utf8mb3,
 key (a,b,c,d)) engine=innodb;
 drop table t1;
-create table t1 (a varchar(255) character set utf8,
-b varchar(255) character set utf8,
-c varchar(255) character set utf8,
-d varchar(255) character set utf8,
-e varchar(255) character set utf8,
+create table t1 (a varchar(255) character set utf8mb3,
+b varchar(255) character set utf8mb3,
+c varchar(255) character set utf8mb3,
+d varchar(255) character set utf8mb3,
+e varchar(255) character set utf8mb3,
 key (a,b,c,d,e)) engine=innodb;
-ERROR 42000: Specified key was too long; max key length is 3072 bytes
+ERROR 42000: Specified key was too long; max key length is 3500 bytes
 create table t1 (s1 varbinary(2),primary key (s1)) engine=innodb;
 create table t2 (s1 binary(2),primary key (s1)) engine=innodb;
 create table t3 (s1 varchar(2) binary,primary key (s1)) engine=innodb;
@@ -3086,7 +3086,7 @@ PRIMARY KEY  (a,b),
 KEY idx_t2_b_c (b,c(200)),
 CONSTRAINT t_fk FOREIGN KEY (a) REFERENCES t1 (a) 
 ON DELETE CASCADE
-) ENGINE=INNODB DEFAULT CHARSET=UTF8;
+) ENGINE=INNODB DEFAULT CHARSET=UTF8MB3;
 INSERT INTO t1 VALUES (1);
 INSERT INTO t2 VALUES (1, 'bar', 'vbar');
 INSERT INTO t2 VALUES (1, 'BAR2', 'VBAR');

=== added file 'mysql-test/r/innodb_ctype_ldml.result'
--- a/mysql-test/r/innodb_ctype_ldml.result	1970-01-01 00:00:00 +0000
+++ b/mysql-test/r/innodb_ctype_ldml.result	2009-03-02 23:16:57 +0000
@@ -0,0 +1,85 @@
+drop table if exists t1;
+In the following tests we change the order of letter "b"
+making it equal to letter "a", and check that it works
+with all Unicode character sets
+set names utf8;
+show variables like 'character_sets_dir%';
+Variable_name	Value
+character_sets_dir	MYSQL_TEST_DIR/std_data/
+show collation like 'utf8_test_ci';
+Collation	Charset	Id	Default	Compiled	Sortlen
+utf8_test_ci	utf8	353			8
+create table t1 (c1 char(1) character set utf8 collate utf8_test_ci)
+engine=innodb;
+ERROR HY000: Can't create table 'test.t1' (errno: 1005)
+show warnings;
+Level	Code	Message
+Error	1005	In InnoDB, charset-collation codes must be below 256. Unsupported code 353.
+Error	1005	Can't create table 'test.t1' (errno: 1005)
+show collation like 'ucs2_test_ci';
+Collation	Charset	Id	Default	Compiled	Sortlen
+ucs2_test_ci	ucs2	358			8
+create table t1 (c1 char(1) character set ucs2 collate ucs2_test_ci)
+engine=innodb;
+ERROR HY000: Can't create table 'test.t1' (errno: 1005)
+show warnings;
+Level	Code	Message
+Error	1005	In InnoDB, charset-collation codes must be below 256. Unsupported code 358.
+Error	1005	Can't create table 'test.t1' (errno: 1005)
+show collation like 'utf16_test_ci';
+Collation	Charset	Id	Default	Compiled	Sortlen
+utf16_test_ci	utf16	327			8
+create table t1 (c1 char(1) character set utf16 collate utf16_test_ci)
+engine=innodb;
+ERROR HY000: Can't create table 'test.t1' (errno: 1005)
+show warnings;
+Level	Code	Message
+Error	1005	In InnoDB, charset-collation codes must be below 256. Unsupported code 327.
+Error	1005	Can't create table 'test.t1' (errno: 1005)
+show collation like 'utf32_test_ci';
+Collation	Charset	Id	Default	Compiled	Sortlen
+utf32_test_ci	utf32	391			8
+create table t1 (c1 char(1) character set utf32 collate utf32_test_ci)
+engine=innodb;
+ERROR HY000: Can't create table 'test.t1' (errno: 1005)
+show warnings;
+Level	Code	Message
+Error	1005	In InnoDB, charset-collation codes must be below 256. Unsupported code 391.
+Error	1005	Can't create table 'test.t1' (errno: 1005)
+Vietnamese experimental collation
+show collation like 'ucs2_vn_ci';
+Collation	Charset	Id	Default	Compiled	Sortlen
+ucs2_vn_ci	ucs2	359			8
+create table t1 (c1 char(1) character set ucs2 collate ucs2_vn_ci)
+engine=innodb;
+ERROR HY000: Can't create table 'test.t1' (errno: 1005)
+show warnings;
+Level	Code	Message
+Error	1005	In InnoDB, charset-collation codes must be below 256. Unsupported code 359.
+Error	1005	Can't create table 'test.t1' (errno: 1005)
+The following tests check that two-byte collation IDs work
+select * from information_schema.collations where id>256 order by id;
+COLLATION_NAME	CHARACTER_SET_NAME	ID	IS_DEFAULT	IS_COMPILED	SORTLEN
+utf16_test_ci	utf16	327			8
+utf8_phone_ci	utf8	352			8
+utf8_test_ci	utf8	353			8
+ucs2_test_ci	ucs2	358			8
+ucs2_vn_ci	ucs2	359			8
+utf32_test_ci	utf32	391			8
+utf8_maxuserid_ci	utf8	2047			8
+show collation like '%test%';
+Collation	Charset	Id	Default	Compiled	Sortlen
+ucs2_test_ci	ucs2	358			8
+utf8_test_ci	utf8	353			8
+utf16_test_ci	utf16	327			8
+utf32_test_ci	utf32	391			8
+show collation like 'ucs2_vn_ci';
+Collation	Charset	Id	Default	Compiled	Sortlen
+ucs2_vn_ci	ucs2	359			8
+create table t1 (c1 char(1) character set ucs2 collate ucs2_vn_ci)
+engine=innodb;
+ERROR HY000: Can't create table 'test.t1' (errno: 1005)
+show warnings;
+Level	Code	Message
+Error	1005	In InnoDB, charset-collation codes must be below 256. Unsupported code 359.
+Error	1005	Can't create table 'test.t1' (errno: 1005)

=== modified file 'mysql-test/r/lock.result'
--- a/mysql-test/r/lock.result	2008-10-21 23:12:53 +0000
+++ b/mysql-test/r/lock.result	2009-03-05 15:44:02 +0000
@@ -173,6 +173,33 @@ ERROR HY000: View's SELECT refers to a t
 Cleanup.
 
 drop table t2, t3;
+#
+# Bug#39843 DELETE requires write access to table in subquery in where clause
+#
+DROP TABLE IF EXISTS t1,t2;
+CREATE TABLE t1 (
+table1_rowid SMALLINT NOT NULL
+);
+CREATE TABLE t2 (
+table2_rowid SMALLINT NOT NULL
+);
+INSERT INTO t1 VALUES (1);
+INSERT INTO t2 VALUES (1);
+LOCK TABLES t1 WRITE, t2 READ;
+# Sub-select should not try to aquire a write lock.
+DELETE FROM t1 
+WHERE EXISTS 
+( 
+SELECT 'x' 
+FROM t2
+WHERE t1.table1_rowid = t2.table2_rowid
+) ;
+# While implementing the patch we didn't break old behavior;
+# The following sub-select should still requires a write lock:
+SELECT * FROM t1 WHERE 1 IN (SELECT * FROM t2 FOR UPDATE);
+ERROR HY000: Table 't2' was locked with a READ lock and can't be updated
+UNLOCK TABLES;
+DROP TABLE t1,t2;
 End of 5.1 tests.
 #
 # Ensure that FLUSH TABLES doesn't substitute a base locked table

=== modified file 'mysql-test/r/locktrans_innodb.result'
--- a/mysql-test/r/locktrans_innodb.result	2008-12-24 10:48:24 +0000
+++ b/mysql-test/r/locktrans_innodb.result	2009-03-06 12:24:03 +0000
@@ -95,12 +95,12 @@ ERROR 42000: You have an error in your S
 # Implicit lock method conversion due to mix in statement.
 LOCK TABLE t1 READ, t2 IN EXCLUSIVE MODE;
 Warnings:
-Warning	1622	Converted to non-transactional lock on 't2'
+Warning	1630	Converted to non-transactional lock on 't2'
 UNLOCK TABLES;
 # Lock t1 share (converted to read), t2 write.
 LOCK TABLE t1 IN SHARE MODE, t2 WRITE;
 Warnings:
-Warning	1622	Converted to non-transactional lock on 't1'
+Warning	1630	Converted to non-transactional lock on 't1'
 # Show t1 is read locked, t2 write locked.
 INSERT INTO t1 SELECT * FROM t2;
 ERROR HY000: Table 't1' was locked with a READ lock and can't be updated
@@ -111,8 +111,8 @@ INSERT INTO t2 SELECT * FROM t1;
 # Lock t1 exclusive (converted to write), t2 share (converted to read).
 LOCK TABLE t1 IN EXCLUSIVE MODE, t2 IN SHARE MODE;
 Warnings:
-Warning	1622	Converted to non-transactional lock on 't1'
-Warning	1622	Converted to non-transactional lock on 't2'
+Warning	1630	Converted to non-transactional lock on 't1'
+Warning	1630	Converted to non-transactional lock on 't2'
 # Show t1 is write locked, t2 read locked.
 INSERT INTO t1 SELECT * FROM t2;
 INSERT INTO t2 SELECT * FROM t1;
@@ -136,8 +136,8 @@ ERROR HY000: Cannot convert to non-trans
 ## Error is reported on first table only. Show both errors:
 SHOW WARNINGS;
 Level	Code	Message
-Error	1623	Cannot convert to non-transactional lock in strict mode on 't1'
-Error	1623	Cannot convert to non-transactional lock in strict mode on 't2'
+Error	1631	Cannot convert to non-transactional lock in strict mode on 't1'
+Error	1631	Cannot convert to non-transactional lock in strict mode on 't2'
 UNLOCK TABLES;
 SET @@SQL_MODE= @wl3561_save_sql_mode;
 #
@@ -157,7 +157,7 @@ CREATE TABLE t4 (c4 INT) ENGINE= MyISAM;
 # Request a transactional lock, which is converted to non-transactional.
 LOCK TABLE t4 IN SHARE MODE;
 Warnings:
-Warning	1622	Converted to non-transactional lock on 't4'
+Warning	1630	Converted to non-transactional lock on 't4'
 # Try a conflict with the existing non-transactional lock.
 INSERT INTO t4 VALUES(444);
 ERROR HY000: Table 't4' was locked with a READ lock and can't be updated
@@ -174,8 +174,8 @@ CREATE VIEW v1 AS SELECT * FROM t3, t4 W
 # Request a share lock on the view, which is converted to read locks.
 LOCK TABLE v1 IN SHARE MODE;
 Warnings:
-Warning	1622	Converted to non-transactional lock on 't3'
-Warning	1622	Converted to non-transactional lock on 't4'
+Warning	1630	Converted to non-transactional lock on 't3'
+Warning	1630	Converted to non-transactional lock on 't4'
 # Show that read locks on the base tables prohibit writing ...
 INSERT INTO t3 SELECT * FROM t4;
 ERROR HY000: Table 't3' was locked with a READ lock and can't be updated
@@ -191,7 +191,7 @@ COUNT(*)
 ## Report conversion on view due to existing non-transactional locks.
 LOCK TABLE v1 IN EXCLUSIVE MODE;
 Warnings:
-Warning	1622	Converted to non-transactional lock on 'v1'
+Warning	1630	Converted to non-transactional lock on 'v1'
 INSERT INTO t3 VALUES(333);
 INSERT INTO t4 VALUES(444);
 INSERT INTO t1 VALUES(111);
@@ -200,8 +200,8 @@ UNLOCK TABLES;
 ## Now report conversion on base table again.
 LOCK TABLE v1 IN EXCLUSIVE MODE;
 Warnings:
-Warning	1622	Converted to non-transactional lock on 't3'
-Warning	1622	Converted to non-transactional lock on 't4'
+Warning	1630	Converted to non-transactional lock on 't3'
+Warning	1630	Converted to non-transactional lock on 't4'
 INSERT INTO t3 VALUES(333);
 INSERT INTO t4 VALUES(444);
 INSERT INTO t1 VALUES(111);

=== modified file 'mysql-test/r/locktrans_myisam.result'
--- a/mysql-test/r/locktrans_myisam.result	2008-12-24 10:48:24 +0000
+++ b/mysql-test/r/locktrans_myisam.result	2009-03-06 12:24:03 +0000
@@ -21,8 +21,8 @@ UNLOCK TABLES;
 # Valid syntax for transactional locks.
 LOCK TABLE t1 IN SHARE MODE, t2 IN EXCLUSIVE MODE;
 Warnings:
-Warning	1622	Converted to non-transactional lock on 't1'
-Warning	1622	Converted to non-transactional lock on 't2'
+Warning	1630	Converted to non-transactional lock on 't1'
+Warning	1630	Converted to non-transactional lock on 't2'
 UNLOCK TABLES;
 #
 # Valid syntax for aliases with and without 'AS'.
@@ -30,19 +30,19 @@ LOCK TABLE t1 AS a1 READ, t2 a2 WRITE;
 UNLOCK TABLES;
 LOCK TABLE t1 AS a1 IN SHARE MODE, t2 a2 IN EXCLUSIVE MODE;
 Warnings:
-Warning	1622	Converted to non-transactional lock on 'a1'
-Warning	1622	Converted to non-transactional lock on 'a2'
+Warning	1630	Converted to non-transactional lock on 'a1'
+Warning	1630	Converted to non-transactional lock on 'a2'
 UNLOCK TABLES;
 #
 # Transactional locks taken on a view.
 CREATE VIEW v1 AS SELECT * FROM t1, t2 WHERE t1.c1 = t2.c2;
 LOCK TABLE v1 IN SHARE MODE;
 Warnings:
-Warning	1622	Converted to non-transactional lock on 't1'
-Warning	1622	Converted to non-transactional lock on 't2'
+Warning	1630	Converted to non-transactional lock on 't1'
+Warning	1630	Converted to non-transactional lock on 't2'
 LOCK TABLE v1 IN EXCLUSIVE MODE;
 Warnings:
-Warning	1622	Converted to non-transactional lock on 'v1'
+Warning	1630	Converted to non-transactional lock on 'v1'
 UNLOCK TABLES;
 DROP VIEW v1;
 #
@@ -95,12 +95,12 @@ ERROR 42000: You have an error in your S
 # Implicit lock method conversion due to mix in statement.
 LOCK TABLE t1 READ, t2 IN EXCLUSIVE MODE;
 Warnings:
-Warning	1622	Converted to non-transactional lock on 't2'
+Warning	1630	Converted to non-transactional lock on 't2'
 UNLOCK TABLES;
 # Lock t1 share (converted to read), t2 write.
 LOCK TABLE t1 IN SHARE MODE, t2 WRITE;
 Warnings:
-Warning	1622	Converted to non-transactional lock on 't1'
+Warning	1630	Converted to non-transactional lock on 't1'
 # Show t1 is read locked, t2 write locked.
 INSERT INTO t1 SELECT * FROM t2;
 ERROR HY000: Table 't1' was locked with a READ lock and can't be updated
@@ -111,8 +111,8 @@ INSERT INTO t2 SELECT * FROM t1;
 # Lock t1 exclusive (converted to write), t2 share (converted to read).
 LOCK TABLE t1 IN EXCLUSIVE MODE, t2 IN SHARE MODE;
 Warnings:
-Warning	1622	Converted to non-transactional lock on 't1'
-Warning	1622	Converted to non-transactional lock on 't2'
+Warning	1630	Converted to non-transactional lock on 't1'
+Warning	1630	Converted to non-transactional lock on 't2'
 # Show t1 is write locked, t2 read locked.
 INSERT INTO t1 SELECT * FROM t2;
 INSERT INTO t2 SELECT * FROM t1;
@@ -136,8 +136,8 @@ ERROR HY000: Cannot convert to non-trans
 ## Error is reported on first table only. Show both errors:
 SHOW WARNINGS;
 Level	Code	Message
-Error	1623	Cannot convert to non-transactional lock in strict mode on 't1'
-Error	1623	Cannot convert to non-transactional lock in strict mode on 't2'
+Error	1631	Cannot convert to non-transactional lock in strict mode on 't1'
+Error	1631	Cannot convert to non-transactional lock in strict mode on 't2'
 UNLOCK TABLES;
 SET @@SQL_MODE= @wl3561_save_sql_mode;
 #
@@ -157,7 +157,7 @@ CREATE TABLE t4 (c4 INT) ENGINE= MyISAM;
 # Request a transactional lock, which is converted to non-transactional.
 LOCK TABLE t4 IN SHARE MODE;
 Warnings:
-Warning	1622	Converted to non-transactional lock on 't4'
+Warning	1630	Converted to non-transactional lock on 't4'
 # Try a conflict with the existing non-transactional lock.
 INSERT INTO t4 VALUES(444);
 ERROR HY000: Table 't4' was locked with a READ lock and can't be updated
@@ -174,8 +174,8 @@ CREATE VIEW v1 AS SELECT * FROM t3, t4 W
 # Request a share lock on the view, which is converted to read locks.
 LOCK TABLE v1 IN SHARE MODE;
 Warnings:
-Warning	1622	Converted to non-transactional lock on 't3'
-Warning	1622	Converted to non-transactional lock on 't4'
+Warning	1630	Converted to non-transactional lock on 't3'
+Warning	1630	Converted to non-transactional lock on 't4'
 # Show that read locks on the base tables prohibit writing ...
 INSERT INTO t3 SELECT * FROM t4;
 ERROR HY000: Table 't3' was locked with a READ lock and can't be updated
@@ -191,7 +191,7 @@ COUNT(*)
 ## Report conversion on view due to existing non-transactional locks.
 LOCK TABLE v1 IN EXCLUSIVE MODE;
 Warnings:
-Warning	1622	Converted to non-transactional lock on 'v1'
+Warning	1630	Converted to non-transactional lock on 'v1'
 INSERT INTO t3 VALUES(333);
 INSERT INTO t4 VALUES(444);
 INSERT INTO t1 VALUES(111);
@@ -200,8 +200,8 @@ UNLOCK TABLES;
 ## Now report conversion on base table again.
 LOCK TABLE v1 IN EXCLUSIVE MODE;
 Warnings:
-Warning	1622	Converted to non-transactional lock on 't3'
-Warning	1622	Converted to non-transactional lock on 't4'
+Warning	1630	Converted to non-transactional lock on 't3'
+Warning	1630	Converted to non-transactional lock on 't4'
 INSERT INTO t3 VALUES(333);
 INSERT INTO t4 VALUES(444);
 INSERT INTO t1 VALUES(111);

=== modified file 'mysql-test/r/mysqlcheck.result'
--- a/mysql-test/r/mysqlcheck.result	2009-02-16 14:47:53 +0000
+++ b/mysql-test/r/mysqlcheck.result	2009-02-27 15:52:30 +0000
@@ -157,7 +157,7 @@ SET NAMES DEFAULT;
 mysqlcheck --default-character-set="latin1" --databases test
 test.?
 Error    : Table doesn't exist
-error    : Corrupt
+status   : Operation failed
 mysqlcheck --default-character-set="utf8" --databases test
 test.я                                            OK
 SET NAMES utf8;

=== modified file 'mysql-test/r/preload.result'
--- a/mysql-test/r/preload.result	2007-06-07 08:53:23 +0000
+++ b/mysql-test/r/preload.result	2009-02-27 15:06:23 +0000
@@ -144,7 +144,7 @@ Key_reads	0
 load index into cache t3, t2 key (primary,b) ;
 Table	Op	Msg_type	Msg_text
 test.t3	preload_keys	Error	Table 'test.t3' doesn't exist
-test.t3	preload_keys	error	Corrupt
+test.t3	preload_keys	status	Operation failed
 test.t2	preload_keys	status	OK
 show status like "key_read%";
 Variable_name	Value
@@ -159,7 +159,7 @@ Key_reads	0
 load index into cache t3 key (b), t2 key (c) ;
 Table	Op	Msg_type	Msg_text
 test.t3	preload_keys	Error	Table 'test.t3' doesn't exist
-test.t3	preload_keys	error	Corrupt
+test.t3	preload_keys	status	Operation failed
 test.t2	preload_keys	Error	Key 'c' doesn't exist in table 't2'
 test.t2	preload_keys	status	Operation failed
 show status like "key_read%";

=== modified file 'mysql-test/r/ps.result'
--- a/mysql-test/r/ps.result	2009-03-06 14:35:59 +0000
+++ b/mysql-test/r/ps.result	2009-03-06 15:28:40 +0000
@@ -1396,13 +1396,13 @@ execute stmt;
 Table	Op	Msg_type	Msg_text
 test.t1	repair	status	OK
 test.t4	repair	Error	Table 'test.t4' doesn't exist
-test.t4	repair	error	Corrupt
+test.t4	repair	status	Operation failed
 test.t3	repair	status	OK
 execute stmt;
 Table	Op	Msg_type	Msg_text
 test.t1	repair	status	OK
 test.t4	repair	Error	Table 'test.t4' doesn't exist
-test.t4	repair	error	Corrupt
+test.t4	repair	status	Operation failed
 test.t3	repair	status	OK
 prepare stmt from "optimize table t1, t3, t4";
 execute stmt;
@@ -1410,23 +1410,23 @@ Table	Op	Msg_type	Msg_text
 test.t1	optimize	status	OK
 test.t3	optimize	status	OK
 test.t4	optimize	Error	Table 'test.t4' doesn't exist
-test.t4	optimize	error	Corrupt
+test.t4	optimize	status	Operation failed
 execute stmt;
 Table	Op	Msg_type	Msg_text
 test.t1	optimize	status	Table is already up to date
 test.t3	optimize	status	Table is already up to date
 test.t4	optimize	Error	Table 'test.t4' doesn't exist
-test.t4	optimize	error	Corrupt
+test.t4	optimize	status	Operation failed
 prepare stmt from "analyze table t4, t1";
 execute stmt;
 Table	Op	Msg_type	Msg_text
 test.t4	analyze	Error	Table 'test.t4' doesn't exist
-test.t4	analyze	error	Corrupt
+test.t4	analyze	status	Operation failed
 test.t1	analyze	status	Table is already up to date
 execute stmt;
 Table	Op	Msg_type	Msg_text
 test.t4	analyze	Error	Table 'test.t4' doesn't exist
-test.t4	analyze	error	Corrupt
+test.t4	analyze	status	Operation failed
 test.t1	analyze	status	Table is already up to date
 deallocate prepare stmt;
 drop table t1, t2, t3;

=== modified file 'mysql-test/r/repair.result'
--- a/mysql-test/r/repair.result	2008-08-12 18:56:42 +0000
+++ b/mysql-test/r/repair.result	2009-02-27 15:52:30 +0000
@@ -27,7 +27,7 @@ drop table t1;
 repair table t1 use_frm;
 Table	Op	Msg_type	Msg_text
 test.t1	repair	Error	Table 'test.t1' doesn't exist
-test.t1	repair	error	Corrupt
+test.t1	repair	status	Operation failed
 create table t1 engine=myisam SELECT 1,"table 1";
 flush tables;
 repair table t1;

=== modified file 'mysql-test/r/show_check.result'
--- a/mysql-test/r/show_check.result	2009-02-19 14:10:58 +0000
+++ b/mysql-test/r/show_check.result	2009-03-02 12:41:56 +0000
@@ -1190,7 +1190,7 @@ CREATE DATABASE mysqltest1;
 use mysqltest1;
 CREATE TABLE t1(ËÏÌÏÎËÁ1 INT);
 
----> Dumping mysqltest1 to show_check.mysqltest1.sql
+---> Dumping mysqltest1 to outfile1
 
 
 DROP DATABASE mysqltest1;

=== modified file 'mysql-test/r/skip_name_resolve.result'
--- a/mysql-test/r/skip_name_resolve.result	2006-07-04 16:44:35 +0000
+++ b/mysql-test/r/skip_name_resolve.result	2009-03-04 12:33:56 +0000
@@ -9,6 +9,3 @@ select user();
 user()
 #
 show processlist;
-Id	User	Host	db	Command	Time	State	Info
-<id>	root	<host>	test	<command>	<time>	<state>	<info>
-<id>	root	<host>	test	<command>	<time>	<state>	<info>

=== modified file 'mysql-test/r/variables.result'
--- a/mysql-test/r/variables.result	2009-03-06 14:35:59 +0000
+++ b/mysql-test/r/variables.result	2009-03-06 15:28:40 +0000
@@ -299,59 +299,107 @@ set @@rand_seed1=10000000,@@rand_seed2=1
 select ROUND(RAND(),5);
 ROUND(RAND(),5)
 0.02887
-show variables like '%alloc%';
+
+==+ Testing %alloc% system variables +==
+==+ NOTE:  These values *must* be a multiple of 1024 +==
+==+ Other values will be rounded down to nearest multiple +==
+
+==+ Show initial values +==
+SHOW VARIABLES WHERE variable_name IN ('range_alloc_block_size',
+'query_alloc_block_size', 'query_prealloc_size',
+'transaction_alloc_block_size', 'transaction_prealloc_size');
 Variable_name	Value
 query_alloc_block_size	8192
 query_prealloc_size	8192
 range_alloc_block_size	4096
 transaction_alloc_block_size	8192
 transaction_prealloc_size	4096
-select * from information_schema.session_variables where variable_name like '%alloc%' order by 1;
+==+ information_schema data +==
+SELECT * FROM information_schema.session_variables 
+WHERE variable_name IN ('range_alloc_block_size',
+'query_alloc_block_size', 'query_prealloc_size',
+'transaction_alloc_block_size', 'transaction_prealloc_size') ORDER BY 1;
 VARIABLE_NAME	VARIABLE_VALUE
 QUERY_ALLOC_BLOCK_SIZE	8192
 QUERY_PREALLOC_SIZE	8192
 RANGE_ALLOC_BLOCK_SIZE	4096
 TRANSACTION_ALLOC_BLOCK_SIZE	8192
 TRANSACTION_PREALLOC_SIZE	4096
-set @@range_alloc_block_size=1024*16;
+Testing values that are multiples of 1024
+set @@range_alloc_block_size=1024*15+1024;
+set @@query_alloc_block_size=1024*15+1024*2;
+set @@query_prealloc_size=1024*18-1024;
+set @@transaction_alloc_block_size=1024*21-1024*1;
+set @@transaction_prealloc_size=1024*21-2048;
+==+ Check manipulated values ==+
+select @@query_alloc_block_size;
+@@query_alloc_block_size
+17408
+SHOW VARIABLES WHERE variable_name IN ('range_alloc_block_size',
+'query_alloc_block_size', 'query_prealloc_size',
+'transaction_alloc_block_size', 'transaction_prealloc_size');
+Variable_name	Value
+query_alloc_block_size	17408
+query_prealloc_size	17408
+range_alloc_block_size	16384
+transaction_alloc_block_size	20480
+transaction_prealloc_size	19456
+==+ information_schema data +==
+SELECT * FROM information_schema.session_variables
+WHERE variable_name IN ('range_alloc_block_size',
+'query_alloc_block_size', 'query_prealloc_size',
+'transaction_alloc_block_size', 'transaction_prealloc_size') ORDER BY 1;
+VARIABLE_NAME	VARIABLE_VALUE
+QUERY_ALLOC_BLOCK_SIZE	17408
+QUERY_PREALLOC_SIZE	17408
+RANGE_ALLOC_BLOCK_SIZE	16384
+TRANSACTION_ALLOC_BLOCK_SIZE	20480
+TRANSACTION_PREALLOC_SIZE	19456
+==+ Manipulate variable values +==
+Testing values that are not 1024 multiples
+set @@range_alloc_block_size=1024*16+1023;
 set @@query_alloc_block_size=1024*17+2;
-set @@query_prealloc_size=1024*18;
+set @@query_prealloc_size=1024*18-1023;
 set @@transaction_alloc_block_size=1024*20-1;
 set @@transaction_prealloc_size=1024*21-1;
 select @@query_alloc_block_size;
 @@query_alloc_block_size
 17408
-show variables like '%alloc%';
+==+ Check manipulated values ==+
+SHOW VARIABLES WHERE variable_name IN ('range_alloc_block_size',
+'query_alloc_block_size', 'query_prealloc_size',
+'transaction_alloc_block_size', 'transaction_prealloc_size');
 Variable_name	Value
 query_alloc_block_size	17408
-query_prealloc_size	18432
+query_prealloc_size	17408
 range_alloc_block_size	16384
 transaction_alloc_block_size	19456
 transaction_prealloc_size	20480
-select * from information_schema.session_variables where variable_name like '%alloc%' order by 1;
+==+ information_schema data +==
+SELECT * FROM information_schema.session_variables 
+WHERE variable_name IN ('range_alloc_block_size',
+'query_alloc_block_size', 'query_prealloc_size',
+'transaction_alloc_block_size', 'transaction_prealloc_size') ORDER BY 1;
 VARIABLE_NAME	VARIABLE_VALUE
 QUERY_ALLOC_BLOCK_SIZE	17408
-QUERY_PREALLOC_SIZE	18432
+QUERY_PREALLOC_SIZE	17408
 RANGE_ALLOC_BLOCK_SIZE	16384
 TRANSACTION_ALLOC_BLOCK_SIZE	19456
 TRANSACTION_PREALLOC_SIZE	20480
+==+ Set values back to the default values +==
 set @@range_alloc_block_size=default;
 set @@query_alloc_block_size=default, @@query_prealloc_size=default;
 set transaction_alloc_block_size=default, @@transaction_prealloc_size=default;
-show variables like '%alloc%';
+==+ Check the values now that they are reset +==
+SHOW VARIABLES WHERE variable_name IN ('range_alloc_block_size',
+'query_alloc_block_size', 'query_prealloc_size',
+'transaction_alloc_block_size', 'transaction_prealloc_size');
 Variable_name	Value
 query_alloc_block_size	8192
 query_prealloc_size	8192
 range_alloc_block_size	4096
 transaction_alloc_block_size	8192
 transaction_prealloc_size	4096
-select * from information_schema.session_variables where variable_name like '%alloc%' order by 1;
-VARIABLE_NAME	VARIABLE_VALUE
-QUERY_ALLOC_BLOCK_SIZE	8192
-QUERY_PREALLOC_SIZE	8192
-RANGE_ALLOC_BLOCK_SIZE	4096
-TRANSACTION_ALLOC_BLOCK_SIZE	8192
-TRANSACTION_PREALLOC_SIZE	4096
 SELECT @@version LIKE 'non-existent';
 @@version LIKE 'non-existent'
 0
@@ -1373,4 +1421,9 @@ SELECT @@global.expire_logs_days;
 @@global.expire_logs_days
 99
 SET GLOBAL expire_logs_days = @old_eld;
+select @@storage_engine;
+Catalog	Database	Table	Table_alias	Column	Column_alias	Type	Length	Max length	Is_null	Flags	Decimals	Charsetnr
+def					@@storage_engine	253	6	6	N	1	31	8
+@@storage_engine
+MyISAM
 End of 5.1 tests

=== modified file 'mysql-test/r/view_grant.result'
--- a/mysql-test/r/view_grant.result	2009-02-25 12:42:06 +0000
+++ b/mysql-test/r/view_grant.result	2009-02-26 17:45:13 +0000
@@ -912,6 +912,32 @@ c4
 DROP DATABASE mysqltest1;
 DROP DATABASE mysqltest2;
 DROP USER mysqltest_u1@localhost;
+CREATE DATABASE db1;
+USE db1;
+CREATE TABLE t1(f1 INT, f2 INT);
+CREATE VIEW v1 AS SELECT f1, f2 FROM t1;
+GRANT SELECT (f1) ON t1 TO foo;
+GRANT SELECT (f1) ON v1 TO foo;
+USE db1;
+SELECT f1 FROM t1;
+f1
+SELECT f2 FROM t1;
+ERROR 42000: SELECT command denied to user 'foo'@'localhost' for column 'f2' in table 't1'
+SELECT * FROM t1;
+ERROR 42000: SELECT command denied to user 'foo'@'localhost' for table 't1'
+SELECT f1 FROM v1;
+f1
+SELECT f2 FROM v1;
+ERROR 42000: SELECT command denied to user 'foo'@'localhost' for column 'f2' in table 'v1'
+SELECT * FROM v1;
+ERROR 42000: SELECT command denied to user 'foo'@'localhost' for table 'v1'
+USE test;
+REVOKE SELECT (f1) ON db1.t1 FROM foo;
+REVOKE SELECT (f1) ON db1.v1 FROM foo;
+DROP USER foo;
+DROP VIEW db1.v1;
+DROP TABLE db1.t1;
+DROP DATABASE db1;
 End of 5.0 tests.
 DROP VIEW IF EXISTS v1;
 DROP TABLE IF EXISTS t1;

=== modified file 'mysql-test/suite/backup/r/backup_backupdir.result'
--- a/mysql-test/suite/backup/r/backup_backupdir.result	2008-12-24 10:48:24 +0000
+++ b/mysql-test/suite/backup/r/backup_backupdir.result	2009-03-06 12:24:03 +0000
@@ -53,8 +53,8 @@ ERROR HY000: Can't create/write to file
 Attempt to set the backupdir to something invalid.
 SET @@global.backupdir = 'This_is_really_stupid/not/there/at/all';
 Warnings:
-Warning	1733	The path specified for the system variable backupdir cannot be accessed or is invalid. ref: This_is_really_stupid/not/there/at/all
-Warning	1733	The path specified for the system variable backupdir cannot be accessed or is invalid. ref: This_is_really_stupid/not/there/at/all
+Warning	1739	The path specified for the system variable backupdir cannot be accessed or is invalid. ref: This_is_really_stupid/not/there/at/all
+Warning	1739	The path specified for the system variable backupdir cannot be accessed or is invalid. ref: This_is_really_stupid/not/there/at/all
 Cleanup
 Reset backupdir 
 SET @@global.backupdir = @@global.datadir;

=== modified file 'mysql-test/suite/backup/r/backup_db_grants.result'
--- a/mysql-test/suite/backup/r/backup_db_grants.result	2008-12-13 19:55:44 +0000
+++ b/mysql-test/suite/backup/r/backup_db_grants.result	2009-03-06 12:24:03 +0000
@@ -70,24 +70,24 @@ RESTORE FROM 'bup_db_grants.bak' OVERWRI
 backup_id
 #
 Warnings:
-#	1739	The grant 'ALTER ON bup_db_grants.*' for the user 'no_user'@'%' was skipped because the user does not exist.
-#	1739	The grant 'ALTER ROUTINE ON bup_db_grants.*' for the user 'no_user'@'%' was skipped because the user does not exist.
-#	1739	The grant 'CREATE ON bup_db_grants.*' for the user 'no_user'@'%' was skipped because the user does not exist.
-#	1739	The grant 'CREATE ROUTINE ON bup_db_grants.*' for the user 'no_user'@'%' was skipped because the user does not exist.
-#	1739	The grant 'CREATE TEMPORARY TABLES ON bup_db_grants.*' for the user 'no_user'@'%' was skipped because the user does not exist.
-#	1739	The grant 'CREATE VIEW ON bup_db_grants.*' for the user 'no_user'@'%' was skipped because the user does not exist.
-#	1739	The grant 'DELETE ON bup_db_grants.*' for the user 'no_user'@'%' was skipped because the user does not exist.
-#	1739	The grant 'DROP ON bup_db_grants.*' for the user 'no_user'@'%' was skipped because the user does not exist.
-#	1739	The grant 'EVENT ON bup_db_grants.*' for the user 'no_user'@'%' was skipped because the user does not exist.
-#	1739	The grant 'EXECUTE ON bup_db_grants.*' for the user 'no_user'@'%' was skipped because the user does not exist.
-#	1739	The grant 'INDEX ON bup_db_grants.*' for the user 'no_user'@'%' was skipped because the user does not exist.
-#	1739	The grant 'INSERT ON bup_db_grants.*' for the user 'no_user'@'%' was skipped because the user does not exist.
-#	1739	The grant 'LOCK TABLES ON bup_db_grants.*' for the user 'no_user'@'%' was skipped because the user does not exist.
-#	1739	The grant 'REFERENCES ON bup_db_grants.*' for the user 'no_user'@'%' was skipped because the user does not exist.
-#	1739	The grant 'SELECT ON bup_db_grants.*' for the user 'no_user'@'%' was skipped because the user does not exist.
-#	1739	The grant 'SHOW VIEW ON bup_db_grants.*' for the user 'no_user'@'%' was skipped because the user does not exist.
-#	1739	The grant 'TRIGGER ON bup_db_grants.*' for the user 'no_user'@'%' was skipped because the user does not exist.
-#	1739	The grant 'UPDATE ON bup_db_grants.*' for the user 'no_user'@'%' was skipped because the user does not exist.
+#	1745	The grant 'ALTER ON bup_db_grants.*' for the user 'no_user'@'%' was skipped because the user does not exist.
+#	1745	The grant 'ALTER ROUTINE ON bup_db_grants.*' for the user 'no_user'@'%' was skipped because the user does not exist.
+#	1745	The grant 'CREATE ON bup_db_grants.*' for the user 'no_user'@'%' was skipped because the user does not exist.
+#	1745	The grant 'CREATE ROUTINE ON bup_db_grants.*' for the user 'no_user'@'%' was skipped because the user does not exist.
+#	1745	The grant 'CREATE TEMPORARY TABLES ON bup_db_grants.*' for the user 'no_user'@'%' was skipped because the user does not exist.
+#	1745	The grant 'CREATE VIEW ON bup_db_grants.*' for the user 'no_user'@'%' was skipped because the user does not exist.
+#	1745	The grant 'DELETE ON bup_db_grants.*' for the user 'no_user'@'%' was skipped because the user does not exist.
+#	1745	The grant 'DROP ON bup_db_grants.*' for the user 'no_user'@'%' was skipped because the user does not exist.
+#	1745	The grant 'EVENT ON bup_db_grants.*' for the user 'no_user'@'%' was skipped because the user does not exist.
+#	1745	The grant 'EXECUTE ON bup_db_grants.*' for the user 'no_user'@'%' was skipped because the user does not exist.
+#	1745	The grant 'INDEX ON bup_db_grants.*' for the user 'no_user'@'%' was skipped because the user does not exist.
+#	1745	The grant 'INSERT ON bup_db_grants.*' for the user 'no_user'@'%' was skipped because the user does not exist.
+#	1745	The grant 'LOCK TABLES ON bup_db_grants.*' for the user 'no_user'@'%' was skipped because the user does not exist.
+#	1745	The grant 'REFERENCES ON bup_db_grants.*' for the user 'no_user'@'%' was skipped because the user does not exist.
+#	1745	The grant 'SELECT ON bup_db_grants.*' for the user 'no_user'@'%' was skipped because the user does not exist.
+#	1745	The grant 'SHOW VIEW ON bup_db_grants.*' for the user 'no_user'@'%' was skipped because the user does not exist.
+#	1745	The grant 'TRIGGER ON bup_db_grants.*' for the user 'no_user'@'%' was skipped because the user does not exist.
+#	1745	The grant 'UPDATE ON bup_db_grants.*' for the user 'no_user'@'%' was skipped because the user does not exist.
 SHOW TABLES FROM bup_db_grants;
 Tables_in_bup_db_grants
 s1
@@ -121,27 +121,27 @@ RESTORE FROM 'bup_db_grants.bak' OVERWRI
 backup_id
 #
 Warnings:
-#	1739	The grant 'INSERT ON bup_db_grants.*' for the user 'bup_user2'@'%' was skipped because the user does not exist.
-#	1739	The grant 'INSERT(b) ON bup_db_grants.s1' for the user 'bup_user2'@'%' was skipped because the user does not exist.
-#	1739	The grant 'SELECT(b) ON bup_db_grants.s1' for the user 'bup_user2'@'%' was skipped because the user does not exist.
-#	1739	The grant 'ALTER ON bup_db_grants.*' for the user 'no_user'@'%' was skipped because the user does not exist.
-#	1739	The grant 'ALTER ROUTINE ON bup_db_grants.*' for the user 'no_user'@'%' was skipped because the user does not exist.
-#	1739	The grant 'CREATE ON bup_db_grants.*' for the user 'no_user'@'%' was skipped because the user does not exist.
-#	1739	The grant 'CREATE ROUTINE ON bup_db_grants.*' for the user 'no_user'@'%' was skipped because the user does not exist.
-#	1739	The grant 'CREATE TEMPORARY TABLES ON bup_db_grants.*' for the user 'no_user'@'%' was skipped because the user does not exist.
-#	1739	The grant 'CREATE VIEW ON bup_db_grants.*' for the user 'no_user'@'%' was skipped because the user does not exist.
-#	1739	The grant 'DELETE ON bup_db_grants.*' for the user 'no_user'@'%' was skipped because the user does not exist.
-#	1739	The grant 'DROP ON bup_db_grants.*' for the user 'no_user'@'%' was skipped because the user does not exist.
-#	1739	The grant 'EVENT ON bup_db_grants.*' for the user 'no_user'@'%' was skipped because the user does not exist.
-#	1739	The grant 'EXECUTE ON bup_db_grants.*' for the user 'no_user'@'%' was skipped because the user does not exist.
-#	1739	The grant 'INDEX ON bup_db_grants.*' for the user 'no_user'@'%' was skipped because the user does not exist.
-#	1739	The grant 'INSERT ON bup_db_grants.*' for the user 'no_user'@'%' was skipped because the user does not exist.
-#	1739	The grant 'LOCK TABLES ON bup_db_grants.*' for the user 'no_user'@'%' was skipped because the user does not exist.
-#	1739	The grant 'REFERENCES ON bup_db_grants.*' for the user 'no_user'@'%' was skipped because the user does not exist.
-#	1739	The grant 'SELECT ON bup_db_grants.*' for the user 'no_user'@'%' was skipped because the user does not exist.
-#	1739	The grant 'SHOW VIEW ON bup_db_grants.*' for the user 'no_user'@'%' was skipped because the user does not exist.
-#	1739	The grant 'TRIGGER ON bup_db_grants.*' for the user 'no_user'@'%' was skipped because the user does not exist.
-#	1739	The grant 'UPDATE ON bup_db_grants.*' for the user 'no_user'@'%' was skipped because the user does not exist.
+#	1745	The grant 'INSERT ON bup_db_grants.*' for the user 'bup_user2'@'%' was skipped because the user does not exist.
+#	1745	The grant 'INSERT(b) ON bup_db_grants.s1' for the user 'bup_user2'@'%' was skipped because the user does not exist.
+#	1745	The grant 'SELECT(b) ON bup_db_grants.s1' for the user 'bup_user2'@'%' was skipped because the user does not exist.
+#	1745	The grant 'ALTER ON bup_db_grants.*' for the user 'no_user'@'%' was skipped because the user does not exist.
+#	1745	The grant 'ALTER ROUTINE ON bup_db_grants.*' for the user 'no_user'@'%' was skipped because the user does not exist.
+#	1745	The grant 'CREATE ON bup_db_grants.*' for the user 'no_user'@'%' was skipped because the user does not exist.
+#	1745	The grant 'CREATE ROUTINE ON bup_db_grants.*' for the user 'no_user'@'%' was skipped because the user does not exist.
+#	1745	The grant 'CREATE TEMPORARY TABLES ON bup_db_grants.*' for the user 'no_user'@'%' was skipped because the user does not exist.
+#	1745	The grant 'CREATE VIEW ON bup_db_grants.*' for the user 'no_user'@'%' was skipped because the user does not exist.
+#	1745	The grant 'DELETE ON bup_db_grants.*' for the user 'no_user'@'%' was skipped because the user does not exist.
+#	1745	The grant 'DROP ON bup_db_grants.*' for the user 'no_user'@'%' was skipped because the user does not exist.
+#	1745	The grant 'EVENT ON bup_db_grants.*' for the user 'no_user'@'%' was skipped because the user does not exist.
+#	1745	The grant 'EXECUTE ON bup_db_grants.*' for the user 'no_user'@'%' was skipped because the user does not exist.
+#	1745	The grant 'INDEX ON bup_db_grants.*' for the user 'no_user'@'%' was skipped because the user does not exist.
+#	1745	The grant 'INSERT ON bup_db_grants.*' for the user 'no_user'@'%' was skipped because the user does not exist.
+#	1745	The grant 'LOCK TABLES ON bup_db_grants.*' for the user 'no_user'@'%' was skipped because the user does not exist.
+#	1745	The grant 'REFERENCES ON bup_db_grants.*' for the user 'no_user'@'%' was skipped because the user does not exist.
+#	1745	The grant 'SELECT ON bup_db_grants.*' for the user 'no_user'@'%' was skipped because the user does not exist.
+#	1745	The grant 'SHOW VIEW ON bup_db_grants.*' for the user 'no_user'@'%' was skipped because the user does not exist.
+#	1745	The grant 'TRIGGER ON bup_db_grants.*' for the user 'no_user'@'%' was skipped because the user does not exist.
+#	1745	The grant 'UPDATE ON bup_db_grants.*' for the user 'no_user'@'%' was skipped because the user does not exist.
 SHOW TABLES FROM bup_db_grants;
 Tables_in_bup_db_grants
 s1

=== modified file 'mysql-test/suite/backup/r/backup_objects.result'
--- a/mysql-test/suite/backup/r/backup_objects.result	2009-01-28 11:08:55 +0000
+++ b/mysql-test/suite/backup/r/backup_objects.result	2009-03-04 10:35:42 +0000
@@ -222,7 +222,7 @@ character_set_client	latin2
 collation_connection	latin1_swedish_ci
 SHOW CREATE VIEW db2.v21;;
 View	v21
-Create View	CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `db2`.`v21` AS select `x`.`b` AS `b`,`db2`.`f21`(`y`.`a`) AS `a` from (`db1`.`v11` `x` join `db2`.`v22` `y`) where (`x`.`a` = `y`.`b`)
+Create View	CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v21` AS select `x`.`b` AS `b`,`db2`.`f21`(`y`.`a`) AS `a` from (`db1`.`v11` `x` join `db2`.`v22` `y`) where (`x`.`a` = `y`.`b`)
 character_set_client	latin2
 collation_connection	latin1_swedish_ci
 SHOW CREATE PROCEDURE db1.p11;;

=== added file 'mysql-test/suite/binlog/r/binlog_sql_mode.result'
--- a/mysql-test/suite/binlog/r/binlog_sql_mode.result	1970-01-01 00:00:00 +0000
+++ b/mysql-test/suite/binlog/r/binlog_sql_mode.result	2009-02-28 01:35:18 +0000
@@ -0,0 +1,46 @@
+stop slave;
+drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
+reset master;
+reset slave;
+drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
+start slave;
+SET @old_sql_mode=  @@global.sql_mode;
+SET @old_binlog_format=@@session.binlog_format;
+SET SESSION sql_mode=8;
+Initialization 
+RESET MASTER;
+CREATE TABLE t1 (id INT);
+CREATE PROCEDURE testProc() SELECT * FROM t1;
+CREATE VIEW testView as SELECT * from t1;
+CREATE FUNCTION testFunc()
+RETURNS INT
+BEGIN
+return 1;
+END;|
+CREATE TRIGGER testTrig BEFORE INSERT ON t1
+FOR EACH ROW BEGIN
+UPDATE t1 SET id = id +1;
+END;|
+CREATE EVENT testEvent ON SCHEDULE
+EVERY 1 DAY
+DO
+BEGIN
+UPDATE t1 SET id = id +1;
+END;|
+Chceck Result
+select
+(@a:=load_file("MYSQLTEST_VARDIR/tmp/mysqlbinlog_bug39526.binlog"))
+is not null;
+(@a:=load_file("MYSQLTEST_VARDIR/tmp/mysqlbinlog_bug39526.binlog"))
+is not null
+1
+*** String sql_mode=0 is found: 0 ***
+Clean Up
+DROP PROCEDURE testProc;
+DROP FUNCTION testFunc;
+DROP TRIGGER testTrig;
+DROP EVENT testEvent;
+DROP VIEW testView;
+DROP TABLE t1;
+SET @@global.sql_mode= @old_sql_mode;
+SET @@session.binlog_format=@old_binlog_format;

=== modified file 'mysql-test/suite/binlog/r/binlog_unsafe.result'
--- a/mysql-test/suite/binlog/r/binlog_unsafe.result	2009-02-16 21:18:45 +0000
+++ b/mysql-test/suite/binlog/r/binlog_unsafe.result	2009-03-05 18:49:37 +0000
@@ -200,3 +200,86 @@ UPDATE t1 SET b = '%s%s%s%s%s%s%s%s%s%s%
 Warnings:
 Warning	1592	Statement is not safe to log in statement format.
 DROP TABLE t1;
+DROP TABLE IF EXISTS t1, t2;
+CREATE TABLE t1(i INT PRIMARY KEY);
+CREATE TABLE t2(i INT PRIMARY KEY);
+CREATE TABLE t3(i INT, ch CHAR(50));
+"Should issue message Statement is not safe to log in statement format."
+INSERT INTO t1 SELECT * FROM t2 LIMIT 1;
+Warnings:
+Warning	1592	Statement is not safe to log in statement format.
+CREATE FUNCTION func6()
+RETURNS INT
+BEGIN
+INSERT INTO t1 VALUES (10);
+INSERT INTO t1 VALUES (11);
+INSERT INTO t1 VALUES (12);
+RETURN 0;
+END|
+"Should issue message Statement is not safe to log in statement format only once"
+INSERT INTO t3 VALUES(func6(), UUID());
+Warnings:
+Warning	1592	Statement is not safe to log in statement format.
+"Check whether SET @@SQL_LOG_BIN = 0/1 doesn't work in substatements"
+CREATE FUNCTION fun_check_log_bin() RETURNS INT
+BEGIN
+SET @@SQL_LOG_BIN = 0;
+INSERT INTO t1 VALUES(@@global.sync_binlog);
+RETURN 100;
+END|
+"One unsafe warning should be issued in the following statement"
+SELECT fun_check_log_bin();
+fun_check_log_bin()
+100
+Warnings:
+Warning	1592	Statement is not safe to log in statement format.
+"SQL_LOG_BIN should be ON still"
+SHOW VARIABLES LIKE "SQL_LOG_BIN";
+Variable_name	Value
+sql_log_bin	ON
+set @save_log_bin = @@SESSION.SQL_LOG_BIN;
+set @@SESSION.SQL_LOG_BIN = 0;
+"Should NOT have any warning message issued in the following statements"
+INSERT INTO t1 SELECT * FROM t2 LIMIT 1;
+DROP TABLE t1,t2;
+"Should NOT have any warning message issued in the following func7() and trig"
+CREATE TABLE t1 (a INT);
+CREATE TABLE t2 (a CHAR(40));
+CREATE TABLE trigger_table (a CHAR(7));
+CREATE FUNCTION func7()
+RETURNS INT
+BEGIN
+INSERT INTO t1 VALUES (@@global.sync_binlog);
+INSERT INTO t1 VALUES (@@session.insert_id);
+INSERT INTO t2 SELECT UUID();
+INSERT INTO t2 VALUES (@@session.sql_mode);
+INSERT INTO t2 VALUES (@@global.init_slave);
+RETURN 0;
+END|
+SHOW VARIABLES LIKE "SQL_LOG_BIN";
+Variable_name	Value
+sql_log_bin	OFF
+SELECT func7();
+func7()
+0
+---- Insert from trigger ----
+CREATE TRIGGER trig
+BEFORE INSERT ON trigger_table
+FOR EACH ROW
+BEGIN
+INSERT INTO t1 VALUES (@@global.sync_binlog);
+INSERT INTO t1 VALUES (@@session.insert_id);
+INSERT INTO t1 VALUES (@@global.auto_increment_increment);
+INSERT INTO t2 SELECT UUID();
+INSERT INTO t2 VALUES (@@session.sql_mode);
+INSERT INTO t2 VALUES (@@global.init_slave);
+INSERT INTO t2 VALUES (@@hostname);
+END|
+INSERT INTO trigger_table VALUES ('bye.');
+DROP FUNCTION fun_check_log_bin;
+DROP FUNCTION func6;
+DROP FUNCTION func7;
+DROP TRIGGER  trig;
+DROP TABLE t1, t2, t3, trigger_table;
+set @@SESSION.SQL_LOG_BIN = @save_log_bin;
+"End of tests"

=== added file 'mysql-test/suite/binlog/t/binlog_sql_mode.test'
--- a/mysql-test/suite/binlog/t/binlog_sql_mode.test	1970-01-01 00:00:00 +0000
+++ b/mysql-test/suite/binlog/t/binlog_sql_mode.test	2009-02-28 01:35:18 +0000
@@ -0,0 +1,76 @@
+# ==== Purpose ====
+#
+# Test that sql_mode can correct restore before generating the binlog event
+#    when creating CREATEable objects.
+#
+# ==== Method ====
+#
+# Scan binlog file to check if the sql_mode is still set to 0 before generating binlog event
+#
+
+-- source include/master-slave.inc
+-- source include/have_log_bin.inc
+
+# BUG#39526 sql_mode not retained in binary log for CREATE PROCEDURE
+
+SET @old_sql_mode=  @@global.sql_mode;
+SET @old_binlog_format=@@session.binlog_format;
+let $MYSQLD_DATADIR= `select @@datadir`;
+SET SESSION sql_mode=8;
+
+--echo Initialization 
+
+RESET MASTER;
+CREATE TABLE t1 (id INT);
+
+CREATE PROCEDURE testProc() SELECT * FROM t1;
+CREATE VIEW testView as SELECT * from t1;
+
+DELIMITER |;
+CREATE FUNCTION testFunc()
+  RETURNS INT
+  BEGIN
+    return 1;
+  END;|
+DELIMITER ;|
+
+DELIMITER |;
+CREATE TRIGGER testTrig BEFORE INSERT ON t1
+  FOR EACH ROW BEGIN
+    UPDATE t1 SET id = id +1;
+  END;|
+DELIMITER ;|
+
+DELIMITER |;
+CREATE EVENT testEvent ON SCHEDULE
+  EVERY 1 DAY
+  DO
+    BEGIN
+      UPDATE t1 SET id = id +1;
+    END;|
+DELIMITER ;|
+
+--echo Chceck Result
+
+let $MYSQLD_DATADIR= `select @@datadir`;
+--exec $MYSQL_BINLOG $MYSQLD_DATADIR/master-bin.000001 > $MYSQLTEST_VARDIR/tmp/mysqlbinlog_bug39526.binlog
+--replace_result $MYSQLTEST_VARDIR MYSQLTEST_VARDIR
+eval select
+(@a:=load_file("$MYSQLTEST_VARDIR/tmp/mysqlbinlog_bug39526.binlog"))
+is not null;
+let $s_mode_unsigned= `select @a like "%@@session.sql_mode=0%" /* must return 0 */`;
+echo *** String sql_mode=0 is found: $s_mode_unsigned ***;
+
+--remove_file $MYSQLTEST_VARDIR/tmp/mysqlbinlog_bug39526.binlog
+
+--echo Clean Up
+
+DROP PROCEDURE testProc;
+DROP FUNCTION testFunc;
+DROP TRIGGER testTrig;
+DROP EVENT testEvent;
+DROP VIEW testView;
+DROP TABLE t1;
+
+SET @@global.sql_mode= @old_sql_mode;
+SET @@session.binlog_format=@old_binlog_format;

=== modified file 'mysql-test/suite/binlog/t/binlog_unsafe.test'
--- a/mysql-test/suite/binlog/t/binlog_unsafe.test	2009-02-16 21:18:45 +0000
+++ b/mysql-test/suite/binlog/t/binlog_unsafe.test	2009-03-05 18:49:37 +0000
@@ -8,6 +8,7 @@
 # executed cannot be determined (e.g., INSERT DELAYED).  Such
 # statements should be marked unsafe.  All unsafe statements should
 # give a warning.
+# Yet the warning/error message isn't issued when SQL_LOG_BIN is turned off.
 #
 # This test verifies that a warning is generated for statements that
 # should be unsafe, when they are executed under statement mode
@@ -32,14 +33,19 @@
 # We try to insert the variables that should not be unsafe into a
 # table, and verify that *no* warning is issued.
 #
-#
+# Execute a unsafe statement calling a trigger or stored function
+# or neither when SQL_LOG_BIN is turned ON, a warning/error should be issued
+# Execute a unsafe statement calling a trigger or stored function
+# or neither when @@SQL_LOG_BIN is turned OFF,
+# no warning/error is issued
+
 # ==== Related bugs and worklogs ====
 #
 # WL#3339: Issue warnings when statement-based replication may fail
 # BUG#31168: @@hostname does not replicate
 # BUG#34732: mysqlbinlog does not print default values for auto_increment variables
 # BUG#34768: nondeterministic INSERT using LIMIT logged in stmt mode if binlog_format=mixed
-#
+# BUG#41980, SBL, INSERT .. SELECT .. LIMIT = ERROR, even when @@SQL_LOG_BIN is 0
 #
 # ==== Related test cases ====
 #
@@ -271,3 +277,96 @@ INSERT INTO t1 VALUES ('a','b');
 UPDATE t1 SET b = '%s%s%s%s%s%s%s%s%s%s%s%s%s%s' WHERE a = 'a' LIMIT 1;
 DROP TABLE t1;
 
+#
+#For bug#41980, SBL, INSERT .. SELECT .. LIMIT = ERROR, even when @@SQL_LOG_BIN is 0 
+#
+
+--disable_warnings
+DROP TABLE IF EXISTS t1, t2;
+--enable_warnings
+CREATE TABLE t1(i INT PRIMARY KEY);
+CREATE TABLE t2(i INT PRIMARY KEY);
+CREATE TABLE t3(i INT, ch CHAR(50));
+
+--echo "Should issue message Statement is not safe to log in statement format."
+INSERT INTO t1 SELECT * FROM t2 LIMIT 1;
+
+DELIMITER |;
+CREATE FUNCTION func6()
+RETURNS INT
+BEGIN
+  INSERT INTO t1 VALUES (10);
+  INSERT INTO t1 VALUES (11);
+  INSERT INTO t1 VALUES (12);
+  RETURN 0;
+END|
+DELIMITER ;|
+--echo "Should issue message Statement is not safe to log in statement format only once"
+INSERT INTO t3 VALUES(func6(), UUID());
+
+--echo "Check whether SET @@SQL_LOG_BIN = 0/1 doesn't work in substatements"
+DELIMITER |;
+CREATE FUNCTION fun_check_log_bin() RETURNS INT
+BEGIN
+  SET @@SQL_LOG_BIN = 0;
+  INSERT INTO t1 VALUES(@@global.sync_binlog);
+  RETURN 100;
+END|
+DELIMITER ;|
+--echo "One unsafe warning should be issued in the following statement"
+SELECT fun_check_log_bin();
+--echo "SQL_LOG_BIN should be ON still"
+SHOW VARIABLES LIKE "SQL_LOG_BIN";
+
+set @save_log_bin = @@SESSION.SQL_LOG_BIN;
+set @@SESSION.SQL_LOG_BIN = 0;
+--echo "Should NOT have any warning message issued in the following statements"
+INSERT INTO t1 SELECT * FROM t2 LIMIT 1;
+DROP TABLE t1,t2;
+
+--echo "Should NOT have any warning message issued in the following func7() and trig"
+CREATE TABLE t1 (a INT);
+CREATE TABLE t2 (a CHAR(40));
+CREATE TABLE trigger_table (a CHAR(7));
+DELIMITER |;
+CREATE FUNCTION func7()
+RETURNS INT
+BEGIN
+  INSERT INTO t1 VALUES (@@global.sync_binlog);
+  INSERT INTO t1 VALUES (@@session.insert_id);
+  INSERT INTO t2 SELECT UUID();
+  INSERT INTO t2 VALUES (@@session.sql_mode);
+  INSERT INTO t2 VALUES (@@global.init_slave);
+  RETURN 0;
+END|
+DELIMITER ;|
+SHOW VARIABLES LIKE "SQL_LOG_BIN";
+SELECT func7();
+
+--echo ---- Insert from trigger ----
+
+DELIMITER |;
+CREATE TRIGGER trig
+BEFORE INSERT ON trigger_table
+FOR EACH ROW
+BEGIN
+  INSERT INTO t1 VALUES (@@global.sync_binlog);
+  INSERT INTO t1 VALUES (@@session.insert_id);
+  INSERT INTO t1 VALUES (@@global.auto_increment_increment);
+  INSERT INTO t2 SELECT UUID();
+  INSERT INTO t2 VALUES (@@session.sql_mode);
+  INSERT INTO t2 VALUES (@@global.init_slave);
+  INSERT INTO t2 VALUES (@@hostname);
+END|
+DELIMITER ;|
+
+INSERT INTO trigger_table VALUES ('bye.');
+
+#clean up
+DROP FUNCTION fun_check_log_bin;
+DROP FUNCTION func6;
+DROP FUNCTION func7;
+DROP TRIGGER  trig;
+DROP TABLE t1, t2, t3, trigger_table;
+set @@SESSION.SQL_LOG_BIN = @save_log_bin;
+--echo "End of tests"

=== modified file 'mysql-test/suite/funcs_1/r/falcon_views.result'
--- a/mysql-test/suite/funcs_1/r/falcon_views.result	2009-02-02 12:46:34 +0000
+++ b/mysql-test/suite/funcs_1/r/falcon_views.result	2009-02-27 15:52:30 +0000
@@ -21367,7 +21367,7 @@ ERROR 42S02: Table 'test.v1' doesn't exi
 CHECK TABLE v1;
 Table	Op	Msg_type	Msg_text
 test.v1	check	Error	Table 'test.v1' doesn't exist
-test.v1	check	error	Corrupt
+test.v1	check	status	Operation failed
 DESCRIBE v1;
 ERROR 42S02: Table 'test.v1' doesn't exist
 EXPLAIN SELECT * FROM v1;

=== modified file 'mysql-test/suite/funcs_1/r/innodb_views.result'
--- a/mysql-test/suite/funcs_1/r/innodb_views.result	2009-02-02 15:58:48 +0000
+++ b/mysql-test/suite/funcs_1/r/innodb_views.result	2009-02-27 15:52:30 +0000
@@ -21367,7 +21367,7 @@ ERROR 42S02: Table 'test.v1' doesn't exi
 CHECK TABLE v1;
 Table	Op	Msg_type	Msg_text
 test.v1	check	Error	Table 'test.v1' doesn't exist
-test.v1	check	error	Corrupt
+test.v1	check	status	Operation failed
 DESCRIBE v1;
 ERROR 42S02: Table 'test.v1' doesn't exist
 EXPLAIN SELECT * FROM v1;

=== modified file 'mysql-test/suite/funcs_1/r/is_columns_falcon.result'
--- a/mysql-test/suite/funcs_1/r/is_columns_falcon.result	2009-02-16 14:47:53 +0000
+++ b/mysql-test/suite/funcs_1/r/is_columns_falcon.result	2009-03-05 12:22:26 +0000
@@ -485,7 +485,7 @@ def	test	tb1	f6	6	NULL	YES	mediumtext	16
 def	test	tb1	f7	7	NULL	YES	longtext	4294967295	4294967295	NULL	NULL	latin1	latin1_swedish_ci	longtext			select,insert,update,references		Default	Default
 def	test	tb1	f8	8	NULL	YES	tinyblob	255	255	NULL	NULL	NULL	NULL	tinyblob			select,insert,update,references		Default	Default
 def	test	tb1	f9	9	NULL	YES	blob	65535	65535	NULL	NULL	NULL	NULL	blob			select,insert,update,references		Default	Default
-def	test	tb2	f100	42	00000000000000000008.8	NO	double unsigned zerofill	NULL	NULL	22	NULL	NULL	NULL	double unsigned zerofill			select,insert,update,references		Default	Default
+def	test	tb2	f100	42	00000000000000000008.8	NO	double	NULL	NULL	22	NULL	NULL	NULL	double unsigned zerofill			select,insert,update,references		Default	Default
 def	test	tb2	f101	43	2000-01-01	NO	date	NULL	NULL	NULL	NULL	NULL	NULL	date			select,insert,update,references		Default	Default
 def	test	tb2	f102	44	00:00:20	NO	time	NULL	NULL	NULL	NULL	NULL	NULL	time			select,insert,update,references		Default	Default
 def	test	tb2	f103	45	0002-02-02 00:00:00	NO	datetime	NULL	NULL	NULL	NULL	NULL	NULL	datetime			select,insert,update,references		Default	Default
@@ -510,32 +510,32 @@ def	test	tb2	f70	12	NULL	YES	decimal	NUL
 def	test	tb2	f71	13	NULL	YES	decimal	NULL	NULL	10	0	NULL	NULL	decimal(10,0) unsigned zerofill			select,insert,update,references		Default	Default
 def	test	tb2	f72	14	NULL	YES	decimal	NULL	NULL	63	30	NULL	NULL	decimal(63,30) unsigned zerofill			select,insert,update,references		Default	Default
 def	test	tb2	f73	15	NULL	YES	double	NULL	NULL	22	NULL	NULL	NULL	double			select,insert,update,references		Default	Default
-def	test	tb2	f74	16	NULL	YES	double unsigned	NULL	NULL	22	NULL	NULL	NULL	double unsigned			select,insert,update,references		Default	Default
-def	test	tb2	f75	17	NULL	YES	double unsigned zerofill	NULL	NULL	22	NULL	NULL	NULL	double unsigned zerofill			select,insert,update,references		Default	Default
-def	test	tb2	f76	18	NULL	YES	double unsigned zerofill	NULL	NULL	22	NULL	NULL	NULL	double unsigned zerofill			select,insert,update,references		Default	Default
+def	test	tb2	f74	16	NULL	YES	double	NULL	NULL	22	NULL	NULL	NULL	double unsigned			select,insert,update,references		Default	Default
+def	test	tb2	f75	17	NULL	YES	double	NULL	NULL	22	NULL	NULL	NULL	double unsigned zerofill			select,insert,update,references		Default	Default
+def	test	tb2	f76	18	NULL	YES	double	NULL	NULL	22	NULL	NULL	NULL	double unsigned zerofill			select,insert,update,references		Default	Default
 def	test	tb2	f77	19	7.7	YES	double	NULL	NULL	22	NULL	NULL	NULL	double			select,insert,update,references		Default	Default
-def	test	tb2	f78	20	7.7	YES	double unsigned	NULL	NULL	22	NULL	NULL	NULL	double unsigned			select,insert,update,references		Default	Default
-def	test	tb2	f79	21	00000000000000000007.7	YES	double unsigned zerofill	NULL	NULL	22	NULL	NULL	NULL	double unsigned zerofill			select,insert,update,references		Default	Default
-def	test	tb2	f80	22	00000000000000000008.8	YES	double unsigned zerofill	NULL	NULL	22	NULL	NULL	NULL	double unsigned zerofill			select,insert,update,references		Default	Default
+def	test	tb2	f78	20	7.7	YES	double	NULL	NULL	22	NULL	NULL	NULL	double unsigned			select,insert,update,references		Default	Default
+def	test	tb2	f79	21	00000000000000000007.7	YES	double	NULL	NULL	22	NULL	NULL	NULL	double unsigned zerofill			select,insert,update,references		Default	Default
+def	test	tb2	f80	22	00000000000000000008.8	YES	double	NULL	NULL	22	NULL	NULL	NULL	double unsigned zerofill			select,insert,update,references		Default	Default
 def	test	tb2	f81	23	8.8	NO	float	NULL	NULL	12	NULL	NULL	NULL	float			select,insert,update,references		Default	Default
-def	test	tb2	f82	24	8.8	NO	float unsigned	NULL	NULL	12	NULL	NULL	NULL	float unsigned			select,insert,update,references		Default	Default
-def	test	tb2	f83	25	0000000008.8	NO	float unsigned zerofill	NULL	NULL	12	NULL	NULL	NULL	float unsigned zerofill			select,insert,update,references		Default	Default
-def	test	tb2	f84	26	0000000008.8	NO	float unsigned zerofill	NULL	NULL	12	NULL	NULL	NULL	float unsigned zerofill			select,insert,update,references		Default	Default
+def	test	tb2	f82	24	8.8	NO	float	NULL	NULL	12	NULL	NULL	NULL	float unsigned			select,insert,update,references		Default	Default
+def	test	tb2	f83	25	0000000008.8	NO	float	NULL	NULL	12	NULL	NULL	NULL	float unsigned zerofill			select,insert,update,references		Default	Default
+def	test	tb2	f84	26	0000000008.8	NO	float	NULL	NULL	12	NULL	NULL	NULL	float unsigned zerofill			select,insert,update,references		Default	Default
 def	test	tb2	f85	27	8.8	NO	float	NULL	NULL	12	NULL	NULL	NULL	float			select,insert,update,references		Default	Default
 def	test	tb2	f86	28	8.8	NO	float	NULL	NULL	12	NULL	NULL	NULL	float			select,insert,update,references		Default	Default
-def	test	tb2	f87	29	8.8	NO	float unsigned	NULL	NULL	12	NULL	NULL	NULL	float unsigned			select,insert,update,references		Default	Default
-def	test	tb2	f88	30	8.8	NO	float unsigned	NULL	NULL	12	NULL	NULL	NULL	float unsigned			select,insert,update,references		Default	Default
-def	test	tb2	f89	31	0000000008.8	NO	float unsigned zerofill	NULL	NULL	12	NULL	NULL	NULL	float unsigned zerofill			select,insert,update,references		Default	Default
-def	test	tb2	f90	32	0000000008.8	NO	float unsigned zerofill	NULL	NULL	12	NULL	NULL	NULL	float unsigned zerofill			select,insert,update,references		Default	Default
-def	test	tb2	f91	33	0000000008.8	NO	float unsigned zerofill	NULL	NULL	12	NULL	NULL	NULL	float unsigned zerofill			select,insert,update,references		Default	Default
-def	test	tb2	f92	34	0000000008.8	NO	float unsigned zerofill	NULL	NULL	12	NULL	NULL	NULL	float unsigned zerofill			select,insert,update,references		Default	Default
+def	test	tb2	f87	29	8.8	NO	float	NULL	NULL	12	NULL	NULL	NULL	float unsigned			select,insert,update,references		Default	Default
+def	test	tb2	f88	30	8.8	NO	float	NULL	NULL	12	NULL	NULL	NULL	float unsigned			select,insert,update,references		Default	Default
+def	test	tb2	f89	31	0000000008.8	NO	float	NULL	NULL	12	NULL	NULL	NULL	float unsigned zerofill			select,insert,update,references		Default	Default
+def	test	tb2	f90	32	0000000008.8	NO	float	NULL	NULL	12	NULL	NULL	NULL	float unsigned zerofill			select,insert,update,references		Default	Default
+def	test	tb2	f91	33	0000000008.8	NO	float	NULL	NULL	12	NULL	NULL	NULL	float unsigned zerofill			select,insert,update,references		Default	Default
+def	test	tb2	f92	34	0000000008.8	NO	float	NULL	NULL	12	NULL	NULL	NULL	float unsigned zerofill			select,insert,update,references		Default	Default
 def	test	tb2	f93	35	8.8	NO	float	NULL	NULL	12	NULL	NULL	NULL	float			select,insert,update,references		Default	Default
 def	test	tb2	f94	36	8.8	NO	double	NULL	NULL	22	NULL	NULL	NULL	double			select,insert,update,references		Default	Default
-def	test	tb2	f95	37	8.8	NO	float unsigned	NULL	NULL	12	NULL	NULL	NULL	float unsigned			select,insert,update,references		Default	Default
-def	test	tb2	f96	38	8.8	NO	double unsigned	NULL	NULL	22	NULL	NULL	NULL	double unsigned			select,insert,update,references		Default	Default
-def	test	tb2	f97	39	0000000008.8	NO	float unsigned zerofill	NULL	NULL	12	NULL	NULL	NULL	float unsigned zerofill			select,insert,update,references		Default	Default
-def	test	tb2	f98	40	00000000000000000008.8	NO	double unsigned zerofill	NULL	NULL	22	NULL	NULL	NULL	double unsigned zerofill			select,insert,update,references		Default	Default
-def	test	tb2	f99	41	0000000008.8	NO	float unsigned zerofill	NULL	NULL	12	NULL	NULL	NULL	float unsigned zerofill			select,insert,update,references		Default	Default
+def	test	tb2	f95	37	8.8	NO	float	NULL	NULL	12	NULL	NULL	NULL	float unsigned			select,insert,update,references		Default	Default
+def	test	tb2	f96	38	8.8	NO	double	NULL	NULL	22	NULL	NULL	NULL	double unsigned			select,insert,update,references		Default	Default
+def	test	tb2	f97	39	0000000008.8	NO	float	NULL	NULL	12	NULL	NULL	NULL	float unsigned zerofill			select,insert,update,references		Default	Default
+def	test	tb2	f98	40	00000000000000000008.8	NO	double	NULL	NULL	22	NULL	NULL	NULL	double unsigned zerofill			select,insert,update,references		Default	Default
+def	test	tb2	f99	41	0000000008.8	NO	float	NULL	NULL	12	NULL	NULL	NULL	float unsigned zerofill			select,insert,update,references		Default	Default
 def	test	tb3	f118	1	a	NO	char	1	1	NULL	NULL	latin1	latin1_swedish_ci	char(1)			select,insert,update,references		Default	Default
 def	test	tb3	f119	2		NO	char	1	1	NULL	NULL	latin1	latin1_bin	char(1)			select,insert,update,references		Default	Default
 def	test	tb3	f120	3		NO	char	1	1	NULL	NULL	latin1	latin1_swedish_ci	char(1)			select,insert,update,references		Default	Default
@@ -609,33 +609,33 @@ def	test	tb4	f187	12	0000000000000000000
 def	test	tb4	f188	13	0000000009	NO	decimal	NULL	NULL	10	0	NULL	NULL	decimal(10,0) unsigned zerofill			select,insert,update,references		Default	Default
 def	test	tb4	f189	14	000000000000000000000000000000009.000000000000000000000000000000	NO	decimal	NULL	NULL	63	30	NULL	NULL	decimal(63,30) unsigned zerofill			select,insert,update,references		Default	Default
 def	test	tb4	f190	15	88.8	NO	double	NULL	NULL	22	NULL	NULL	NULL	double			select,insert,update,references		Default	Default
-def	test	tb4	f191	16	88.8	NO	double unsigned	NULL	NULL	22	NULL	NULL	NULL	double unsigned			select,insert,update,references		Default	Default
-def	test	tb4	f192	17	00000000000000000088.8	NO	double unsigned zerofill	NULL	NULL	22	NULL	NULL	NULL	double unsigned zerofill			select,insert,update,references		Default	Default
-def	test	tb4	f193	18	00000000000000000088.8	NO	double unsigned zerofill	NULL	NULL	22	NULL	NULL	NULL	double unsigned zerofill			select,insert,update,references		Default	Default
+def	test	tb4	f191	16	88.8	NO	double	NULL	NULL	22	NULL	NULL	NULL	double unsigned			select,insert,update,references		Default	Default
+def	test	tb4	f192	17	00000000000000000088.8	NO	double	NULL	NULL	22	NULL	NULL	NULL	double unsigned zerofill			select,insert,update,references		Default	Default
+def	test	tb4	f193	18	00000000000000000088.8	NO	double	NULL	NULL	22	NULL	NULL	NULL	double unsigned zerofill			select,insert,update,references		Default	Default
 def	test	tb4	f194	19	55.5	NO	double	NULL	NULL	22	NULL	NULL	NULL	double			select,insert,update,references		Default	Default
-def	test	tb4	f195	20	55.5	NO	double unsigned	NULL	NULL	22	NULL	NULL	NULL	double unsigned			select,insert,update,references		Default	Default
-def	test	tb4	f196	21	00000000000000000055.5	NO	double unsigned zerofill	NULL	NULL	22	NULL	NULL	NULL	double unsigned zerofill			select,insert,update,references		Default	Default
-def	test	tb4	f197	22	00000000000000000055.5	NO	double unsigned zerofill	NULL	NULL	22	NULL	NULL	NULL	double unsigned zerofill			select,insert,update,references		Default	Default
+def	test	tb4	f195	20	55.5	NO	double	NULL	NULL	22	NULL	NULL	NULL	double unsigned			select,insert,update,references		Default	Default
+def	test	tb4	f196	21	00000000000000000055.5	NO	double	NULL	NULL	22	NULL	NULL	NULL	double unsigned zerofill			select,insert,update,references		Default	Default
+def	test	tb4	f197	22	00000000000000000055.5	NO	double	NULL	NULL	22	NULL	NULL	NULL	double unsigned zerofill			select,insert,update,references		Default	Default
 def	test	tb4	f198	23	NULL	YES	float	NULL	NULL	12	NULL	NULL	NULL	float			select,insert,update,references		Default	Default
-def	test	tb4	f199	24	NULL	YES	float unsigned	NULL	NULL	12	NULL	NULL	NULL	float unsigned			select,insert,update,references		Default	Default
-def	test	tb4	f200	25	NULL	YES	float unsigned zerofill	NULL	NULL	12	NULL	NULL	NULL	float unsigned zerofill			select,insert,update,references		Default	Default
-def	test	tb4	f201	26	NULL	YES	float unsigned zerofill	NULL	NULL	12	NULL	NULL	NULL	float unsigned zerofill			select,insert,update,references		Default	Default
+def	test	tb4	f199	24	NULL	YES	float	NULL	NULL	12	NULL	NULL	NULL	float unsigned			select,insert,update,references		Default	Default
+def	test	tb4	f200	25	NULL	YES	float	NULL	NULL	12	NULL	NULL	NULL	float unsigned zerofill			select,insert,update,references		Default	Default
+def	test	tb4	f201	26	NULL	YES	float	NULL	NULL	12	NULL	NULL	NULL	float unsigned zerofill			select,insert,update,references		Default	Default
 def	test	tb4	f202	27	NULL	YES	float	NULL	NULL	12	NULL	NULL	NULL	float			select,insert,update,references		Default	Default
 def	test	tb4	f203	28	NULL	YES	float	NULL	NULL	12	NULL	NULL	NULL	float			select,insert,update,references		Default	Default
-def	test	tb4	f204	29	NULL	YES	float unsigned	NULL	NULL	12	NULL	NULL	NULL	float unsigned			select,insert,update,references		Default	Default
-def	test	tb4	f205	30	NULL	YES	float unsigned	NULL	NULL	12	NULL	NULL	NULL	float unsigned			select,insert,update,references		Default	Default
-def	test	tb4	f206	31	NULL	YES	float unsigned zerofill	NULL	NULL	12	NULL	NULL	NULL	float unsigned zerofill			select,insert,update,references		Default	Default
-def	test	tb4	f207	32	NULL	YES	float unsigned zerofill	NULL	NULL	12	NULL	NULL	NULL	float unsigned zerofill			select,insert,update,references		Default	Default
-def	test	tb4	f208	33	NULL	YES	float unsigned zerofill	NULL	NULL	12	NULL	NULL	NULL	float unsigned zerofill			select,insert,update,references		Default	Default
-def	test	tb4	f209	34	NULL	YES	float unsigned zerofill	NULL	NULL	12	NULL	NULL	NULL	float unsigned zerofill			select,insert,update,references		Default	Default
+def	test	tb4	f204	29	NULL	YES	float	NULL	NULL	12	NULL	NULL	NULL	float unsigned			select,insert,update,references		Default	Default
+def	test	tb4	f205	30	NULL	YES	float	NULL	NULL	12	NULL	NULL	NULL	float unsigned			select,insert,update,references		Default	Default
+def	test	tb4	f206	31	NULL	YES	float	NULL	NULL	12	NULL	NULL	NULL	float unsigned zerofill			select,insert,update,references		Default	Default
+def	test	tb4	f207	32	NULL	YES	float	NULL	NULL	12	NULL	NULL	NULL	float unsigned zerofill			select,insert,update,references		Default	Default
+def	test	tb4	f208	33	NULL	YES	float	NULL	NULL	12	NULL	NULL	NULL	float unsigned zerofill			select,insert,update,references		Default	Default
+def	test	tb4	f209	34	NULL	YES	float	NULL	NULL	12	NULL	NULL	NULL	float unsigned zerofill			select,insert,update,references		Default	Default
 def	test	tb4	f210	35	NULL	YES	float	NULL	NULL	12	NULL	NULL	NULL	float			select,insert,update,references		Default	Default
 def	test	tb4	f211	36	NULL	YES	double	NULL	NULL	22	NULL	NULL	NULL	double			select,insert,update,references		Default	Default
-def	test	tb4	f212	37	NULL	YES	float unsigned	NULL	NULL	12	NULL	NULL	NULL	float unsigned			select,insert,update,references		Default	Default
-def	test	tb4	f213	38	NULL	YES	double unsigned	NULL	NULL	22	NULL	NULL	NULL	double unsigned			select,insert,update,references		Default	Default
-def	test	tb4	f214	39	NULL	YES	float unsigned zerofill	NULL	NULL	12	NULL	NULL	NULL	float unsigned zerofill			select,insert,update,references		Default	Default
-def	test	tb4	f215	40	NULL	YES	double unsigned zerofill	NULL	NULL	22	NULL	NULL	NULL	double unsigned zerofill			select,insert,update,references		Default	Default
-def	test	tb4	f216	41	NULL	YES	float unsigned zerofill	NULL	NULL	12	NULL	NULL	NULL	float unsigned zerofill			select,insert,update,references		Default	Default
-def	test	tb4	f217	42	NULL	YES	double unsigned zerofill	NULL	NULL	22	NULL	NULL	NULL	double unsigned zerofill			select,insert,update,references		Default	Default
+def	test	tb4	f212	37	NULL	YES	float	NULL	NULL	12	NULL	NULL	NULL	float unsigned			select,insert,update,references		Default	Default
+def	test	tb4	f213	38	NULL	YES	double	NULL	NULL	22	NULL	NULL	NULL	double unsigned			select,insert,update,references		Default	Default
+def	test	tb4	f214	39	NULL	YES	float	NULL	NULL	12	NULL	NULL	NULL	float unsigned zerofill			select,insert,update,references		Default	Default
+def	test	tb4	f215	40	NULL	YES	double	NULL	NULL	22	NULL	NULL	NULL	double unsigned zerofill			select,insert,update,references		Default	Default
+def	test	tb4	f216	41	NULL	YES	float	NULL	NULL	12	NULL	NULL	NULL	float unsigned zerofill			select,insert,update,references		Default	Default
+def	test	tb4	f217	42	NULL	YES	double	NULL	NULL	22	NULL	NULL	NULL	double unsigned zerofill			select,insert,update,references		Default	Default
 def	test	tb4	f218	43	NULL	YES	date	NULL	NULL	NULL	NULL	NULL	NULL	date			select,insert,update,references		Default	Default
 def	test	tb4	f219	44	NULL	YES	time	NULL	NULL	NULL	NULL	NULL	NULL	time			select,insert,update,references		Default	Default
 def	test	tb4	f220	45	NULL	YES	datetime	NULL	NULL	NULL	NULL	NULL	NULL	datetime			select,insert,update,references		Default	Default
@@ -652,7 +652,7 @@ def	test	tb4	f238	55	NULL	YES	varchar	0
 def	test	tb4	f239	56	NULL	YES	varchar	20000	20000	NULL	NULL	latin1	latin1_bin	varchar(20000)			select,insert,update,references		Default	Default
 def	test	tb4	f240	57	NULL	YES	varchar	2000	2000	NULL	NULL	latin1	latin1_swedish_ci	varchar(2000)			select,insert,update,references		Default	Default
 def	test	tb4	f241	58	NULL	YES	char	100	100	NULL	NULL	latin1	latin1_swedish_ci	char(100)			select,insert,update,references		Default	Default
-def	test1	tb2	f100	42	00000000000000000008.8	NO	double unsigned zerofill	NULL	NULL	22	NULL	NULL	NULL	double unsigned zerofill			select,insert,update,references		Default	Default
+def	test1	tb2	f100	42	00000000000000000008.8	NO	double	NULL	NULL	22	NULL	NULL	NULL	double unsigned zerofill			select,insert,update,references		Default	Default
 def	test1	tb2	f101	43	2000-01-01	NO	date	NULL	NULL	NULL	NULL	NULL	NULL	date			select,insert,update,references		Default	Default
 def	test1	tb2	f102	44	00:00:20	NO	time	NULL	NULL	NULL	NULL	NULL	NULL	time			select,insert,update,references		Default	Default
 def	test1	tb2	f103	45	0002-02-02 00:00:00	NO	datetime	NULL	NULL	NULL	NULL	NULL	NULL	datetime			select,insert,update,references		Default	Default
@@ -677,32 +677,32 @@ def	test1	tb2	f70	12	NULL	YES	decimal	NU
 def	test1	tb2	f71	13	NULL	YES	decimal	NULL	NULL	10	0	NULL	NULL	decimal(10,0) unsigned zerofill			select,insert,update,references		Default	Default
 def	test1	tb2	f72	14	NULL	YES	decimal	NULL	NULL	63	30	NULL	NULL	decimal(63,30) unsigned zerofill			select,insert,update,references		Default	Default
 def	test1	tb2	f73	15	NULL	YES	double	NULL	NULL	22	NULL	NULL	NULL	double			select,insert,update,references		Default	Default
-def	test1	tb2	f74	16	NULL	YES	double unsigned	NULL	NULL	22	NULL	NULL	NULL	double unsigned			select,insert,update,references		Default	Default
-def	test1	tb2	f75	17	NULL	YES	double unsigned zerofill	NULL	NULL	22	NULL	NULL	NULL	double unsigned zerofill			select,insert,update,references		Default	Default
-def	test1	tb2	f76	18	NULL	YES	double unsigned zerofill	NULL	NULL	22	NULL	NULL	NULL	double unsigned zerofill			select,insert,update,references		Default	Default
+def	test1	tb2	f74	16	NULL	YES	double	NULL	NULL	22	NULL	NULL	NULL	double unsigned			select,insert,update,references		Default	Default
+def	test1	tb2	f75	17	NULL	YES	double	NULL	NULL	22	NULL	NULL	NULL	double unsigned zerofill			select,insert,update,references		Default	Default
+def	test1	tb2	f76	18	NULL	YES	double	NULL	NULL	22	NULL	NULL	NULL	double unsigned zerofill			select,insert,update,references		Default	Default
 def	test1	tb2	f77	19	7.7	YES	double	NULL	NULL	22	NULL	NULL	NULL	double			select,insert,update,references		Default	Default
-def	test1	tb2	f78	20	7.7	YES	double unsigned	NULL	NULL	22	NULL	NULL	NULL	double unsigned			select,insert,update,references		Default	Default
-def	test1	tb2	f79	21	00000000000000000007.7	YES	double unsigned zerofill	NULL	NULL	22	NULL	NULL	NULL	double unsigned zerofill			select,insert,update,references		Default	Default
-def	test1	tb2	f80	22	00000000000000000008.8	YES	double unsigned zerofill	NULL	NULL	22	NULL	NULL	NULL	double unsigned zerofill			select,insert,update,references		Default	Default
+def	test1	tb2	f78	20	7.7	YES	double	NULL	NULL	22	NULL	NULL	NULL	double unsigned			select,insert,update,references		Default	Default
+def	test1	tb2	f79	21	00000000000000000007.7	YES	double	NULL	NULL	22	NULL	NULL	NULL	double unsigned zerofill			select,insert,update,references		Default	Default
+def	test1	tb2	f80	22	00000000000000000008.8	YES	double	NULL	NULL	22	NULL	NULL	NULL	double unsigned zerofill			select,insert,update,references		Default	Default
 def	test1	tb2	f81	23	8.8	NO	float	NULL	NULL	12	NULL	NULL	NULL	float			select,insert,update,references		Default	Default
-def	test1	tb2	f82	24	8.8	NO	float unsigned	NULL	NULL	12	NULL	NULL	NULL	float unsigned			select,insert,update,references		Default	Default
-def	test1	tb2	f83	25	0000000008.8	NO	float unsigned zerofill	NULL	NULL	12	NULL	NULL	NULL	float unsigned zerofill			select,insert,update,references		Default	Default
-def	test1	tb2	f84	26	0000000008.8	NO	float unsigned zerofill	NULL	NULL	12	NULL	NULL	NULL	float unsigned zerofill			select,insert,update,references		Default	Default
+def	test1	tb2	f82	24	8.8	NO	float	NULL	NULL	12	NULL	NULL	NULL	float unsigned			select,insert,update,references		Default	Default
+def	test1	tb2	f83	25	0000000008.8	NO	float	NULL	NULL	12	NULL	NULL	NULL	float unsigned zerofill			select,insert,update,references		Default	Default
+def	test1	tb2	f84	26	0000000008.8	NO	float	NULL	NULL	12	NULL	NULL	NULL	float unsigned zerofill			select,insert,update,references		Default	Default
 def	test1	tb2	f85	27	8.8	NO	float	NULL	NULL	12	NULL	NULL	NULL	float			select,insert,update,references		Default	Default
 def	test1	tb2	f86	28	8.8	NO	float	NULL	NULL	12	NULL	NULL	NULL	float			select,insert,update,references		Default	Default
-def	test1	tb2	f87	29	8.8	NO	float unsigned	NULL	NULL	12	NULL	NULL	NULL	float unsigned			select,insert,update,references		Default	Default
-def	test1	tb2	f88	30	8.8	NO	float unsigned	NULL	NULL	12	NULL	NULL	NULL	float unsigned			select,insert,update,references		Default	Default
-def	test1	tb2	f89	31	0000000008.8	NO	float unsigned zerofill	NULL	NULL	12	NULL	NULL	NULL	float unsigned zerofill			select,insert,update,references		Default	Default
-def	test1	tb2	f90	32	0000000008.8	NO	float unsigned zerofill	NULL	NULL	12	NULL	NULL	NULL	float unsigned zerofill			select,insert,update,references		Default	Default
-def	test1	tb2	f91	33	0000000008.8	NO	float unsigned zerofill	NULL	NULL	12	NULL	NULL	NULL	float unsigned zerofill			select,insert,update,references		Default	Default
-def	test1	tb2	f92	34	0000000008.8	NO	float unsigned zerofill	NULL	NULL	12	NULL	NULL	NULL	float unsigned zerofill			select,insert,update,references		Default	Default
+def	test1	tb2	f87	29	8.8	NO	float	NULL	NULL	12	NULL	NULL	NULL	float unsigned			select,insert,update,references		Default	Default
+def	test1	tb2	f88	30	8.8	NO	float	NULL	NULL	12	NULL	NULL	NULL	float unsigned			select,insert,update,references		Default	Default
+def	test1	tb2	f89	31	0000000008.8	NO	float	NULL	NULL	12	NULL	NULL	NULL	float unsigned zerofill			select,insert,update,references		Default	Default
+def	test1	tb2	f90	32	0000000008.8	NO	float	NULL	NULL	12	NULL	NULL	NULL	float unsigned zerofill			select,insert,update,references		Default	Default
+def	test1	tb2	f91	33	0000000008.8	NO	float	NULL	NULL	12	NULL	NULL	NULL	float unsigned zerofill			select,insert,update,references		Default	Default
+def	test1	tb2	f92	34	0000000008.8	NO	float	NULL	NULL	12	NULL	NULL	NULL	float unsigned zerofill			select,insert,update,references		Default	Default
 def	test1	tb2	f93	35	8.8	NO	float	NULL	NULL	12	NULL	NULL	NULL	float			select,insert,update,references		Default	Default
 def	test1	tb2	f94	36	8.8	NO	double	NULL	NULL	22	NULL	NULL	NULL	double			select,insert,update,references		Default	Default
-def	test1	tb2	f95	37	8.8	NO	float unsigned	NULL	NULL	12	NULL	NULL	NULL	float unsigned			select,insert,update,references		Default	Default
-def	test1	tb2	f96	38	8.8	NO	double unsigned	NULL	NULL	22	NULL	NULL	NULL	double unsigned			select,insert,update,references		Default	Default
-def	test1	tb2	f97	39	0000000008.8	NO	float unsigned zerofill	NULL	NULL	12	NULL	NULL	NULL	float unsigned zerofill			select,insert,update,references		Default	Default
-def	test1	tb2	f98	40	00000000000000000008.8	NO	double unsigned zerofill	NULL	NULL	22	NULL	NULL	NULL	double unsigned zerofill			select,insert,update,references		Default	Default
-def	test1	tb2	f99	41	0000000008.8	NO	float unsigned zerofill	NULL	NULL	12	NULL	NULL	NULL	float unsigned zerofill			select,insert,update,references		Default	Default
+def	test1	tb2	f95	37	8.8	NO	float	NULL	NULL	12	NULL	NULL	NULL	float unsigned			select,insert,update,references		Default	Default
+def	test1	tb2	f96	38	8.8	NO	double	NULL	NULL	22	NULL	NULL	NULL	double unsigned			select,insert,update,references		Default	Default
+def	test1	tb2	f97	39	0000000008.8	NO	float	NULL	NULL	12	NULL	NULL	NULL	float unsigned zerofill			select,insert,update,references		Default	Default
+def	test1	tb2	f98	40	00000000000000000008.8	NO	double	NULL	NULL	22	NULL	NULL	NULL	double unsigned zerofill			select,insert,update,references		Default	Default
+def	test1	tb2	f99	41	0000000008.8	NO	float	NULL	NULL	12	NULL	NULL	NULL	float unsigned zerofill			select,insert,update,references		Default	Default
 def	test4	t6	f1	1	NULL	YES	char	20	20	NULL	NULL	latin1	latin1_swedish_ci	char(20)			select,insert,update,references		Default	Default
 def	test4	t6	f2	2	NULL	YES	char	25	25	NULL	NULL	latin1	latin1_swedish_ci	char(25)			select,insert,update,references		Default	Default
 def	test4	t6	f3	3	NULL	YES	date	NULL	NULL	NULL	NULL	NULL	NULL	date			select,insert,update,references		Default	Default
@@ -762,11 +762,7 @@ NULL	date	NULL	NULL
 NULL	datetime	NULL	NULL
 NULL	decimal	NULL	NULL
 NULL	double	NULL	NULL
-NULL	double unsigned	NULL	NULL
-NULL	double unsigned zerofill	NULL	NULL
 NULL	float	NULL	NULL
-NULL	float unsigned	NULL	NULL
-NULL	float unsigned zerofill	NULL	NULL
 NULL	int	NULL	NULL
 NULL	mediumint	NULL	NULL
 NULL	smallint	NULL	NULL
@@ -910,33 +906,33 @@ NULL	test	tb2	f70	decimal	NULL	NULL	NULL
 NULL	test	tb2	f71	decimal	NULL	NULL	NULL	NULL	decimal(10,0) unsigned zerofill
 NULL	test	tb2	f72	decimal	NULL	NULL	NULL	NULL	decimal(63,30) unsigned zerofill
 NULL	test	tb2	f73	double	NULL	NULL	NULL	NULL	double
-NULL	test	tb2	f74	double unsigned	NULL	NULL	NULL	NULL	double unsigned
-NULL	test	tb2	f75	double unsigned zerofill	NULL	NULL	NULL	NULL	double unsigned zerofill
-NULL	test	tb2	f76	double unsigned zerofill	NULL	NULL	NULL	NULL	double unsigned zerofill
+NULL	test	tb2	f74	double	NULL	NULL	NULL	NULL	double unsigned
+NULL	test	tb2	f75	double	NULL	NULL	NULL	NULL	double unsigned zerofill
+NULL	test	tb2	f76	double	NULL	NULL	NULL	NULL	double unsigned zerofill
 NULL	test	tb2	f77	double	NULL	NULL	NULL	NULL	double
-NULL	test	tb2	f78	double unsigned	NULL	NULL	NULL	NULL	double unsigned
-NULL	test	tb2	f79	double unsigned zerofill	NULL	NULL	NULL	NULL	double unsigned zerofill
-NULL	test	tb2	f80	double unsigned zerofill	NULL	NULL	NULL	NULL	double unsigned zerofill
+NULL	test	tb2	f78	double	NULL	NULL	NULL	NULL	double unsigned
+NULL	test	tb2	f79	double	NULL	NULL	NULL	NULL	double unsigned zerofill
+NULL	test	tb2	f80	double	NULL	NULL	NULL	NULL	double unsigned zerofill
 NULL	test	tb2	f81	float	NULL	NULL	NULL	NULL	float
-NULL	test	tb2	f82	float unsigned	NULL	NULL	NULL	NULL	float unsigned
-NULL	test	tb2	f83	float unsigned zerofill	NULL	NULL	NULL	NULL	float unsigned zerofill
-NULL	test	tb2	f84	float unsigned zerofill	NULL	NULL	NULL	NULL	float unsigned zerofill
+NULL	test	tb2	f82	float	NULL	NULL	NULL	NULL	float unsigned
+NULL	test	tb2	f83	float	NULL	NULL	NULL	NULL	float unsigned zerofill
+NULL	test	tb2	f84	float	NULL	NULL	NULL	NULL	float unsigned zerofill
 NULL	test	tb2	f85	float	NULL	NULL	NULL	NULL	float
 NULL	test	tb2	f86	float	NULL	NULL	NULL	NULL	float
-NULL	test	tb2	f87	float unsigned	NULL	NULL	NULL	NULL	float unsigned
-NULL	test	tb2	f88	float unsigned	NULL	NULL	NULL	NULL	float unsigned
-NULL	test	tb2	f89	float unsigned zerofill	NULL	NULL	NULL	NULL	float unsigned zerofill
-NULL	test	tb2	f90	float unsigned zerofill	NULL	NULL	NULL	NULL	float unsigned zerofill
-NULL	test	tb2	f91	float unsigned zerofill	NULL	NULL	NULL	NULL	float unsigned zerofill
-NULL	test	tb2	f92	float unsigned zerofill	NULL	NULL	NULL	NULL	float unsigned zerofill
+NULL	test	tb2	f87	float	NULL	NULL	NULL	NULL	float unsigned
+NULL	test	tb2	f88	float	NULL	NULL	NULL	NULL	float unsigned
+NULL	test	tb2	f89	float	NULL	NULL	NULL	NULL	float unsigned zerofill
+NULL	test	tb2	f90	float	NULL	NULL	NULL	NULL	float unsigned zerofill
+NULL	test	tb2	f91	float	NULL	NULL	NULL	NULL	float unsigned zerofill
+NULL	test	tb2	f92	float	NULL	NULL	NULL	NULL	float unsigned zerofill
 NULL	test	tb2	f93	float	NULL	NULL	NULL	NULL	float
 NULL	test	tb2	f94	double	NULL	NULL	NULL	NULL	double
-NULL	test	tb2	f95	float unsigned	NULL	NULL	NULL	NULL	float unsigned
-NULL	test	tb2	f96	double unsigned	NULL	NULL	NULL	NULL	double unsigned
-NULL	test	tb2	f97	float unsigned zerofill	NULL	NULL	NULL	NULL	float unsigned zerofill
-NULL	test	tb2	f98	double unsigned zerofill	NULL	NULL	NULL	NULL	double unsigned zerofill
-NULL	test	tb2	f99	float unsigned zerofill	NULL	NULL	NULL	NULL	float unsigned zerofill
-NULL	test	tb2	f100	double unsigned zerofill	NULL	NULL	NULL	NULL	double unsigned zerofill
+NULL	test	tb2	f95	float	NULL	NULL	NULL	NULL	float unsigned
+NULL	test	tb2	f96	double	NULL	NULL	NULL	NULL	double unsigned
+NULL	test	tb2	f97	float	NULL	NULL	NULL	NULL	float unsigned zerofill
+NULL	test	tb2	f98	double	NULL	NULL	NULL	NULL	double unsigned zerofill
+NULL	test	tb2	f99	float	NULL	NULL	NULL	NULL	float unsigned zerofill
+NULL	test	tb2	f100	double	NULL	NULL	NULL	NULL	double unsigned zerofill
 NULL	test	tb2	f101	date	NULL	NULL	NULL	NULL	date
 NULL	test	tb2	f102	time	NULL	NULL	NULL	NULL	time
 NULL	test	tb2	f103	datetime	NULL	NULL	NULL	NULL	datetime
@@ -1019,33 +1015,33 @@ NULL	test	tb4	f187	decimal	NULL	NULL	NUL
 NULL	test	tb4	f188	decimal	NULL	NULL	NULL	NULL	decimal(10,0) unsigned zerofill
 NULL	test	tb4	f189	decimal	NULL	NULL	NULL	NULL	decimal(63,30) unsigned zerofill
 NULL	test	tb4	f190	double	NULL	NULL	NULL	NULL	double
-NULL	test	tb4	f191	double unsigned	NULL	NULL	NULL	NULL	double unsigned
-NULL	test	tb4	f192	double unsigned zerofill	NULL	NULL	NULL	NULL	double unsigned zerofill
-NULL	test	tb4	f193	double unsigned zerofill	NULL	NULL	NULL	NULL	double unsigned zerofill
+NULL	test	tb4	f191	double	NULL	NULL	NULL	NULL	double unsigned
+NULL	test	tb4	f192	double	NULL	NULL	NULL	NULL	double unsigned zerofill
+NULL	test	tb4	f193	double	NULL	NULL	NULL	NULL	double unsigned zerofill
 NULL	test	tb4	f194	double	NULL	NULL	NULL	NULL	double
-NULL	test	tb4	f195	double unsigned	NULL	NULL	NULL	NULL	double unsigned
-NULL	test	tb4	f196	double unsigned zerofill	NULL	NULL	NULL	NULL	double unsigned zerofill
-NULL	test	tb4	f197	double unsigned zerofill	NULL	NULL	NULL	NULL	double unsigned zerofill
+NULL	test	tb4	f195	double	NULL	NULL	NULL	NULL	double unsigned
+NULL	test	tb4	f196	double	NULL	NULL	NULL	NULL	double unsigned zerofill
+NULL	test	tb4	f197	double	NULL	NULL	NULL	NULL	double unsigned zerofill
 NULL	test	tb4	f198	float	NULL	NULL	NULL	NULL	float
-NULL	test	tb4	f199	float unsigned	NULL	NULL	NULL	NULL	float unsigned
-NULL	test	tb4	f200	float unsigned zerofill	NULL	NULL	NULL	NULL	float unsigned zerofill
-NULL	test	tb4	f201	float unsigned zerofill	NULL	NULL	NULL	NULL	float unsigned zerofill
+NULL	test	tb4	f199	float	NULL	NULL	NULL	NULL	float unsigned
+NULL	test	tb4	f200	float	NULL	NULL	NULL	NULL	float unsigned zerofill
+NULL	test	tb4	f201	float	NULL	NULL	NULL	NULL	float unsigned zerofill
 NULL	test	tb4	f202	float	NULL	NULL	NULL	NULL	float
 NULL	test	tb4	f203	float	NULL	NULL	NULL	NULL	float
-NULL	test	tb4	f204	float unsigned	NULL	NULL	NULL	NULL	float unsigned
-NULL	test	tb4	f205	float unsigned	NULL	NULL	NULL	NULL	float unsigned
-NULL	test	tb4	f206	float unsigned zerofill	NULL	NULL	NULL	NULL	float unsigned zerofill
-NULL	test	tb4	f207	float unsigned zerofill	NULL	NULL	NULL	NULL	float unsigned zerofill
-NULL	test	tb4	f208	float unsigned zerofill	NULL	NULL	NULL	NULL	float unsigned zerofill
-NULL	test	tb4	f209	float unsigned zerofill	NULL	NULL	NULL	NULL	float unsigned zerofill
+NULL	test	tb4	f204	float	NULL	NULL	NULL	NULL	float unsigned
+NULL	test	tb4	f205	float	NULL	NULL	NULL	NULL	float unsigned
+NULL	test	tb4	f206	float	NULL	NULL	NULL	NULL	float unsigned zerofill
+NULL	test	tb4	f207	float	NULL	NULL	NULL	NULL	float unsigned zerofill
+NULL	test	tb4	f208	float	NULL	NULL	NULL	NULL	float unsigned zerofill
+NULL	test	tb4	f209	float	NULL	NULL	NULL	NULL	float unsigned zerofill
 NULL	test	tb4	f210	float	NULL	NULL	NULL	NULL	float
 NULL	test	tb4	f211	double	NULL	NULL	NULL	NULL	double
-NULL	test	tb4	f212	float unsigned	NULL	NULL	NULL	NULL	float unsigned
-NULL	test	tb4	f213	double unsigned	NULL	NULL	NULL	NULL	double unsigned
-NULL	test	tb4	f214	float unsigned zerofill	NULL	NULL	NULL	NULL	float unsigned zerofill
-NULL	test	tb4	f215	double unsigned zerofill	NULL	NULL	NULL	NULL	double unsigned zerofill
-NULL	test	tb4	f216	float unsigned zerofill	NULL	NULL	NULL	NULL	float unsigned zerofill
-NULL	test	tb4	f217	double unsigned zerofill	NULL	NULL	NULL	NULL	double unsigned zerofill
+NULL	test	tb4	f212	float	NULL	NULL	NULL	NULL	float unsigned
+NULL	test	tb4	f213	double	NULL	NULL	NULL	NULL	double unsigned
+NULL	test	tb4	f214	float	NULL	NULL	NULL	NULL	float unsigned zerofill
+NULL	test	tb4	f215	double	NULL	NULL	NULL	NULL	double unsigned zerofill
+NULL	test	tb4	f216	float	NULL	NULL	NULL	NULL	float unsigned zerofill
+NULL	test	tb4	f217	double	NULL	NULL	NULL	NULL	double unsigned zerofill
 NULL	test	tb4	f218	date	NULL	NULL	NULL	NULL	date
 NULL	test	tb4	f219	time	NULL	NULL	NULL	NULL	time
 NULL	test	tb4	f220	datetime	NULL	NULL	NULL	NULL	datetime
@@ -1077,33 +1073,33 @@ NULL	test1	tb2	f70	decimal	NULL	NULL	NUL
 NULL	test1	tb2	f71	decimal	NULL	NULL	NULL	NULL	decimal(10,0) unsigned zerofill
 NULL	test1	tb2	f72	decimal	NULL	NULL	NULL	NULL	decimal(63,30) unsigned zerofill
 NULL	test1	tb2	f73	double	NULL	NULL	NULL	NULL	double
-NULL	test1	tb2	f74	double unsigned	NULL	NULL	NULL	NULL	double unsigned
-NULL	test1	tb2	f75	double unsigned zerofill	NULL	NULL	NULL	NULL	double unsigned zerofill
-NULL	test1	tb2	f76	double unsigned zerofill	NULL	NULL	NULL	NULL	double unsigned zerofill
+NULL	test1	tb2	f74	double	NULL	NULL	NULL	NULL	double unsigned
+NULL	test1	tb2	f75	double	NULL	NULL	NULL	NULL	double unsigned zerofill
+NULL	test1	tb2	f76	double	NULL	NULL	NULL	NULL	double unsigned zerofill
 NULL	test1	tb2	f77	double	NULL	NULL	NULL	NULL	double
-NULL	test1	tb2	f78	double unsigned	NULL	NULL	NULL	NULL	double unsigned
-NULL	test1	tb2	f79	double unsigned zerofill	NULL	NULL	NULL	NULL	double unsigned zerofill
-NULL	test1	tb2	f80	double unsigned zerofill	NULL	NULL	NULL	NULL	double unsigned zerofill
+NULL	test1	tb2	f78	double	NULL	NULL	NULL	NULL	double unsigned
+NULL	test1	tb2	f79	double	NULL	NULL	NULL	NULL	double unsigned zerofill
+NULL	test1	tb2	f80	double	NULL	NULL	NULL	NULL	double unsigned zerofill
 NULL	test1	tb2	f81	float	NULL	NULL	NULL	NULL	float
-NULL	test1	tb2	f82	float unsigned	NULL	NULL	NULL	NULL	float unsigned
-NULL	test1	tb2	f83	float unsigned zerofill	NULL	NULL	NULL	NULL	float unsigned zerofill
-NULL	test1	tb2	f84	float unsigned zerofill	NULL	NULL	NULL	NULL	float unsigned zerofill
+NULL	test1	tb2	f82	float	NULL	NULL	NULL	NULL	float unsigned
+NULL	test1	tb2	f83	float	NULL	NULL	NULL	NULL	float unsigned zerofill
+NULL	test1	tb2	f84	float	NULL	NULL	NULL	NULL	float unsigned zerofill
 NULL	test1	tb2	f85	float	NULL	NULL	NULL	NULL	float
 NULL	test1	tb2	f86	float	NULL	NULL	NULL	NULL	float
-NULL	test1	tb2	f87	float unsigned	NULL	NULL	NULL	NULL	float unsigned
-NULL	test1	tb2	f88	float unsigned	NULL	NULL	NULL	NULL	float unsigned
-NULL	test1	tb2	f89	float unsigned zerofill	NULL	NULL	NULL	NULL	float unsigned zerofill
-NULL	test1	tb2	f90	float unsigned zerofill	NULL	NULL	NULL	NULL	float unsigned zerofill
-NULL	test1	tb2	f91	float unsigned zerofill	NULL	NULL	NULL	NULL	float unsigned zerofill
-NULL	test1	tb2	f92	float unsigned zerofill	NULL	NULL	NULL	NULL	float unsigned zerofill
+NULL	test1	tb2	f87	float	NULL	NULL	NULL	NULL	float unsigned
+NULL	test1	tb2	f88	float	NULL	NULL	NULL	NULL	float unsigned
+NULL	test1	tb2	f89	float	NULL	NULL	NULL	NULL	float unsigned zerofill
+NULL	test1	tb2	f90	float	NULL	NULL	NULL	NULL	float unsigned zerofill
+NULL	test1	tb2	f91	float	NULL	NULL	NULL	NULL	float unsigned zerofill
+NULL	test1	tb2	f92	float	NULL	NULL	NULL	NULL	float unsigned zerofill
 NULL	test1	tb2	f93	float	NULL	NULL	NULL	NULL	float
 NULL	test1	tb2	f94	double	NULL	NULL	NULL	NULL	double
-NULL	test1	tb2	f95	float unsigned	NULL	NULL	NULL	NULL	float unsigned
-NULL	test1	tb2	f96	double unsigned	NULL	NULL	NULL	NULL	double unsigned
-NULL	test1	tb2	f97	float unsigned zerofill	NULL	NULL	NULL	NULL	float unsigned zerofill
-NULL	test1	tb2	f98	double unsigned zerofill	NULL	NULL	NULL	NULL	double unsigned zerofill
-NULL	test1	tb2	f99	float unsigned zerofill	NULL	NULL	NULL	NULL	float unsigned zerofill
-NULL	test1	tb2	f100	double unsigned zerofill	NULL	NULL	NULL	NULL	double unsigned zerofill
+NULL	test1	tb2	f95	float	NULL	NULL	NULL	NULL	float unsigned
+NULL	test1	tb2	f96	double	NULL	NULL	NULL	NULL	double unsigned
+NULL	test1	tb2	f97	float	NULL	NULL	NULL	NULL	float unsigned zerofill
+NULL	test1	tb2	f98	double	NULL	NULL	NULL	NULL	double unsigned zerofill
+NULL	test1	tb2	f99	float	NULL	NULL	NULL	NULL	float unsigned zerofill
+NULL	test1	tb2	f100	double	NULL	NULL	NULL	NULL	double unsigned zerofill
 NULL	test1	tb2	f101	date	NULL	NULL	NULL	NULL	date
 NULL	test1	tb2	f102	time	NULL	NULL	NULL	NULL	time
 NULL	test1	tb2	f103	datetime	NULL	NULL	NULL	NULL	datetime

=== modified file 'mysql-test/suite/funcs_1/r/is_columns_innodb.result'
--- a/mysql-test/suite/funcs_1/r/is_columns_innodb.result	2009-02-16 14:47:53 +0000
+++ b/mysql-test/suite/funcs_1/r/is_columns_innodb.result	2009-03-05 12:22:26 +0000
@@ -485,7 +485,7 @@ def	test	tb1	f6	6	NULL	YES	mediumtext	16
 def	test	tb1	f7	7	NULL	YES	longtext	4294967295	4294967295	NULL	NULL	latin1	latin1_swedish_ci	longtext			select,insert,update,references		Default	Default
 def	test	tb1	f8	8	NULL	YES	tinyblob	255	255	NULL	NULL	NULL	NULL	tinyblob			select,insert,update,references		Default	Default
 def	test	tb1	f9	9	NULL	YES	blob	65535	65535	NULL	NULL	NULL	NULL	blob			select,insert,update,references		Default	Default
-def	test	tb2	f100	42	00000000000000000008.8	NO	double unsigned zerofill	NULL	NULL	22	NULL	NULL	NULL	double unsigned zerofill			select,insert,update,references		Default	Default
+def	test	tb2	f100	42	00000000000000000008.8	NO	double	NULL	NULL	22	NULL	NULL	NULL	double unsigned zerofill			select,insert,update,references		Default	Default
 def	test	tb2	f101	43	2000-01-01	NO	date	NULL	NULL	NULL	NULL	NULL	NULL	date			select,insert,update,references		Default	Default
 def	test	tb2	f102	44	00:00:20	NO	time	NULL	NULL	NULL	NULL	NULL	NULL	time			select,insert,update,references		Default	Default
 def	test	tb2	f103	45	0002-02-02 00:00:00	NO	datetime	NULL	NULL	NULL	NULL	NULL	NULL	datetime			select,insert,update,references		Default	Default
@@ -510,32 +510,32 @@ def	test	tb2	f70	12	NULL	YES	decimal	NUL
 def	test	tb2	f71	13	NULL	YES	decimal	NULL	NULL	10	0	NULL	NULL	decimal(10,0) unsigned zerofill			select,insert,update,references		Default	Default
 def	test	tb2	f72	14	NULL	YES	decimal	NULL	NULL	63	30	NULL	NULL	decimal(63,30) unsigned zerofill			select,insert,update,references		Default	Default
 def	test	tb2	f73	15	NULL	YES	double	NULL	NULL	22	NULL	NULL	NULL	double			select,insert,update,references		Default	Default
-def	test	tb2	f74	16	NULL	YES	double unsigned	NULL	NULL	22	NULL	NULL	NULL	double unsigned			select,insert,update,references		Default	Default
-def	test	tb2	f75	17	NULL	YES	double unsigned zerofill	NULL	NULL	22	NULL	NULL	NULL	double unsigned zerofill			select,insert,update,references		Default	Default
-def	test	tb2	f76	18	NULL	YES	double unsigned zerofill	NULL	NULL	22	NULL	NULL	NULL	double unsigned zerofill			select,insert,update,references		Default	Default
+def	test	tb2	f74	16	NULL	YES	double	NULL	NULL	22	NULL	NULL	NULL	double unsigned			select,insert,update,references		Default	Default
+def	test	tb2	f75	17	NULL	YES	double	NULL	NULL	22	NULL	NULL	NULL	double unsigned zerofill			select,insert,update,references		Default	Default
+def	test	tb2	f76	18	NULL	YES	double	NULL	NULL	22	NULL	NULL	NULL	double unsigned zerofill			select,insert,update,references		Default	Default
 def	test	tb2	f77	19	7.7	YES	double	NULL	NULL	22	NULL	NULL	NULL	double			select,insert,update,references		Default	Default
-def	test	tb2	f78	20	7.7	YES	double unsigned	NULL	NULL	22	NULL	NULL	NULL	double unsigned			select,insert,update,references		Default	Default
-def	test	tb2	f79	21	00000000000000000007.7	YES	double unsigned zerofill	NULL	NULL	22	NULL	NULL	NULL	double unsigned zerofill			select,insert,update,references		Default	Default
-def	test	tb2	f80	22	00000000000000000008.8	YES	double unsigned zerofill	NULL	NULL	22	NULL	NULL	NULL	double unsigned zerofill			select,insert,update,references		Default	Default
+def	test	tb2	f78	20	7.7	YES	double	NULL	NULL	22	NULL	NULL	NULL	double unsigned			select,insert,update,references		Default	Default
+def	test	tb2	f79	21	00000000000000000007.7	YES	double	NULL	NULL	22	NULL	NULL	NULL	double unsigned zerofill			select,insert,update,references		Default	Default
+def	test	tb2	f80	22	00000000000000000008.8	YES	double	NULL	NULL	22	NULL	NULL	NULL	double unsigned zerofill			select,insert,update,references		Default	Default
 def	test	tb2	f81	23	8.8	NO	float	NULL	NULL	12	NULL	NULL	NULL	float			select,insert,update,references		Default	Default
-def	test	tb2	f82	24	8.8	NO	float unsigned	NULL	NULL	12	NULL	NULL	NULL	float unsigned			select,insert,update,references		Default	Default
-def	test	tb2	f83	25	0000000008.8	NO	float unsigned zerofill	NULL	NULL	12	NULL	NULL	NULL	float unsigned zerofill			select,insert,update,references		Default	Default
-def	test	tb2	f84	26	0000000008.8	NO	float unsigned zerofill	NULL	NULL	12	NULL	NULL	NULL	float unsigned zerofill			select,insert,update,references		Default	Default
+def	test	tb2	f82	24	8.8	NO	float	NULL	NULL	12	NULL	NULL	NULL	float unsigned			select,insert,update,references		Default	Default
+def	test	tb2	f83	25	0000000008.8	NO	float	NULL	NULL	12	NULL	NULL	NULL	float unsigned zerofill			select,insert,update,references		Default	Default
+def	test	tb2	f84	26	0000000008.8	NO	float	NULL	NULL	12	NULL	NULL	NULL	float unsigned zerofill			select,insert,update,references		Default	Default
 def	test	tb2	f85	27	8.8	NO	float	NULL	NULL	12	NULL	NULL	NULL	float			select,insert,update,references		Default	Default
 def	test	tb2	f86	28	8.8	NO	float	NULL	NULL	12	NULL	NULL	NULL	float			select,insert,update,references		Default	Default
-def	test	tb2	f87	29	8.8	NO	float unsigned	NULL	NULL	12	NULL	NULL	NULL	float unsigned			select,insert,update,references		Default	Default
-def	test	tb2	f88	30	8.8	NO	float unsigned	NULL	NULL	12	NULL	NULL	NULL	float unsigned			select,insert,update,references		Default	Default
-def	test	tb2	f89	31	0000000008.8	NO	float unsigned zerofill	NULL	NULL	12	NULL	NULL	NULL	float unsigned zerofill			select,insert,update,references		Default	Default
-def	test	tb2	f90	32	0000000008.8	NO	float unsigned zerofill	NULL	NULL	12	NULL	NULL	NULL	float unsigned zerofill			select,insert,update,references		Default	Default
-def	test	tb2	f91	33	0000000008.8	NO	float unsigned zerofill	NULL	NULL	12	NULL	NULL	NULL	float unsigned zerofill			select,insert,update,references		Default	Default
-def	test	tb2	f92	34	0000000008.8	NO	float unsigned zerofill	NULL	NULL	12	NULL	NULL	NULL	float unsigned zerofill			select,insert,update,references		Default	Default
+def	test	tb2	f87	29	8.8	NO	float	NULL	NULL	12	NULL	NULL	NULL	float unsigned			select,insert,update,references		Default	Default
+def	test	tb2	f88	30	8.8	NO	float	NULL	NULL	12	NULL	NULL	NULL	float unsigned			select,insert,update,references		Default	Default
+def	test	tb2	f89	31	0000000008.8	NO	float	NULL	NULL	12	NULL	NULL	NULL	float unsigned zerofill			select,insert,update,references		Default	Default
+def	test	tb2	f90	32	0000000008.8	NO	float	NULL	NULL	12	NULL	NULL	NULL	float unsigned zerofill			select,insert,update,references		Default	Default
+def	test	tb2	f91	33	0000000008.8	NO	float	NULL	NULL	12	NULL	NULL	NULL	float unsigned zerofill			select,insert,update,references		Default	Default
+def	test	tb2	f92	34	0000000008.8	NO	float	NULL	NULL	12	NULL	NULL	NULL	float unsigned zerofill			select,insert,update,references		Default	Default
 def	test	tb2	f93	35	8.8	NO	float	NULL	NULL	12	NULL	NULL	NULL	float			select,insert,update,references		Default	Default
 def	test	tb2	f94	36	8.8	NO	double	NULL	NULL	22	NULL	NULL	NULL	double			select,insert,update,references		Default	Default
-def	test	tb2	f95	37	8.8	NO	float unsigned	NULL	NULL	12	NULL	NULL	NULL	float unsigned			select,insert,update,references		Default	Default
-def	test	tb2	f96	38	8.8	NO	double unsigned	NULL	NULL	22	NULL	NULL	NULL	double unsigned			select,insert,update,references		Default	Default
-def	test	tb2	f97	39	0000000008.8	NO	float unsigned zerofill	NULL	NULL	12	NULL	NULL	NULL	float unsigned zerofill			select,insert,update,references		Default	Default
-def	test	tb2	f98	40	00000000000000000008.8	NO	double unsigned zerofill	NULL	NULL	22	NULL	NULL	NULL	double unsigned zerofill			select,insert,update,references		Default	Default
-def	test	tb2	f99	41	0000000008.8	NO	float unsigned zerofill	NULL	NULL	12	NULL	NULL	NULL	float unsigned zerofill			select,insert,update,references		Default	Default
+def	test	tb2	f95	37	8.8	NO	float	NULL	NULL	12	NULL	NULL	NULL	float unsigned			select,insert,update,references		Default	Default
+def	test	tb2	f96	38	8.8	NO	double	NULL	NULL	22	NULL	NULL	NULL	double unsigned			select,insert,update,references		Default	Default
+def	test	tb2	f97	39	0000000008.8	NO	float	NULL	NULL	12	NULL	NULL	NULL	float unsigned zerofill			select,insert,update,references		Default	Default
+def	test	tb2	f98	40	00000000000000000008.8	NO	double	NULL	NULL	22	NULL	NULL	NULL	double unsigned zerofill			select,insert,update,references		Default	Default
+def	test	tb2	f99	41	0000000008.8	NO	float	NULL	NULL	12	NULL	NULL	NULL	float unsigned zerofill			select,insert,update,references		Default	Default
 def	test	tb3	f118	1	a	NO	char	1	1	NULL	NULL	latin1	latin1_swedish_ci	char(1)			select,insert,update,references		Default	Default
 def	test	tb3	f119	2		NO	char	1	1	NULL	NULL	latin1	latin1_bin	char(1)			select,insert,update,references		Default	Default
 def	test	tb3	f120	3		NO	char	1	1	NULL	NULL	latin1	latin1_swedish_ci	char(1)			select,insert,update,references		Default	Default
@@ -609,33 +609,33 @@ def	test	tb4	f187	12	0000000000000000000
 def	test	tb4	f188	13	0000000009	NO	decimal	NULL	NULL	10	0	NULL	NULL	decimal(10,0) unsigned zerofill			select,insert,update,references		Default	Default
 def	test	tb4	f189	14	000000000000000000000000000000009.000000000000000000000000000000	NO	decimal	NULL	NULL	63	30	NULL	NULL	decimal(63,30) unsigned zerofill			select,insert,update,references		Default	Default
 def	test	tb4	f190	15	88.8	NO	double	NULL	NULL	22	NULL	NULL	NULL	double			select,insert,update,references		Default	Default
-def	test	tb4	f191	16	88.8	NO	double unsigned	NULL	NULL	22	NULL	NULL	NULL	double unsigned			select,insert,update,references		Default	Default
-def	test	tb4	f192	17	00000000000000000088.8	NO	double unsigned zerofill	NULL	NULL	22	NULL	NULL	NULL	double unsigned zerofill			select,insert,update,references		Default	Default
-def	test	tb4	f193	18	00000000000000000088.8	NO	double unsigned zerofill	NULL	NULL	22	NULL	NULL	NULL	double unsigned zerofill			select,insert,update,references		Default	Default
+def	test	tb4	f191	16	88.8	NO	double	NULL	NULL	22	NULL	NULL	NULL	double unsigned			select,insert,update,references		Default	Default
+def	test	tb4	f192	17	00000000000000000088.8	NO	double	NULL	NULL	22	NULL	NULL	NULL	double unsigned zerofill			select,insert,update,references		Default	Default
+def	test	tb4	f193	18	00000000000000000088.8	NO	double	NULL	NULL	22	NULL	NULL	NULL	double unsigned zerofill			select,insert,update,references		Default	Default
 def	test	tb4	f194	19	55.5	NO	double	NULL	NULL	22	NULL	NULL	NULL	double			select,insert,update,references		Default	Default
-def	test	tb4	f195	20	55.5	NO	double unsigned	NULL	NULL	22	NULL	NULL	NULL	double unsigned			select,insert,update,references		Default	Default
-def	test	tb4	f196	21	00000000000000000055.5	NO	double unsigned zerofill	NULL	NULL	22	NULL	NULL	NULL	double unsigned zerofill			select,insert,update,references		Default	Default
-def	test	tb4	f197	22	00000000000000000055.5	NO	double unsigned zerofill	NULL	NULL	22	NULL	NULL	NULL	double unsigned zerofill			select,insert,update,references		Default	Default
+def	test	tb4	f195	20	55.5	NO	double	NULL	NULL	22	NULL	NULL	NULL	double unsigned			select,insert,update,references		Default	Default
+def	test	tb4	f196	21	00000000000000000055.5	NO	double	NULL	NULL	22	NULL	NULL	NULL	double unsigned zerofill			select,insert,update,references		Default	Default
+def	test	tb4	f197	22	00000000000000000055.5	NO	double	NULL	NULL	22	NULL	NULL	NULL	double unsigned zerofill			select,insert,update,references		Default	Default
 def	test	tb4	f198	23	NULL	YES	float	NULL	NULL	12	NULL	NULL	NULL	float			select,insert,update,references		Default	Default
-def	test	tb4	f199	24	NULL	YES	float unsigned	NULL	NULL	12	NULL	NULL	NULL	float unsigned			select,insert,update,references		Default	Default
-def	test	tb4	f200	25	NULL	YES	float unsigned zerofill	NULL	NULL	12	NULL	NULL	NULL	float unsigned zerofill			select,insert,update,references		Default	Default
-def	test	tb4	f201	26	NULL	YES	float unsigned zerofill	NULL	NULL	12	NULL	NULL	NULL	float unsigned zerofill			select,insert,update,references		Default	Default
+def	test	tb4	f199	24	NULL	YES	float	NULL	NULL	12	NULL	NULL	NULL	float unsigned			select,insert,update,references		Default	Default
+def	test	tb4	f200	25	NULL	YES	float	NULL	NULL	12	NULL	NULL	NULL	float unsigned zerofill			select,insert,update,references		Default	Default
+def	test	tb4	f201	26	NULL	YES	float	NULL	NULL	12	NULL	NULL	NULL	float unsigned zerofill			select,insert,update,references		Default	Default
 def	test	tb4	f202	27	NULL	YES	float	NULL	NULL	12	NULL	NULL	NULL	float			select,insert,update,references		Default	Default
 def	test	tb4	f203	28	NULL	YES	float	NULL	NULL	12	NULL	NULL	NULL	float			select,insert,update,references		Default	Default
-def	test	tb4	f204	29	NULL	YES	float unsigned	NULL	NULL	12	NULL	NULL	NULL	float unsigned			select,insert,update,references		Default	Default
-def	test	tb4	f205	30	NULL	YES	float unsigned	NULL	NULL	12	NULL	NULL	NULL	float unsigned			select,insert,update,references		Default	Default
-def	test	tb4	f206	31	NULL	YES	float unsigned zerofill	NULL	NULL	12	NULL	NULL	NULL	float unsigned zerofill			select,insert,update,references		Default	Default
-def	test	tb4	f207	32	NULL	YES	float unsigned zerofill	NULL	NULL	12	NULL	NULL	NULL	float unsigned zerofill			select,insert,update,references		Default	Default
-def	test	tb4	f208	33	NULL	YES	float unsigned zerofill	NULL	NULL	12	NULL	NULL	NULL	float unsigned zerofill			select,insert,update,references		Default	Default
-def	test	tb4	f209	34	NULL	YES	float unsigned zerofill	NULL	NULL	12	NULL	NULL	NULL	float unsigned zerofill			select,insert,update,references		Default	Default
+def	test	tb4	f204	29	NULL	YES	float	NULL	NULL	12	NULL	NULL	NULL	float unsigned			select,insert,update,references		Default	Default
+def	test	tb4	f205	30	NULL	YES	float	NULL	NULL	12	NULL	NULL	NULL	float unsigned			select,insert,update,references		Default	Default
+def	test	tb4	f206	31	NULL	YES	float	NULL	NULL	12	NULL	NULL	NULL	float unsigned zerofill			select,insert,update,references		Default	Default
+def	test	tb4	f207	32	NULL	YES	float	NULL	NULL	12	NULL	NULL	NULL	float unsigned zerofill			select,insert,update,references		Default	Default
+def	test	tb4	f208	33	NULL	YES	float	NULL	NULL	12	NULL	NULL	NULL	float unsigned zerofill			select,insert,update,references		Default	Default
+def	test	tb4	f209	34	NULL	YES	float	NULL	NULL	12	NULL	NULL	NULL	float unsigned zerofill			select,insert,update,references		Default	Default
 def	test	tb4	f210	35	NULL	YES	float	NULL	NULL	12	NULL	NULL	NULL	float			select,insert,update,references		Default	Default
 def	test	tb4	f211	36	NULL	YES	double	NULL	NULL	22	NULL	NULL	NULL	double			select,insert,update,references		Default	Default
-def	test	tb4	f212	37	NULL	YES	float unsigned	NULL	NULL	12	NULL	NULL	NULL	float unsigned			select,insert,update,references		Default	Default
-def	test	tb4	f213	38	NULL	YES	double unsigned	NULL	NULL	22	NULL	NULL	NULL	double unsigned			select,insert,update,references		Default	Default
-def	test	tb4	f214	39	NULL	YES	float unsigned zerofill	NULL	NULL	12	NULL	NULL	NULL	float unsigned zerofill			select,insert,update,references		Default	Default
-def	test	tb4	f215	40	NULL	YES	double unsigned zerofill	NULL	NULL	22	NULL	NULL	NULL	double unsigned zerofill			select,insert,update,references		Default	Default
-def	test	tb4	f216	41	NULL	YES	float unsigned zerofill	NULL	NULL	12	NULL	NULL	NULL	float unsigned zerofill			select,insert,update,references		Default	Default
-def	test	tb4	f217	42	NULL	YES	double unsigned zerofill	NULL	NULL	22	NULL	NULL	NULL	double unsigned zerofill			select,insert,update,references		Default	Default
+def	test	tb4	f212	37	NULL	YES	float	NULL	NULL	12	NULL	NULL	NULL	float unsigned			select,insert,update,references		Default	Default
+def	test	tb4	f213	38	NULL	YES	double	NULL	NULL	22	NULL	NULL	NULL	double unsigned			select,insert,update,references		Default	Default
+def	test	tb4	f214	39	NULL	YES	float	NULL	NULL	12	NULL	NULL	NULL	float unsigned zerofill			select,insert,update,references		Default	Default
+def	test	tb4	f215	40	NULL	YES	double	NULL	NULL	22	NULL	NULL	NULL	double unsigned zerofill			select,insert,update,references		Default	Default
+def	test	tb4	f216	41	NULL	YES	float	NULL	NULL	12	NULL	NULL	NULL	float unsigned zerofill			select,insert,update,references		Default	Default
+def	test	tb4	f217	42	NULL	YES	double	NULL	NULL	22	NULL	NULL	NULL	double unsigned zerofill			select,insert,update,references		Default	Default
 def	test	tb4	f218	43	NULL	YES	date	NULL	NULL	NULL	NULL	NULL	NULL	date			select,insert,update,references		Default	Default
 def	test	tb4	f219	44	NULL	YES	time	NULL	NULL	NULL	NULL	NULL	NULL	time			select,insert,update,references		Default	Default
 def	test	tb4	f220	45	NULL	YES	datetime	NULL	NULL	NULL	NULL	NULL	NULL	datetime			select,insert,update,references		Default	Default
@@ -652,7 +652,7 @@ def	test	tb4	f238	55	NULL	YES	varchar	0
 def	test	tb4	f239	56	NULL	YES	varchar	20000	20000	NULL	NULL	latin1	latin1_bin	varchar(20000)			select,insert,update,references		Default	Default
 def	test	tb4	f240	57	NULL	YES	varchar	2000	2000	NULL	NULL	latin1	latin1_swedish_ci	varchar(2000)			select,insert,update,references		Default	Default
 def	test	tb4	f241	58	NULL	YES	char	100	100	NULL	NULL	latin1	latin1_swedish_ci	char(100)			select,insert,update,references		Default	Default
-def	test1	tb2	f100	42	00000000000000000008.8	NO	double unsigned zerofill	NULL	NULL	22	NULL	NULL	NULL	double unsigned zerofill			select,insert,update,references		Default	Default
+def	test1	tb2	f100	42	00000000000000000008.8	NO	double	NULL	NULL	22	NULL	NULL	NULL	double unsigned zerofill			select,insert,update,references		Default	Default
 def	test1	tb2	f101	43	2000-01-01	NO	date	NULL	NULL	NULL	NULL	NULL	NULL	date			select,insert,update,references		Default	Default
 def	test1	tb2	f102	44	00:00:20	NO	time	NULL	NULL	NULL	NULL	NULL	NULL	time			select,insert,update,references		Default	Default
 def	test1	tb2	f103	45	0002-02-02 00:00:00	NO	datetime	NULL	NULL	NULL	NULL	NULL	NULL	datetime			select,insert,update,references		Default	Default
@@ -677,32 +677,32 @@ def	test1	tb2	f70	12	NULL	YES	decimal	NU
 def	test1	tb2	f71	13	NULL	YES	decimal	NULL	NULL	10	0	NULL	NULL	decimal(10,0) unsigned zerofill			select,insert,update,references		Default	Default
 def	test1	tb2	f72	14	NULL	YES	decimal	NULL	NULL	63	30	NULL	NULL	decimal(63,30) unsigned zerofill			select,insert,update,references		Default	Default
 def	test1	tb2	f73	15	NULL	YES	double	NULL	NULL	22	NULL	NULL	NULL	double			select,insert,update,references		Default	Default
-def	test1	tb2	f74	16	NULL	YES	double unsigned	NULL	NULL	22	NULL	NULL	NULL	double unsigned			select,insert,update,references		Default	Default
-def	test1	tb2	f75	17	NULL	YES	double unsigned zerofill	NULL	NULL	22	NULL	NULL	NULL	double unsigned zerofill			select,insert,update,references		Default	Default
-def	test1	tb2	f76	18	NULL	YES	double unsigned zerofill	NULL	NULL	22	NULL	NULL	NULL	double unsigned zerofill			select,insert,update,references		Default	Default
+def	test1	tb2	f74	16	NULL	YES	double	NULL	NULL	22	NULL	NULL	NULL	double unsigned			select,insert,update,references		Default	Default
+def	test1	tb2	f75	17	NULL	YES	double	NULL	NULL	22	NULL	NULL	NULL	double unsigned zerofill			select,insert,update,references		Default	Default
+def	test1	tb2	f76	18	NULL	YES	double	NULL	NULL	22	NULL	NULL	NULL	double unsigned zerofill			select,insert,update,references		Default	Default
 def	test1	tb2	f77	19	7.7	YES	double	NULL	NULL	22	NULL	NULL	NULL	double			select,insert,update,references		Default	Default
-def	test1	tb2	f78	20	7.7	YES	double unsigned	NULL	NULL	22	NULL	NULL	NULL	double unsigned			select,insert,update,references		Default	Default
-def	test1	tb2	f79	21	00000000000000000007.7	YES	double unsigned zerofill	NULL	NULL	22	NULL	NULL	NULL	double unsigned zerofill			select,insert,update,references		Default	Default
-def	test1	tb2	f80	22	00000000000000000008.8	YES	double unsigned zerofill	NULL	NULL	22	NULL	NULL	NULL	double unsigned zerofill			select,insert,update,references		Default	Default
+def	test1	tb2	f78	20	7.7	YES	double	NULL	NULL	22	NULL	NULL	NULL	double unsigned			select,insert,update,references		Default	Default
+def	test1	tb2	f79	21	00000000000000000007.7	YES	double	NULL	NULL	22	NULL	NULL	NULL	double unsigned zerofill			select,insert,update,references		Default	Default
+def	test1	tb2	f80	22	00000000000000000008.8	YES	double	NULL	NULL	22	NULL	NULL	NULL	double unsigned zerofill			select,insert,update,references		Default	Default
 def	test1	tb2	f81	23	8.8	NO	float	NULL	NULL	12	NULL	NULL	NULL	float			select,insert,update,references		Default	Default
-def	test1	tb2	f82	24	8.8	NO	float unsigned	NULL	NULL	12	NULL	NULL	NULL	float unsigned			select,insert,update,references		Default	Default
-def	test1	tb2	f83	25	0000000008.8	NO	float unsigned zerofill	NULL	NULL	12	NULL	NULL	NULL	float unsigned zerofill			select,insert,update,references		Default	Default
-def	test1	tb2	f84	26	0000000008.8	NO	float unsigned zerofill	NULL	NULL	12	NULL	NULL	NULL	float unsigned zerofill			select,insert,update,references		Default	Default
+def	test1	tb2	f82	24	8.8	NO	float	NULL	NULL	12	NULL	NULL	NULL	float unsigned			select,insert,update,references		Default	Default
+def	test1	tb2	f83	25	0000000008.8	NO	float	NULL	NULL	12	NULL	NULL	NULL	float unsigned zerofill			select,insert,update,references		Default	Default
+def	test1	tb2	f84	26	0000000008.8	NO	float	NULL	NULL	12	NULL	NULL	NULL	float unsigned zerofill			select,insert,update,references		Default	Default
 def	test1	tb2	f85	27	8.8	NO	float	NULL	NULL	12	NULL	NULL	NULL	float			select,insert,update,references		Default	Default
 def	test1	tb2	f86	28	8.8	NO	float	NULL	NULL	12	NULL	NULL	NULL	float			select,insert,update,references		Default	Default
-def	test1	tb2	f87	29	8.8	NO	float unsigned	NULL	NULL	12	NULL	NULL	NULL	float unsigned			select,insert,update,references		Default	Default
-def	test1	tb2	f88	30	8.8	NO	float unsigned	NULL	NULL	12	NULL	NULL	NULL	float unsigned			select,insert,update,references		Default	Default
-def	test1	tb2	f89	31	0000000008.8	NO	float unsigned zerofill	NULL	NULL	12	NULL	NULL	NULL	float unsigned zerofill			select,insert,update,references		Default	Default
-def	test1	tb2	f90	32	0000000008.8	NO	float unsigned zerofill	NULL	NULL	12	NULL	NULL	NULL	float unsigned zerofill			select,insert,update,references		Default	Default
-def	test1	tb2	f91	33	0000000008.8	NO	float unsigned zerofill	NULL	NULL	12	NULL	NULL	NULL	float unsigned zerofill			select,insert,update,references		Default	Default
-def	test1	tb2	f92	34	0000000008.8	NO	float unsigned zerofill	NULL	NULL	12	NULL	NULL	NULL	float unsigned zerofill			select,insert,update,references		Default	Default
+def	test1	tb2	f87	29	8.8	NO	float	NULL	NULL	12	NULL	NULL	NULL	float unsigned			select,insert,update,references		Default	Default
+def	test1	tb2	f88	30	8.8	NO	float	NULL	NULL	12	NULL	NULL	NULL	float unsigned			select,insert,update,references		Default	Default
+def	test1	tb2	f89	31	0000000008.8	NO	float	NULL	NULL	12	NULL	NULL	NULL	float unsigned zerofill			select,insert,update,references		Default	Default
+def	test1	tb2	f90	32	0000000008.8	NO	float	NULL	NULL	12	NULL	NULL	NULL	float unsigned zerofill			select,insert,update,references		Default	Default
+def	test1	tb2	f91	33	0000000008.8	NO	float	NULL	NULL	12	NULL	NULL	NULL	float unsigned zerofill			select,insert,update,references		Default	Default
+def	test1	tb2	f92	34	0000000008.8	NO	float	NULL	NULL	12	NULL	NULL	NULL	float unsigned zerofill			select,insert,update,references		Default	Default
 def	test1	tb2	f93	35	8.8	NO	float	NULL	NULL	12	NULL	NULL	NULL	float			select,insert,update,references		Default	Default
 def	test1	tb2	f94	36	8.8	NO	double	NULL	NULL	22	NULL	NULL	NULL	double			select,insert,update,references		Default	Default
-def	test1	tb2	f95	37	8.8	NO	float unsigned	NULL	NULL	12	NULL	NULL	NULL	float unsigned			select,insert,update,references		Default	Default
-def	test1	tb2	f96	38	8.8	NO	double unsigned	NULL	NULL	22	NULL	NULL	NULL	double unsigned			select,insert,update,references		Default	Default
-def	test1	tb2	f97	39	0000000008.8	NO	float unsigned zerofill	NULL	NULL	12	NULL	NULL	NULL	float unsigned zerofill			select,insert,update,references		Default	Default
-def	test1	tb2	f98	40	00000000000000000008.8	NO	double unsigned zerofill	NULL	NULL	22	NULL	NULL	NULL	double unsigned zerofill			select,insert,update,references		Default	Default
-def	test1	tb2	f99	41	0000000008.8	NO	float unsigned zerofill	NULL	NULL	12	NULL	NULL	NULL	float unsigned zerofill			select,insert,update,references		Default	Default
+def	test1	tb2	f95	37	8.8	NO	float	NULL	NULL	12	NULL	NULL	NULL	float unsigned			select,insert,update,references		Default	Default
+def	test1	tb2	f96	38	8.8	NO	double	NULL	NULL	22	NULL	NULL	NULL	double unsigned			select,insert,update,references		Default	Default
+def	test1	tb2	f97	39	0000000008.8	NO	float	NULL	NULL	12	NULL	NULL	NULL	float unsigned zerofill			select,insert,update,references		Default	Default
+def	test1	tb2	f98	40	00000000000000000008.8	NO	double	NULL	NULL	22	NULL	NULL	NULL	double unsigned zerofill			select,insert,update,references		Default	Default
+def	test1	tb2	f99	41	0000000008.8	NO	float	NULL	NULL	12	NULL	NULL	NULL	float unsigned zerofill			select,insert,update,references		Default	Default
 def	test4	t6	f1	1	NULL	YES	char	20	20	NULL	NULL	latin1	latin1_swedish_ci	char(20)			select,insert,update,references		Default	Default
 def	test4	t6	f2	2	NULL	YES	char	25	25	NULL	NULL	latin1	latin1_swedish_ci	char(25)			select,insert,update,references		Default	Default
 def	test4	t6	f3	3	NULL	YES	date	NULL	NULL	NULL	NULL	NULL	NULL	date			select,insert,update,references		Default	Default
@@ -762,11 +762,7 @@ NULL	date	NULL	NULL
 NULL	datetime	NULL	NULL
 NULL	decimal	NULL	NULL
 NULL	double	NULL	NULL
-NULL	double unsigned	NULL	NULL
-NULL	double unsigned zerofill	NULL	NULL
 NULL	float	NULL	NULL
-NULL	float unsigned	NULL	NULL
-NULL	float unsigned zerofill	NULL	NULL
 NULL	int	NULL	NULL
 NULL	mediumint	NULL	NULL
 NULL	smallint	NULL	NULL
@@ -910,33 +906,33 @@ NULL	test	tb2	f70	decimal	NULL	NULL	NULL
 NULL	test	tb2	f71	decimal	NULL	NULL	NULL	NULL	decimal(10,0) unsigned zerofill
 NULL	test	tb2	f72	decimal	NULL	NULL	NULL	NULL	decimal(63,30) unsigned zerofill
 NULL	test	tb2	f73	double	NULL	NULL	NULL	NULL	double
-NULL	test	tb2	f74	double unsigned	NULL	NULL	NULL	NULL	double unsigned
-NULL	test	tb2	f75	double unsigned zerofill	NULL	NULL	NULL	NULL	double unsigned zerofill
-NULL	test	tb2	f76	double unsigned zerofill	NULL	NULL	NULL	NULL	double unsigned zerofill
+NULL	test	tb2	f74	double	NULL	NULL	NULL	NULL	double unsigned
+NULL	test	tb2	f75	double	NULL	NULL	NULL	NULL	double unsigned zerofill
+NULL	test	tb2	f76	double	NULL	NULL	NULL	NULL	double unsigned zerofill
 NULL	test	tb2	f77	double	NULL	NULL	NULL	NULL	double
-NULL	test	tb2	f78	double unsigned	NULL	NULL	NULL	NULL	double unsigned
-NULL	test	tb2	f79	double unsigned zerofill	NULL	NULL	NULL	NULL	double unsigned zerofill
-NULL	test	tb2	f80	double unsigned zerofill	NULL	NULL	NULL	NULL	double unsigned zerofill
+NULL	test	tb2	f78	double	NULL	NULL	NULL	NULL	double unsigned
+NULL	test	tb2	f79	double	NULL	NULL	NULL	NULL	double unsigned zerofill
+NULL	test	tb2	f80	double	NULL	NULL	NULL	NULL	double unsigned zerofill
 NULL	test	tb2	f81	float	NULL	NULL	NULL	NULL	float
-NULL	test	tb2	f82	float unsigned	NULL	NULL	NULL	NULL	float unsigned
-NULL	test	tb2	f83	float unsigned zerofill	NULL	NULL	NULL	NULL	float unsigned zerofill
-NULL	test	tb2	f84	float unsigned zerofill	NULL	NULL	NULL	NULL	float unsigned zerofill
+NULL	test	tb2	f82	float	NULL	NULL	NULL	NULL	float unsigned
+NULL	test	tb2	f83	float	NULL	NULL	NULL	NULL	float unsigned zerofill
+NULL	test	tb2	f84	float	NULL	NULL	NULL	NULL	float unsigned zerofill
 NULL	test	tb2	f85	float	NULL	NULL	NULL	NULL	float
 NULL	test	tb2	f86	float	NULL	NULL	NULL	NULL	float
-NULL	test	tb2	f87	float unsigned	NULL	NULL	NULL	NULL	float unsigned
-NULL	test	tb2	f88	float unsigned	NULL	NULL	NULL	NULL	float unsigned
-NULL	test	tb2	f89	float unsigned zerofill	NULL	NULL	NULL	NULL	float unsigned zerofill
-NULL	test	tb2	f90	float unsigned zerofill	NULL	NULL	NULL	NULL	float unsigned zerofill
-NULL	test	tb2	f91	float unsigned zerofill	NULL	NULL	NULL	NULL	float unsigned zerofill
-NULL	test	tb2	f92	float unsigned zerofill	NULL	NULL	NULL	NULL	float unsigned zerofill
+NULL	test	tb2	f87	float	NULL	NULL	NULL	NULL	float unsigned
+NULL	test	tb2	f88	float	NULL	NULL	NULL	NULL	float unsigned
+NULL	test	tb2	f89	float	NULL	NULL	NULL	NULL	float unsigned zerofill
+NULL	test	tb2	f90	float	NULL	NULL	NULL	NULL	float unsigned zerofill
+NULL	test	tb2	f91	float	NULL	NULL	NULL	NULL	float unsigned zerofill
+NULL	test	tb2	f92	float	NULL	NULL	NULL	NULL	float unsigned zerofill
 NULL	test	tb2	f93	float	NULL	NULL	NULL	NULL	float
 NULL	test	tb2	f94	double	NULL	NULL	NULL	NULL	double
-NULL	test	tb2	f95	float unsigned	NULL	NULL	NULL	NULL	float unsigned
-NULL	test	tb2	f96	double unsigned	NULL	NULL	NULL	NULL	double unsigned
-NULL	test	tb2	f97	float unsigned zerofill	NULL	NULL	NULL	NULL	float unsigned zerofill
-NULL	test	tb2	f98	double unsigned zerofill	NULL	NULL	NULL	NULL	double unsigned zerofill
-NULL	test	tb2	f99	float unsigned zerofill	NULL	NULL	NULL	NULL	float unsigned zerofill
-NULL	test	tb2	f100	double unsigned zerofill	NULL	NULL	NULL	NULL	double unsigned zerofill
+NULL	test	tb2	f95	float	NULL	NULL	NULL	NULL	float unsigned
+NULL	test	tb2	f96	double	NULL	NULL	NULL	NULL	double unsigned
+NULL	test	tb2	f97	float	NULL	NULL	NULL	NULL	float unsigned zerofill
+NULL	test	tb2	f98	double	NULL	NULL	NULL	NULL	double unsigned zerofill
+NULL	test	tb2	f99	float	NULL	NULL	NULL	NULL	float unsigned zerofill
+NULL	test	tb2	f100	double	NULL	NULL	NULL	NULL	double unsigned zerofill
 NULL	test	tb2	f101	date	NULL	NULL	NULL	NULL	date
 NULL	test	tb2	f102	time	NULL	NULL	NULL	NULL	time
 NULL	test	tb2	f103	datetime	NULL	NULL	NULL	NULL	datetime
@@ -1019,33 +1015,33 @@ NULL	test	tb4	f187	decimal	NULL	NULL	NUL
 NULL	test	tb4	f188	decimal	NULL	NULL	NULL	NULL	decimal(10,0) unsigned zerofill
 NULL	test	tb4	f189	decimal	NULL	NULL	NULL	NULL	decimal(63,30) unsigned zerofill
 NULL	test	tb4	f190	double	NULL	NULL	NULL	NULL	double
-NULL	test	tb4	f191	double unsigned	NULL	NULL	NULL	NULL	double unsigned
-NULL	test	tb4	f192	double unsigned zerofill	NULL	NULL	NULL	NULL	double unsigned zerofill
-NULL	test	tb4	f193	double unsigned zerofill	NULL	NULL	NULL	NULL	double unsigned zerofill
+NULL	test	tb4	f191	double	NULL	NULL	NULL	NULL	double unsigned
+NULL	test	tb4	f192	double	NULL	NULL	NULL	NULL	double unsigned zerofill
+NULL	test	tb4	f193	double	NULL	NULL	NULL	NULL	double unsigned zerofill
 NULL	test	tb4	f194	double	NULL	NULL	NULL	NULL	double
-NULL	test	tb4	f195	double unsigned	NULL	NULL	NULL	NULL	double unsigned
-NULL	test	tb4	f196	double unsigned zerofill	NULL	NULL	NULL	NULL	double unsigned zerofill
-NULL	test	tb4	f197	double unsigned zerofill	NULL	NULL	NULL	NULL	double unsigned zerofill
+NULL	test	tb4	f195	double	NULL	NULL	NULL	NULL	double unsigned
+NULL	test	tb4	f196	double	NULL	NULL	NULL	NULL	double unsigned zerofill
+NULL	test	tb4	f197	double	NULL	NULL	NULL	NULL	double unsigned zerofill
 NULL	test	tb4	f198	float	NULL	NULL	NULL	NULL	float
-NULL	test	tb4	f199	float unsigned	NULL	NULL	NULL	NULL	float unsigned
-NULL	test	tb4	f200	float unsigned zerofill	NULL	NULL	NULL	NULL	float unsigned zerofill
-NULL	test	tb4	f201	float unsigned zerofill	NULL	NULL	NULL	NULL	float unsigned zerofill
+NULL	test	tb4	f199	float	NULL	NULL	NULL	NULL	float unsigned
+NULL	test	tb4	f200	float	NULL	NULL	NULL	NULL	float unsigned zerofill
+NULL	test	tb4	f201	float	NULL	NULL	NULL	NULL	float unsigned zerofill
 NULL	test	tb4	f202	float	NULL	NULL	NULL	NULL	float
 NULL	test	tb4	f203	float	NULL	NULL	NULL	NULL	float
-NULL	test	tb4	f204	float unsigned	NULL	NULL	NULL	NULL	float unsigned
-NULL	test	tb4	f205	float unsigned	NULL	NULL	NULL	NULL	float unsigned
-NULL	test	tb4	f206	float unsigned zerofill	NULL	NULL	NULL	NULL	float unsigned zerofill
-NULL	test	tb4	f207	float unsigned zerofill	NULL	NULL	NULL	NULL	float unsigned zerofill
-NULL	test	tb4	f208	float unsigned zerofill	NULL	NULL	NULL	NULL	float unsigned zerofill
-NULL	test	tb4	f209	float unsigned zerofill	NULL	NULL	NULL	NULL	float unsigned zerofill
+NULL	test	tb4	f204	float	NULL	NULL	NULL	NULL	float unsigned
+NULL	test	tb4	f205	float	NULL	NULL	NULL	NULL	float unsigned
+NULL	test	tb4	f206	float	NULL	NULL	NULL	NULL	float unsigned zerofill
+NULL	test	tb4	f207	float	NULL	NULL	NULL	NULL	float unsigned zerofill
+NULL	test	tb4	f208	float	NULL	NULL	NULL	NULL	float unsigned zerofill
+NULL	test	tb4	f209	float	NULL	NULL	NULL	NULL	float unsigned zerofill
 NULL	test	tb4	f210	float	NULL	NULL	NULL	NULL	float
 NULL	test	tb4	f211	double	NULL	NULL	NULL	NULL	double
-NULL	test	tb4	f212	float unsigned	NULL	NULL	NULL	NULL	float unsigned
-NULL	test	tb4	f213	double unsigned	NULL	NULL	NULL	NULL	double unsigned
-NULL	test	tb4	f214	float unsigned zerofill	NULL	NULL	NULL	NULL	float unsigned zerofill
-NULL	test	tb4	f215	double unsigned zerofill	NULL	NULL	NULL	NULL	double unsigned zerofill
-NULL	test	tb4	f216	float unsigned zerofill	NULL	NULL	NULL	NULL	float unsigned zerofill
-NULL	test	tb4	f217	double unsigned zerofill	NULL	NULL	NULL	NULL	double unsigned zerofill
+NULL	test	tb4	f212	float	NULL	NULL	NULL	NULL	float unsigned
+NULL	test	tb4	f213	double	NULL	NULL	NULL	NULL	double unsigned
+NULL	test	tb4	f214	float	NULL	NULL	NULL	NULL	float unsigned zerofill
+NULL	test	tb4	f215	double	NULL	NULL	NULL	NULL	double unsigned zerofill
+NULL	test	tb4	f216	float	NULL	NULL	NULL	NULL	float unsigned zerofill
+NULL	test	tb4	f217	double	NULL	NULL	NULL	NULL	double unsigned zerofill
 NULL	test	tb4	f218	date	NULL	NULL	NULL	NULL	date
 NULL	test	tb4	f219	time	NULL	NULL	NULL	NULL	time
 NULL	test	tb4	f220	datetime	NULL	NULL	NULL	NULL	datetime
@@ -1077,33 +1073,33 @@ NULL	test1	tb2	f70	decimal	NULL	NULL	NUL
 NULL	test1	tb2	f71	decimal	NULL	NULL	NULL	NULL	decimal(10,0) unsigned zerofill
 NULL	test1	tb2	f72	decimal	NULL	NULL	NULL	NULL	decimal(63,30) unsigned zerofill
 NULL	test1	tb2	f73	double	NULL	NULL	NULL	NULL	double
-NULL	test1	tb2	f74	double unsigned	NULL	NULL	NULL	NULL	double unsigned
-NULL	test1	tb2	f75	double unsigned zerofill	NULL	NULL	NULL	NULL	double unsigned zerofill
-NULL	test1	tb2	f76	double unsigned zerofill	NULL	NULL	NULL	NULL	double unsigned zerofill
+NULL	test1	tb2	f74	double	NULL	NULL	NULL	NULL	double unsigned
+NULL	test1	tb2	f75	double	NULL	NULL	NULL	NULL	double unsigned zerofill
+NULL	test1	tb2	f76	double	NULL	NULL	NULL	NULL	double unsigned zerofill
 NULL	test1	tb2	f77	double	NULL	NULL	NULL	NULL	double
-NULL	test1	tb2	f78	double unsigned	NULL	NULL	NULL	NULL	double unsigned
-NULL	test1	tb2	f79	double unsigned zerofill	NULL	NULL	NULL	NULL	double unsigned zerofill
-NULL	test1	tb2	f80	double unsigned zerofill	NULL	NULL	NULL	NULL	double unsigned zerofill
+NULL	test1	tb2	f78	double	NULL	NULL	NULL	NULL	double unsigned
+NULL	test1	tb2	f79	double	NULL	NULL	NULL	NULL	double unsigned zerofill
+NULL	test1	tb2	f80	double	NULL	NULL	NULL	NULL	double unsigned zerofill
 NULL	test1	tb2	f81	float	NULL	NULL	NULL	NULL	float
-NULL	test1	tb2	f82	float unsigned	NULL	NULL	NULL	NULL	float unsigned
-NULL	test1	tb2	f83	float unsigned zerofill	NULL	NULL	NULL	NULL	float unsigned zerofill
-NULL	test1	tb2	f84	float unsigned zerofill	NULL	NULL	NULL	NULL	float unsigned zerofill
+NULL	test1	tb2	f82	float	NULL	NULL	NULL	NULL	float unsigned
+NULL	test1	tb2	f83	float	NULL	NULL	NULL	NULL	float unsigned zerofill
+NULL	test1	tb2	f84	float	NULL	NULL	NULL	NULL	float unsigned zerofill
 NULL	test1	tb2	f85	float	NULL	NULL	NULL	NULL	float
 NULL	test1	tb2	f86	float	NULL	NULL	NULL	NULL	float
-NULL	test1	tb2	f87	float unsigned	NULL	NULL	NULL	NULL	float unsigned
-NULL	test1	tb2	f88	float unsigned	NULL	NULL	NULL	NULL	float unsigned
-NULL	test1	tb2	f89	float unsigned zerofill	NULL	NULL	NULL	NULL	float unsigned zerofill
-NULL	test1	tb2	f90	float unsigned zerofill	NULL	NULL	NULL	NULL	float unsigned zerofill
-NULL	test1	tb2	f91	float unsigned zerofill	NULL	NULL	NULL	NULL	float unsigned zerofill
-NULL	test1	tb2	f92	float unsigned zerofill	NULL	NULL	NULL	NULL	float unsigned zerofill
+NULL	test1	tb2	f87	float	NULL	NULL	NULL	NULL	float unsigned
+NULL	test1	tb2	f88	float	NULL	NULL	NULL	NULL	float unsigned
+NULL	test1	tb2	f89	float	NULL	NULL	NULL	NULL	float unsigned zerofill
+NULL	test1	tb2	f90	float	NULL	NULL	NULL	NULL	float unsigned zerofill
+NULL	test1	tb2	f91	float	NULL	NULL	NULL	NULL	float unsigned zerofill
+NULL	test1	tb2	f92	float	NULL	NULL	NULL	NULL	float unsigned zerofill
 NULL	test1	tb2	f93	float	NULL	NULL	NULL	NULL	float
 NULL	test1	tb2	f94	double	NULL	NULL	NULL	NULL	double
-NULL	test1	tb2	f95	float unsigned	NULL	NULL	NULL	NULL	float unsigned
-NULL	test1	tb2	f96	double unsigned	NULL	NULL	NULL	NULL	double unsigned
-NULL	test1	tb2	f97	float unsigned zerofill	NULL	NULL	NULL	NULL	float unsigned zerofill
-NULL	test1	tb2	f98	double unsigned zerofill	NULL	NULL	NULL	NULL	double unsigned zerofill
-NULL	test1	tb2	f99	float unsigned zerofill	NULL	NULL	NULL	NULL	float unsigned zerofill
-NULL	test1	tb2	f100	double unsigned zerofill	NULL	NULL	NULL	NULL	double unsigned zerofill
+NULL	test1	tb2	f95	float	NULL	NULL	NULL	NULL	float unsigned
+NULL	test1	tb2	f96	double	NULL	NULL	NULL	NULL	double unsigned
+NULL	test1	tb2	f97	float	NULL	NULL	NULL	NULL	float unsigned zerofill
+NULL	test1	tb2	f98	double	NULL	NULL	NULL	NULL	double unsigned zerofill
+NULL	test1	tb2	f99	float	NULL	NULL	NULL	NULL	float unsigned zerofill
+NULL	test1	tb2	f100	double	NULL	NULL	NULL	NULL	double unsigned zerofill
 NULL	test1	tb2	f101	date	NULL	NULL	NULL	NULL	date
 NULL	test1	tb2	f102	time	NULL	NULL	NULL	NULL	time
 NULL	test1	tb2	f103	datetime	NULL	NULL	NULL	NULL	datetime

=== modified file 'mysql-test/suite/funcs_1/r/is_columns_memory.result'
--- a/mysql-test/suite/funcs_1/r/is_columns_memory.result	2009-02-16 14:47:53 +0000
+++ b/mysql-test/suite/funcs_1/r/is_columns_memory.result	2009-03-05 12:22:26 +0000
@@ -466,7 +466,7 @@ def	test	tb1	f55	47	0000000099	NO	decima
 def	test	tb1	f56	48	0000000099	NO	decimal	NULL	NULL	10	0	NULL	NULL	decimal(10,0) unsigned zerofill			select,insert,update,references		Default	Default
 def	test	tb1	f57	49	99	NO	decimal	NULL	NULL	10	0	NULL	NULL	decimal(10,0)			select,insert,update,references		Default	Default
 def	test	tb1	f58	50	99	NO	decimal	NULL	NULL	64	0	NULL	NULL	decimal(64,0)			select,insert,update,references		Default	Default
-def	test	tb2	f100	42	00000000000000000008.8	NO	double unsigned zerofill	NULL	NULL	22	NULL	NULL	NULL	double unsigned zerofill			select,insert,update,references		Default	Default
+def	test	tb2	f100	42	00000000000000000008.8	NO	double	NULL	NULL	22	NULL	NULL	NULL	double unsigned zerofill			select,insert,update,references		Default	Default
 def	test	tb2	f101	43	2000-01-01	NO	date	NULL	NULL	NULL	NULL	NULL	NULL	date			select,insert,update,references		Default	Default
 def	test	tb2	f102	44	00:00:20	NO	time	NULL	NULL	NULL	NULL	NULL	NULL	time			select,insert,update,references		Default	Default
 def	test	tb2	f103	45	0002-02-02 00:00:00	NO	datetime	NULL	NULL	NULL	NULL	NULL	NULL	datetime			select,insert,update,references		Default	Default
@@ -491,32 +491,32 @@ def	test	tb2	f70	12	NULL	YES	decimal	NUL
 def	test	tb2	f71	13	NULL	YES	decimal	NULL	NULL	10	0	NULL	NULL	decimal(10,0) unsigned zerofill			select,insert,update,references		Default	Default
 def	test	tb2	f72	14	NULL	YES	decimal	NULL	NULL	63	30	NULL	NULL	decimal(63,30) unsigned zerofill			select,insert,update,references		Default	Default
 def	test	tb2	f73	15	NULL	YES	double	NULL	NULL	22	NULL	NULL	NULL	double			select,insert,update,references		Default	Default
-def	test	tb2	f74	16	NULL	YES	double unsigned	NULL	NULL	22	NULL	NULL	NULL	double unsigned			select,insert,update,references		Default	Default
-def	test	tb2	f75	17	NULL	YES	double unsigned zerofill	NULL	NULL	22	NULL	NULL	NULL	double unsigned zerofill			select,insert,update,references		Default	Default
-def	test	tb2	f76	18	NULL	YES	double unsigned zerofill	NULL	NULL	22	NULL	NULL	NULL	double unsigned zerofill			select,insert,update,references		Default	Default
+def	test	tb2	f74	16	NULL	YES	double	NULL	NULL	22	NULL	NULL	NULL	double unsigned			select,insert,update,references		Default	Default
+def	test	tb2	f75	17	NULL	YES	double	NULL	NULL	22	NULL	NULL	NULL	double unsigned zerofill			select,insert,update,references		Default	Default
+def	test	tb2	f76	18	NULL	YES	double	NULL	NULL	22	NULL	NULL	NULL	double unsigned zerofill			select,insert,update,references		Default	Default
 def	test	tb2	f77	19	7.7	YES	double	NULL	NULL	22	NULL	NULL	NULL	double			select,insert,update,references		Default	Default
-def	test	tb2	f78	20	7.7	YES	double unsigned	NULL	NULL	22	NULL	NULL	NULL	double unsigned			select,insert,update,references		Default	Default
-def	test	tb2	f79	21	00000000000000000007.7	YES	double unsigned zerofill	NULL	NULL	22	NULL	NULL	NULL	double unsigned zerofill			select,insert,update,references		Default	Default
-def	test	tb2	f80	22	00000000000000000008.8	YES	double unsigned zerofill	NULL	NULL	22	NULL	NULL	NULL	double unsigned zerofill			select,insert,update,references		Default	Default
+def	test	tb2	f78	20	7.7	YES	double	NULL	NULL	22	NULL	NULL	NULL	double unsigned			select,insert,update,references		Default	Default
+def	test	tb2	f79	21	00000000000000000007.7	YES	double	NULL	NULL	22	NULL	NULL	NULL	double unsigned zerofill			select,insert,update,references		Default	Default
+def	test	tb2	f80	22	00000000000000000008.8	YES	double	NULL	NULL	22	NULL	NULL	NULL	double unsigned zerofill			select,insert,update,references		Default	Default
 def	test	tb2	f81	23	8.8	NO	float	NULL	NULL	12	NULL	NULL	NULL	float			select,insert,update,references		Default	Default
-def	test	tb2	f82	24	8.8	NO	float unsigned	NULL	NULL	12	NULL	NULL	NULL	float unsigned			select,insert,update,references		Default	Default
-def	test	tb2	f83	25	0000000008.8	NO	float unsigned zerofill	NULL	NULL	12	NULL	NULL	NULL	float unsigned zerofill			select,insert,update,references		Default	Default
-def	test	tb2	f84	26	0000000008.8	NO	float unsigned zerofill	NULL	NULL	12	NULL	NULL	NULL	float unsigned zerofill			select,insert,update,references		Default	Default
+def	test	tb2	f82	24	8.8	NO	float	NULL	NULL	12	NULL	NULL	NULL	float unsigned			select,insert,update,references		Default	Default
+def	test	tb2	f83	25	0000000008.8	NO	float	NULL	NULL	12	NULL	NULL	NULL	float unsigned zerofill			select,insert,update,references		Default	Default
+def	test	tb2	f84	26	0000000008.8	NO	float	NULL	NULL	12	NULL	NULL	NULL	float unsigned zerofill			select,insert,update,references		Default	Default
 def	test	tb2	f85	27	8.8	NO	float	NULL	NULL	12	NULL	NULL	NULL	float			select,insert,update,references		Default	Default
 def	test	tb2	f86	28	8.8	NO	float	NULL	NULL	12	NULL	NULL	NULL	float			select,insert,update,references		Default	Default
-def	test	tb2	f87	29	8.8	NO	float unsigned	NULL	NULL	12	NULL	NULL	NULL	float unsigned			select,insert,update,references		Default	Default
-def	test	tb2	f88	30	8.8	NO	float unsigned	NULL	NULL	12	NULL	NULL	NULL	float unsigned			select,insert,update,references		Default	Default
-def	test	tb2	f89	31	0000000008.8	NO	float unsigned zerofill	NULL	NULL	12	NULL	NULL	NULL	float unsigned zerofill			select,insert,update,references		Default	Default
-def	test	tb2	f90	32	0000000008.8	NO	float unsigned zerofill	NULL	NULL	12	NULL	NULL	NULL	float unsigned zerofill			select,insert,update,references		Default	Default
-def	test	tb2	f91	33	0000000008.8	NO	float unsigned zerofill	NULL	NULL	12	NULL	NULL	NULL	float unsigned zerofill			select,insert,update,references		Default	Default
-def	test	tb2	f92	34	0000000008.8	NO	float unsigned zerofill	NULL	NULL	12	NULL	NULL	NULL	float unsigned zerofill			select,insert,update,references		Default	Default
+def	test	tb2	f87	29	8.8	NO	float	NULL	NULL	12	NULL	NULL	NULL	float unsigned			select,insert,update,references		Default	Default
+def	test	tb2	f88	30	8.8	NO	float	NULL	NULL	12	NULL	NULL	NULL	float unsigned			select,insert,update,references		Default	Default
+def	test	tb2	f89	31	0000000008.8	NO	float	NULL	NULL	12	NULL	NULL	NULL	float unsigned zerofill			select,insert,update,references		Default	Default
+def	test	tb2	f90	32	0000000008.8	NO	float	NULL	NULL	12	NULL	NULL	NULL	float unsigned zerofill			select,insert,update,references		Default	Default
+def	test	tb2	f91	33	0000000008.8	NO	float	NULL	NULL	12	NULL	NULL	NULL	float unsigned zerofill			select,insert,update,references		Default	Default
+def	test	tb2	f92	34	0000000008.8	NO	float	NULL	NULL	12	NULL	NULL	NULL	float unsigned zerofill			select,insert,update,references		Default	Default
 def	test	tb2	f93	35	8.8	NO	float	NULL	NULL	12	NULL	NULL	NULL	float			select,insert,update,references		Default	Default
 def	test	tb2	f94	36	8.8	NO	double	NULL	NULL	22	NULL	NULL	NULL	double			select,insert,update,references		Default	Default
-def	test	tb2	f95	37	8.8	NO	float unsigned	NULL	NULL	12	NULL	NULL	NULL	float unsigned			select,insert,update,references		Default	Default
-def	test	tb2	f96	38	8.8	NO	double unsigned	NULL	NULL	22	NULL	NULL	NULL	double unsigned			select,insert,update,references		Default	Default
-def	test	tb2	f97	39	0000000008.8	NO	float unsigned zerofill	NULL	NULL	12	NULL	NULL	NULL	float unsigned zerofill			select,insert,update,references		Default	Default
-def	test	tb2	f98	40	00000000000000000008.8	NO	double unsigned zerofill	NULL	NULL	22	NULL	NULL	NULL	double unsigned zerofill			select,insert,update,references		Default	Default
-def	test	tb2	f99	41	0000000008.8	NO	float unsigned zerofill	NULL	NULL	12	NULL	NULL	NULL	float unsigned zerofill			select,insert,update,references		Default	Default
+def	test	tb2	f95	37	8.8	NO	float	NULL	NULL	12	NULL	NULL	NULL	float unsigned			select,insert,update,references		Default	Default
+def	test	tb2	f96	38	8.8	NO	double	NULL	NULL	22	NULL	NULL	NULL	double unsigned			select,insert,update,references		Default	Default
+def	test	tb2	f97	39	0000000008.8	NO	float	NULL	NULL	12	NULL	NULL	NULL	float unsigned zerofill			select,insert,update,references		Default	Default
+def	test	tb2	f98	40	00000000000000000008.8	NO	double	NULL	NULL	22	NULL	NULL	NULL	double unsigned zerofill			select,insert,update,references		Default	Default
+def	test	tb2	f99	41	0000000008.8	NO	float	NULL	NULL	12	NULL	NULL	NULL	float unsigned zerofill			select,insert,update,references		Default	Default
 def	test	tb3	f118	1	a	NO	char	1	1	NULL	NULL	latin1	latin1_swedish_ci	char(1)			select,insert,update,references		Default	Default
 def	test	tb3	f119	2		NO	char	1	1	NULL	NULL	latin1	latin1_bin	char(1)			select,insert,update,references		Default	Default
 def	test	tb3	f120	3		NO	char	1	1	NULL	NULL	latin1	latin1_swedish_ci	char(1)			select,insert,update,references		Default	Default
@@ -584,33 +584,33 @@ def	test	tb4	f187	12	0000000000000000000
 def	test	tb4	f188	13	0000000009	NO	decimal	NULL	NULL	10	0	NULL	NULL	decimal(10,0) unsigned zerofill			select,insert,update,references		Default	Default
 def	test	tb4	f189	14	000000000000000000000000000000009.000000000000000000000000000000	NO	decimal	NULL	NULL	63	30	NULL	NULL	decimal(63,30) unsigned zerofill			select,insert,update,references		Default	Default
 def	test	tb4	f190	15	88.8	NO	double	NULL	NULL	22	NULL	NULL	NULL	double			select,insert,update,references		Default	Default
-def	test	tb4	f191	16	88.8	NO	double unsigned	NULL	NULL	22	NULL	NULL	NULL	double unsigned			select,insert,update,references		Default	Default
-def	test	tb4	f192	17	00000000000000000088.8	NO	double unsigned zerofill	NULL	NULL	22	NULL	NULL	NULL	double unsigned zerofill			select,insert,update,references		Default	Default
-def	test	tb4	f193	18	00000000000000000088.8	NO	double unsigned zerofill	NULL	NULL	22	NULL	NULL	NULL	double unsigned zerofill			select,insert,update,references		Default	Default
+def	test	tb4	f191	16	88.8	NO	double	NULL	NULL	22	NULL	NULL	NULL	double unsigned			select,insert,update,references		Default	Default
+def	test	tb4	f192	17	00000000000000000088.8	NO	double	NULL	NULL	22	NULL	NULL	NULL	double unsigned zerofill			select,insert,update,references		Default	Default
+def	test	tb4	f193	18	00000000000000000088.8	NO	double	NULL	NULL	22	NULL	NULL	NULL	double unsigned zerofill			select,insert,update,references		Default	Default
 def	test	tb4	f194	19	55.5	NO	double	NULL	NULL	22	NULL	NULL	NULL	double			select,insert,update,references		Default	Default
-def	test	tb4	f195	20	55.5	NO	double unsigned	NULL	NULL	22	NULL	NULL	NULL	double unsigned			select,insert,update,references		Default	Default
-def	test	tb4	f196	21	00000000000000000055.5	NO	double unsigned zerofill	NULL	NULL	22	NULL	NULL	NULL	double unsigned zerofill			select,insert,update,references		Default	Default
-def	test	tb4	f197	22	00000000000000000055.5	NO	double unsigned zerofill	NULL	NULL	22	NULL	NULL	NULL	double unsigned zerofill			select,insert,update,references		Default	Default
+def	test	tb4	f195	20	55.5	NO	double	NULL	NULL	22	NULL	NULL	NULL	double unsigned			select,insert,update,references		Default	Default
+def	test	tb4	f196	21	00000000000000000055.5	NO	double	NULL	NULL	22	NULL	NULL	NULL	double unsigned zerofill			select,insert,update,references		Default	Default
+def	test	tb4	f197	22	00000000000000000055.5	NO	double	NULL	NULL	22	NULL	NULL	NULL	double unsigned zerofill			select,insert,update,references		Default	Default
 def	test	tb4	f198	23	NULL	YES	float	NULL	NULL	12	NULL	NULL	NULL	float			select,insert,update,references		Default	Default
-def	test	tb4	f199	24	NULL	YES	float unsigned	NULL	NULL	12	NULL	NULL	NULL	float unsigned			select,insert,update,references		Default	Default
-def	test	tb4	f200	25	NULL	YES	float unsigned zerofill	NULL	NULL	12	NULL	NULL	NULL	float unsigned zerofill			select,insert,update,references		Default	Default
-def	test	tb4	f201	26	NULL	YES	float unsigned zerofill	NULL	NULL	12	NULL	NULL	NULL	float unsigned zerofill			select,insert,update,references		Default	Default
+def	test	tb4	f199	24	NULL	YES	float	NULL	NULL	12	NULL	NULL	NULL	float unsigned			select,insert,update,references		Default	Default
+def	test	tb4	f200	25	NULL	YES	float	NULL	NULL	12	NULL	NULL	NULL	float unsigned zerofill			select,insert,update,references		Default	Default
+def	test	tb4	f201	26	NULL	YES	float	NULL	NULL	12	NULL	NULL	NULL	float unsigned zerofill			select,insert,update,references		Default	Default
 def	test	tb4	f202	27	NULL	YES	float	NULL	NULL	12	NULL	NULL	NULL	float			select,insert,update,references		Default	Default
 def	test	tb4	f203	28	NULL	YES	float	NULL	NULL	12	NULL	NULL	NULL	float			select,insert,update,references		Default	Default
-def	test	tb4	f204	29	NULL	YES	float unsigned	NULL	NULL	12	NULL	NULL	NULL	float unsigned			select,insert,update,references		Default	Default
-def	test	tb4	f205	30	NULL	YES	float unsigned	NULL	NULL	12	NULL	NULL	NULL	float unsigned			select,insert,update,references		Default	Default
-def	test	tb4	f206	31	NULL	YES	float unsigned zerofill	NULL	NULL	12	NULL	NULL	NULL	float unsigned zerofill			select,insert,update,references		Default	Default
-def	test	tb4	f207	32	NULL	YES	float unsigned zerofill	NULL	NULL	12	NULL	NULL	NULL	float unsigned zerofill			select,insert,update,references		Default	Default
-def	test	tb4	f208	33	NULL	YES	float unsigned zerofill	NULL	NULL	12	NULL	NULL	NULL	float unsigned zerofill			select,insert,update,references		Default	Default
-def	test	tb4	f209	34	NULL	YES	float unsigned zerofill	NULL	NULL	12	NULL	NULL	NULL	float unsigned zerofill			select,insert,update,references		Default	Default
+def	test	tb4	f204	29	NULL	YES	float	NULL	NULL	12	NULL	NULL	NULL	float unsigned			select,insert,update,references		Default	Default
+def	test	tb4	f205	30	NULL	YES	float	NULL	NULL	12	NULL	NULL	NULL	float unsigned			select,insert,update,references		Default	Default
+def	test	tb4	f206	31	NULL	YES	float	NULL	NULL	12	NULL	NULL	NULL	float unsigned zerofill			select,insert,update,references		Default	Default
+def	test	tb4	f207	32	NULL	YES	float	NULL	NULL	12	NULL	NULL	NULL	float unsigned zerofill			select,insert,update,references		Default	Default
+def	test	tb4	f208	33	NULL	YES	float	NULL	NULL	12	NULL	NULL	NULL	float unsigned zerofill			select,insert,update,references		Default	Default
+def	test	tb4	f209	34	NULL	YES	float	NULL	NULL	12	NULL	NULL	NULL	float unsigned zerofill			select,insert,update,references		Default	Default
 def	test	tb4	f210	35	NULL	YES	float	NULL	NULL	12	NULL	NULL	NULL	float			select,insert,update,references		Default	Default
 def	test	tb4	f211	36	NULL	YES	double	NULL	NULL	22	NULL	NULL	NULL	double			select,insert,update,references		Default	Default
-def	test	tb4	f212	37	NULL	YES	float unsigned	NULL	NULL	12	NULL	NULL	NULL	float unsigned			select,insert,update,references		Default	Default
-def	test	tb4	f213	38	NULL	YES	double unsigned	NULL	NULL	22	NULL	NULL	NULL	double unsigned			select,insert,update,references		Default	Default
-def	test	tb4	f214	39	NULL	YES	float unsigned zerofill	NULL	NULL	12	NULL	NULL	NULL	float unsigned zerofill			select,insert,update,references		Default	Default
-def	test	tb4	f215	40	NULL	YES	double unsigned zerofill	NULL	NULL	22	NULL	NULL	NULL	double unsigned zerofill			select,insert,update,references		Default	Default
-def	test	tb4	f216	41	NULL	YES	float unsigned zerofill	NULL	NULL	12	NULL	NULL	NULL	float unsigned zerofill			select,insert,update,references		Default	Default
-def	test	tb4	f217	42	NULL	YES	double unsigned zerofill	NULL	NULL	22	NULL	NULL	NULL	double unsigned zerofill			select,insert,update,references		Default	Default
+def	test	tb4	f212	37	NULL	YES	float	NULL	NULL	12	NULL	NULL	NULL	float unsigned			select,insert,update,references		Default	Default
+def	test	tb4	f213	38	NULL	YES	double	NULL	NULL	22	NULL	NULL	NULL	double unsigned			select,insert,update,references		Default	Default
+def	test	tb4	f214	39	NULL	YES	float	NULL	NULL	12	NULL	NULL	NULL	float unsigned zerofill			select,insert,update,references		Default	Default
+def	test	tb4	f215	40	NULL	YES	double	NULL	NULL	22	NULL	NULL	NULL	double unsigned zerofill			select,insert,update,references		Default	Default
+def	test	tb4	f216	41	NULL	YES	float	NULL	NULL	12	NULL	NULL	NULL	float unsigned zerofill			select,insert,update,references		Default	Default
+def	test	tb4	f217	42	NULL	YES	double	NULL	NULL	22	NULL	NULL	NULL	double unsigned zerofill			select,insert,update,references		Default	Default
 def	test	tb4	f218	43	NULL	YES	date	NULL	NULL	NULL	NULL	NULL	NULL	date			select,insert,update,references		Default	Default
 def	test	tb4	f219	44	NULL	YES	time	NULL	NULL	NULL	NULL	NULL	NULL	time			select,insert,update,references		Default	Default
 def	test	tb4	f220	45	NULL	YES	datetime	NULL	NULL	NULL	NULL	NULL	NULL	datetime			select,insert,update,references		Default	Default
@@ -626,7 +626,7 @@ def	test	tb4	f238	55	NULL	YES	varchar	25
 def	test	tb4	f239	56	NULL	YES	varbinary	0	0	NULL	NULL	NULL	NULL	varbinary(0)			select,insert,update,references		Default	Default
 def	test	tb4	f240	57	NULL	YES	varchar	1200	1200	NULL	NULL	latin1	latin1_swedish_ci	varchar(1200)			select,insert,update,references		Default	Default
 def	test	tb4	f241	53	NULL	YES	char	255	255	NULL	NULL	latin1	latin1_swedish_ci	char(255)			select,insert,update,references		Default	Default
-def	test1	tb2	f100	42	00000000000000000008.8	NO	double unsigned zerofill	NULL	NULL	22	NULL	NULL	NULL	double unsigned zerofill			select,insert,update,references		Default	Default
+def	test1	tb2	f100	42	00000000000000000008.8	NO	double	NULL	NULL	22	NULL	NULL	NULL	double unsigned zerofill			select,insert,update,references		Default	Default
 def	test1	tb2	f101	43	2000-01-01	NO	date	NULL	NULL	NULL	NULL	NULL	NULL	date			select,insert,update,references		Default	Default
 def	test1	tb2	f102	44	00:00:20	NO	time	NULL	NULL	NULL	NULL	NULL	NULL	time			select,insert,update,references		Default	Default
 def	test1	tb2	f103	45	0002-02-02 00:00:00	NO	datetime	NULL	NULL	NULL	NULL	NULL	NULL	datetime			select,insert,update,references		Default	Default
@@ -651,32 +651,32 @@ def	test1	tb2	f70	12	NULL	YES	decimal	NU
 def	test1	tb2	f71	13	NULL	YES	decimal	NULL	NULL	10	0	NULL	NULL	decimal(10,0) unsigned zerofill			select,insert,update,references		Default	Default
 def	test1	tb2	f72	14	NULL	YES	decimal	NULL	NULL	63	30	NULL	NULL	decimal(63,30) unsigned zerofill			select,insert,update,references		Default	Default
 def	test1	tb2	f73	15	NULL	YES	double	NULL	NULL	22	NULL	NULL	NULL	double			select,insert,update,references		Default	Default
-def	test1	tb2	f74	16	NULL	YES	double unsigned	NULL	NULL	22	NULL	NULL	NULL	double unsigned			select,insert,update,references		Default	Default
-def	test1	tb2	f75	17	NULL	YES	double unsigned zerofill	NULL	NULL	22	NULL	NULL	NULL	double unsigned zerofill			select,insert,update,references		Default	Default
-def	test1	tb2	f76	18	NULL	YES	double unsigned zerofill	NULL	NULL	22	NULL	NULL	NULL	double unsigned zerofill			select,insert,update,references		Default	Default
+def	test1	tb2	f74	16	NULL	YES	double	NULL	NULL	22	NULL	NULL	NULL	double unsigned			select,insert,update,references		Default	Default
+def	test1	tb2	f75	17	NULL	YES	double	NULL	NULL	22	NULL	NULL	NULL	double unsigned zerofill			select,insert,update,references		Default	Default
+def	test1	tb2	f76	18	NULL	YES	double	NULL	NULL	22	NULL	NULL	NULL	double unsigned zerofill			select,insert,update,references		Default	Default
 def	test1	tb2	f77	19	7.7	YES	double	NULL	NULL	22	NULL	NULL	NULL	double			select,insert,update,references		Default	Default
-def	test1	tb2	f78	20	7.7	YES	double unsigned	NULL	NULL	22	NULL	NULL	NULL	double unsigned			select,insert,update,references		Default	Default
-def	test1	tb2	f79	21	00000000000000000007.7	YES	double unsigned zerofill	NULL	NULL	22	NULL	NULL	NULL	double unsigned zerofill			select,insert,update,references		Default	Default
-def	test1	tb2	f80	22	00000000000000000008.8	YES	double unsigned zerofill	NULL	NULL	22	NULL	NULL	NULL	double unsigned zerofill			select,insert,update,references		Default	Default
+def	test1	tb2	f78	20	7.7	YES	double	NULL	NULL	22	NULL	NULL	NULL	double unsigned			select,insert,update,references		Default	Default
+def	test1	tb2	f79	21	00000000000000000007.7	YES	double	NULL	NULL	22	NULL	NULL	NULL	double unsigned zerofill			select,insert,update,references		Default	Default
+def	test1	tb2	f80	22	00000000000000000008.8	YES	double	NULL	NULL	22	NULL	NULL	NULL	double unsigned zerofill			select,insert,update,references		Default	Default
 def	test1	tb2	f81	23	8.8	NO	float	NULL	NULL	12	NULL	NULL	NULL	float			select,insert,update,references		Default	Default
-def	test1	tb2	f82	24	8.8	NO	float unsigned	NULL	NULL	12	NULL	NULL	NULL	float unsigned			select,insert,update,references		Default	Default
-def	test1	tb2	f83	25	0000000008.8	NO	float unsigned zerofill	NULL	NULL	12	NULL	NULL	NULL	float unsigned zerofill			select,insert,update,references		Default	Default
-def	test1	tb2	f84	26	0000000008.8	NO	float unsigned zerofill	NULL	NULL	12	NULL	NULL	NULL	float unsigned zerofill			select,insert,update,references		Default	Default
+def	test1	tb2	f82	24	8.8	NO	float	NULL	NULL	12	NULL	NULL	NULL	float unsigned			select,insert,update,references		Default	Default
+def	test1	tb2	f83	25	0000000008.8	NO	float	NULL	NULL	12	NULL	NULL	NULL	float unsigned zerofill			select,insert,update,references		Default	Default
+def	test1	tb2	f84	26	0000000008.8	NO	float	NULL	NULL	12	NULL	NULL	NULL	float unsigned zerofill			select,insert,update,references		Default	Default
 def	test1	tb2	f85	27	8.8	NO	float	NULL	NULL	12	NULL	NULL	NULL	float			select,insert,update,references		Default	Default
 def	test1	tb2	f86	28	8.8	NO	float	NULL	NULL	12	NULL	NULL	NULL	float			select,insert,update,references		Default	Default
-def	test1	tb2	f87	29	8.8	NO	float unsigned	NULL	NULL	12	NULL	NULL	NULL	float unsigned			select,insert,update,references		Default	Default
-def	test1	tb2	f88	30	8.8	NO	float unsigned	NULL	NULL	12	NULL	NULL	NULL	float unsigned			select,insert,update,references		Default	Default
-def	test1	tb2	f89	31	0000000008.8	NO	float unsigned zerofill	NULL	NULL	12	NULL	NULL	NULL	float unsigned zerofill			select,insert,update,references		Default	Default
-def	test1	tb2	f90	32	0000000008.8	NO	float unsigned zerofill	NULL	NULL	12	NULL	NULL	NULL	float unsigned zerofill			select,insert,update,references		Default	Default
-def	test1	tb2	f91	33	0000000008.8	NO	float unsigned zerofill	NULL	NULL	12	NULL	NULL	NULL	float unsigned zerofill			select,insert,update,references		Default	Default
-def	test1	tb2	f92	34	0000000008.8	NO	float unsigned zerofill	NULL	NULL	12	NULL	NULL	NULL	float unsigned zerofill			select,insert,update,references		Default	Default
+def	test1	tb2	f87	29	8.8	NO	float	NULL	NULL	12	NULL	NULL	NULL	float unsigned			select,insert,update,references		Default	Default
+def	test1	tb2	f88	30	8.8	NO	float	NULL	NULL	12	NULL	NULL	NULL	float unsigned			select,insert,update,references		Default	Default
+def	test1	tb2	f89	31	0000000008.8	NO	float	NULL	NULL	12	NULL	NULL	NULL	float unsigned zerofill			select,insert,update,references		Default	Default
+def	test1	tb2	f90	32	0000000008.8	NO	float	NULL	NULL	12	NULL	NULL	NULL	float unsigned zerofill			select,insert,update,references		Default	Default
+def	test1	tb2	f91	33	0000000008.8	NO	float	NULL	NULL	12	NULL	NULL	NULL	float unsigned zerofill			select,insert,update,references		Default	Default
+def	test1	tb2	f92	34	0000000008.8	NO	float	NULL	NULL	12	NULL	NULL	NULL	float unsigned zerofill			select,insert,update,references		Default	Default
 def	test1	tb2	f93	35	8.8	NO	float	NULL	NULL	12	NULL	NULL	NULL	float			select,insert,update,references		Default	Default
 def	test1	tb2	f94	36	8.8	NO	double	NULL	NULL	22	NULL	NULL	NULL	double			select,insert,update,references		Default	Default
-def	test1	tb2	f95	37	8.8	NO	float unsigned	NULL	NULL	12	NULL	NULL	NULL	float unsigned			select,insert,update,references		Default	Default
-def	test1	tb2	f96	38	8.8	NO	double unsigned	NULL	NULL	22	NULL	NULL	NULL	double unsigned			select,insert,update,references		Default	Default
-def	test1	tb2	f97	39	0000000008.8	NO	float unsigned zerofill	NULL	NULL	12	NULL	NULL	NULL	float unsigned zerofill			select,insert,update,references		Default	Default
-def	test1	tb2	f98	40	00000000000000000008.8	NO	double unsigned zerofill	NULL	NULL	22	NULL	NULL	NULL	double unsigned zerofill			select,insert,update,references		Default	Default
-def	test1	tb2	f99	41	0000000008.8	NO	float unsigned zerofill	NULL	NULL	12	NULL	NULL	NULL	float unsigned zerofill			select,insert,update,references		Default	Default
+def	test1	tb2	f95	37	8.8	NO	float	NULL	NULL	12	NULL	NULL	NULL	float unsigned			select,insert,update,references		Default	Default
+def	test1	tb2	f96	38	8.8	NO	double	NULL	NULL	22	NULL	NULL	NULL	double unsigned			select,insert,update,references		Default	Default
+def	test1	tb2	f97	39	0000000008.8	NO	float	NULL	NULL	12	NULL	NULL	NULL	float unsigned zerofill			select,insert,update,references		Default	Default
+def	test1	tb2	f98	40	00000000000000000008.8	NO	double	NULL	NULL	22	NULL	NULL	NULL	double unsigned zerofill			select,insert,update,references		Default	Default
+def	test1	tb2	f99	41	0000000008.8	NO	float	NULL	NULL	12	NULL	NULL	NULL	float unsigned zerofill			select,insert,update,references		Default	Default
 def	test4	t6	f1	1	NULL	YES	char	20	20	NULL	NULL	latin1	latin1_swedish_ci	char(20)			select,insert,update,references		Default	Default
 def	test4	t6	f2	2	NULL	YES	char	25	25	NULL	NULL	latin1	latin1_swedish_ci	char(25)			select,insert,update,references		Default	Default
 def	test4	t6	f3	3	NULL	YES	date	NULL	NULL	NULL	NULL	NULL	NULL	date			select,insert,update,references		Default	Default
@@ -728,11 +728,7 @@ NULL	date	NULL	NULL
 NULL	datetime	NULL	NULL
 NULL	decimal	NULL	NULL
 NULL	double	NULL	NULL
-NULL	double unsigned	NULL	NULL
-NULL	double unsigned zerofill	NULL	NULL
 NULL	float	NULL	NULL
-NULL	float unsigned	NULL	NULL
-NULL	float unsigned zerofill	NULL	NULL
 NULL	int	NULL	NULL
 NULL	mediumint	NULL	NULL
 NULL	smallint	NULL	NULL
@@ -866,33 +862,33 @@ NULL	test	tb2	f70	decimal	NULL	NULL	NULL
 NULL	test	tb2	f71	decimal	NULL	NULL	NULL	NULL	decimal(10,0) unsigned zerofill
 NULL	test	tb2	f72	decimal	NULL	NULL	NULL	NULL	decimal(63,30) unsigned zerofill
 NULL	test	tb2	f73	double	NULL	NULL	NULL	NULL	double
-NULL	test	tb2	f74	double unsigned	NULL	NULL	NULL	NULL	double unsigned
-NULL	test	tb2	f75	double unsigned zerofill	NULL	NULL	NULL	NULL	double unsigned zerofill
-NULL	test	tb2	f76	double unsigned zerofill	NULL	NULL	NULL	NULL	double unsigned zerofill
+NULL	test	tb2	f74	double	NULL	NULL	NULL	NULL	double unsigned
+NULL	test	tb2	f75	double	NULL	NULL	NULL	NULL	double unsigned zerofill
+NULL	test	tb2	f76	double	NULL	NULL	NULL	NULL	double unsigned zerofill
 NULL	test	tb2	f77	double	NULL	NULL	NULL	NULL	double
-NULL	test	tb2	f78	double unsigned	NULL	NULL	NULL	NULL	double unsigned
-NULL	test	tb2	f79	double unsigned zerofill	NULL	NULL	NULL	NULL	double unsigned zerofill
-NULL	test	tb2	f80	double unsigned zerofill	NULL	NULL	NULL	NULL	double unsigned zerofill
+NULL	test	tb2	f78	double	NULL	NULL	NULL	NULL	double unsigned
+NULL	test	tb2	f79	double	NULL	NULL	NULL	NULL	double unsigned zerofill
+NULL	test	tb2	f80	double	NULL	NULL	NULL	NULL	double unsigned zerofill
 NULL	test	tb2	f81	float	NULL	NULL	NULL	NULL	float
-NULL	test	tb2	f82	float unsigned	NULL	NULL	NULL	NULL	float unsigned
-NULL	test	tb2	f83	float unsigned zerofill	NULL	NULL	NULL	NULL	float unsigned zerofill
-NULL	test	tb2	f84	float unsigned zerofill	NULL	NULL	NULL	NULL	float unsigned zerofill
+NULL	test	tb2	f82	float	NULL	NULL	NULL	NULL	float unsigned
+NULL	test	tb2	f83	float	NULL	NULL	NULL	NULL	float unsigned zerofill
+NULL	test	tb2	f84	float	NULL	NULL	NULL	NULL	float unsigned zerofill
 NULL	test	tb2	f85	float	NULL	NULL	NULL	NULL	float
 NULL	test	tb2	f86	float	NULL	NULL	NULL	NULL	float
-NULL	test	tb2	f87	float unsigned	NULL	NULL	NULL	NULL	float unsigned
-NULL	test	tb2	f88	float unsigned	NULL	NULL	NULL	NULL	float unsigned
-NULL	test	tb2	f89	float unsigned zerofill	NULL	NULL	NULL	NULL	float unsigned zerofill
-NULL	test	tb2	f90	float unsigned zerofill	NULL	NULL	NULL	NULL	float unsigned zerofill
-NULL	test	tb2	f91	float unsigned zerofill	NULL	NULL	NULL	NULL	float unsigned zerofill
-NULL	test	tb2	f92	float unsigned zerofill	NULL	NULL	NULL	NULL	float unsigned zerofill
+NULL	test	tb2	f87	float	NULL	NULL	NULL	NULL	float unsigned
+NULL	test	tb2	f88	float	NULL	NULL	NULL	NULL	float unsigned
+NULL	test	tb2	f89	float	NULL	NULL	NULL	NULL	float unsigned zerofill
+NULL	test	tb2	f90	float	NULL	NULL	NULL	NULL	float unsigned zerofill
+NULL	test	tb2	f91	float	NULL	NULL	NULL	NULL	float unsigned zerofill
+NULL	test	tb2	f92	float	NULL	NULL	NULL	NULL	float unsigned zerofill
 NULL	test	tb2	f93	float	NULL	NULL	NULL	NULL	float
 NULL	test	tb2	f94	double	NULL	NULL	NULL	NULL	double
-NULL	test	tb2	f95	float unsigned	NULL	NULL	NULL	NULL	float unsigned
-NULL	test	tb2	f96	double unsigned	NULL	NULL	NULL	NULL	double unsigned
-NULL	test	tb2	f97	float unsigned zerofill	NULL	NULL	NULL	NULL	float unsigned zerofill
-NULL	test	tb2	f98	double unsigned zerofill	NULL	NULL	NULL	NULL	double unsigned zerofill
-NULL	test	tb2	f99	float unsigned zerofill	NULL	NULL	NULL	NULL	float unsigned zerofill
-NULL	test	tb2	f100	double unsigned zerofill	NULL	NULL	NULL	NULL	double unsigned zerofill
+NULL	test	tb2	f95	float	NULL	NULL	NULL	NULL	float unsigned
+NULL	test	tb2	f96	double	NULL	NULL	NULL	NULL	double unsigned
+NULL	test	tb2	f97	float	NULL	NULL	NULL	NULL	float unsigned zerofill
+NULL	test	tb2	f98	double	NULL	NULL	NULL	NULL	double unsigned zerofill
+NULL	test	tb2	f99	float	NULL	NULL	NULL	NULL	float unsigned zerofill
+NULL	test	tb2	f100	double	NULL	NULL	NULL	NULL	double unsigned zerofill
 NULL	test	tb2	f101	date	NULL	NULL	NULL	NULL	date
 NULL	test	tb2	f102	time	NULL	NULL	NULL	NULL	time
 NULL	test	tb2	f103	datetime	NULL	NULL	NULL	NULL	datetime
@@ -969,33 +965,33 @@ NULL	test	tb4	f187	decimal	NULL	NULL	NUL
 NULL	test	tb4	f188	decimal	NULL	NULL	NULL	NULL	decimal(10,0) unsigned zerofill
 NULL	test	tb4	f189	decimal	NULL	NULL	NULL	NULL	decimal(63,30) unsigned zerofill
 NULL	test	tb4	f190	double	NULL	NULL	NULL	NULL	double
-NULL	test	tb4	f191	double unsigned	NULL	NULL	NULL	NULL	double unsigned
-NULL	test	tb4	f192	double unsigned zerofill	NULL	NULL	NULL	NULL	double unsigned zerofill
-NULL	test	tb4	f193	double unsigned zerofill	NULL	NULL	NULL	NULL	double unsigned zerofill
+NULL	test	tb4	f191	double	NULL	NULL	NULL	NULL	double unsigned
+NULL	test	tb4	f192	double	NULL	NULL	NULL	NULL	double unsigned zerofill
+NULL	test	tb4	f193	double	NULL	NULL	NULL	NULL	double unsigned zerofill
 NULL	test	tb4	f194	double	NULL	NULL	NULL	NULL	double
-NULL	test	tb4	f195	double unsigned	NULL	NULL	NULL	NULL	double unsigned
-NULL	test	tb4	f196	double unsigned zerofill	NULL	NULL	NULL	NULL	double unsigned zerofill
-NULL	test	tb4	f197	double unsigned zerofill	NULL	NULL	NULL	NULL	double unsigned zerofill
+NULL	test	tb4	f195	double	NULL	NULL	NULL	NULL	double unsigned
+NULL	test	tb4	f196	double	NULL	NULL	NULL	NULL	double unsigned zerofill
+NULL	test	tb4	f197	double	NULL	NULL	NULL	NULL	double unsigned zerofill
 NULL	test	tb4	f198	float	NULL	NULL	NULL	NULL	float
-NULL	test	tb4	f199	float unsigned	NULL	NULL	NULL	NULL	float unsigned
-NULL	test	tb4	f200	float unsigned zerofill	NULL	NULL	NULL	NULL	float unsigned zerofill
-NULL	test	tb4	f201	float unsigned zerofill	NULL	NULL	NULL	NULL	float unsigned zerofill
+NULL	test	tb4	f199	float	NULL	NULL	NULL	NULL	float unsigned
+NULL	test	tb4	f200	float	NULL	NULL	NULL	NULL	float unsigned zerofill
+NULL	test	tb4	f201	float	NULL	NULL	NULL	NULL	float unsigned zerofill
 NULL	test	tb4	f202	float	NULL	NULL	NULL	NULL	float
 NULL	test	tb4	f203	float	NULL	NULL	NULL	NULL	float
-NULL	test	tb4	f204	float unsigned	NULL	NULL	NULL	NULL	float unsigned
-NULL	test	tb4	f205	float unsigned	NULL	NULL	NULL	NULL	float unsigned
-NULL	test	tb4	f206	float unsigned zerofill	NULL	NULL	NULL	NULL	float unsigned zerofill
-NULL	test	tb4	f207	float unsigned zerofill	NULL	NULL	NULL	NULL	float unsigned zerofill
-NULL	test	tb4	f208	float unsigned zerofill	NULL	NULL	NULL	NULL	float unsigned zerofill
-NULL	test	tb4	f209	float unsigned zerofill	NULL	NULL	NULL	NULL	float unsigned zerofill
+NULL	test	tb4	f204	float	NULL	NULL	NULL	NULL	float unsigned
+NULL	test	tb4	f205	float	NULL	NULL	NULL	NULL	float unsigned
+NULL	test	tb4	f206	float	NULL	NULL	NULL	NULL	float unsigned zerofill
+NULL	test	tb4	f207	float	NULL	NULL	NULL	NULL	float unsigned zerofill
+NULL	test	tb4	f208	float	NULL	NULL	NULL	NULL	float unsigned zerofill
+NULL	test	tb4	f209	float	NULL	NULL	NULL	NULL	float unsigned zerofill
 NULL	test	tb4	f210	float	NULL	NULL	NULL	NULL	float
 NULL	test	tb4	f211	double	NULL	NULL	NULL	NULL	double
-NULL	test	tb4	f212	float unsigned	NULL	NULL	NULL	NULL	float unsigned
-NULL	test	tb4	f213	double unsigned	NULL	NULL	NULL	NULL	double unsigned
-NULL	test	tb4	f214	float unsigned zerofill	NULL	NULL	NULL	NULL	float unsigned zerofill
-NULL	test	tb4	f215	double unsigned zerofill	NULL	NULL	NULL	NULL	double unsigned zerofill
-NULL	test	tb4	f216	float unsigned zerofill	NULL	NULL	NULL	NULL	float unsigned zerofill
-NULL	test	tb4	f217	double unsigned zerofill	NULL	NULL	NULL	NULL	double unsigned zerofill
+NULL	test	tb4	f212	float	NULL	NULL	NULL	NULL	float unsigned
+NULL	test	tb4	f213	double	NULL	NULL	NULL	NULL	double unsigned
+NULL	test	tb4	f214	float	NULL	NULL	NULL	NULL	float unsigned zerofill
+NULL	test	tb4	f215	double	NULL	NULL	NULL	NULL	double unsigned zerofill
+NULL	test	tb4	f216	float	NULL	NULL	NULL	NULL	float unsigned zerofill
+NULL	test	tb4	f217	double	NULL	NULL	NULL	NULL	double unsigned zerofill
 NULL	test	tb4	f218	date	NULL	NULL	NULL	NULL	date
 NULL	test	tb4	f219	time	NULL	NULL	NULL	NULL	time
 NULL	test	tb4	f220	datetime	NULL	NULL	NULL	NULL	datetime
@@ -1026,33 +1022,33 @@ NULL	test1	tb2	f70	decimal	NULL	NULL	NUL
 NULL	test1	tb2	f71	decimal	NULL	NULL	NULL	NULL	decimal(10,0) unsigned zerofill
 NULL	test1	tb2	f72	decimal	NULL	NULL	NULL	NULL	decimal(63,30) unsigned zerofill
 NULL	test1	tb2	f73	double	NULL	NULL	NULL	NULL	double
-NULL	test1	tb2	f74	double unsigned	NULL	NULL	NULL	NULL	double unsigned
-NULL	test1	tb2	f75	double unsigned zerofill	NULL	NULL	NULL	NULL	double unsigned zerofill
-NULL	test1	tb2	f76	double unsigned zerofill	NULL	NULL	NULL	NULL	double unsigned zerofill
+NULL	test1	tb2	f74	double	NULL	NULL	NULL	NULL	double unsigned
+NULL	test1	tb2	f75	double	NULL	NULL	NULL	NULL	double unsigned zerofill
+NULL	test1	tb2	f76	double	NULL	NULL	NULL	NULL	double unsigned zerofill
 NULL	test1	tb2	f77	double	NULL	NULL	NULL	NULL	double
-NULL	test1	tb2	f78	double unsigned	NULL	NULL	NULL	NULL	double unsigned
-NULL	test1	tb2	f79	double unsigned zerofill	NULL	NULL	NULL	NULL	double unsigned zerofill
-NULL	test1	tb2	f80	double unsigned zerofill	NULL	NULL	NULL	NULL	double unsigned zerofill
+NULL	test1	tb2	f78	double	NULL	NULL	NULL	NULL	double unsigned
+NULL	test1	tb2	f79	double	NULL	NULL	NULL	NULL	double unsigned zerofill
+NULL	test1	tb2	f80	double	NULL	NULL	NULL	NULL	double unsigned zerofill
 NULL	test1	tb2	f81	float	NULL	NULL	NULL	NULL	float
-NULL	test1	tb2	f82	float unsigned	NULL	NULL	NULL	NULL	float unsigned
-NULL	test1	tb2	f83	float unsigned zerofill	NULL	NULL	NULL	NULL	float unsigned zerofill
-NULL	test1	tb2	f84	float unsigned zerofill	NULL	NULL	NULL	NULL	float unsigned zerofill
+NULL	test1	tb2	f82	float	NULL	NULL	NULL	NULL	float unsigned
+NULL	test1	tb2	f83	float	NULL	NULL	NULL	NULL	float unsigned zerofill
+NULL	test1	tb2	f84	float	NULL	NULL	NULL	NULL	float unsigned zerofill
 NULL	test1	tb2	f85	float	NULL	NULL	NULL	NULL	float
 NULL	test1	tb2	f86	float	NULL	NULL	NULL	NULL	float
-NULL	test1	tb2	f87	float unsigned	NULL	NULL	NULL	NULL	float unsigned
-NULL	test1	tb2	f88	float unsigned	NULL	NULL	NULL	NULL	float unsigned
-NULL	test1	tb2	f89	float unsigned zerofill	NULL	NULL	NULL	NULL	float unsigned zerofill
-NULL	test1	tb2	f90	float unsigned zerofill	NULL	NULL	NULL	NULL	float unsigned zerofill
-NULL	test1	tb2	f91	float unsigned zerofill	NULL	NULL	NULL	NULL	float unsigned zerofill
-NULL	test1	tb2	f92	float unsigned zerofill	NULL	NULL	NULL	NULL	float unsigned zerofill
+NULL	test1	tb2	f87	float	NULL	NULL	NULL	NULL	float unsigned
+NULL	test1	tb2	f88	float	NULL	NULL	NULL	NULL	float unsigned
+NULL	test1	tb2	f89	float	NULL	NULL	NULL	NULL	float unsigned zerofill
+NULL	test1	tb2	f90	float	NULL	NULL	NULL	NULL	float unsigned zerofill
+NULL	test1	tb2	f91	float	NULL	NULL	NULL	NULL	float unsigned zerofill
+NULL	test1	tb2	f92	float	NULL	NULL	NULL	NULL	float unsigned zerofill
 NULL	test1	tb2	f93	float	NULL	NULL	NULL	NULL	float
 NULL	test1	tb2	f94	double	NULL	NULL	NULL	NULL	double
-NULL	test1	tb2	f95	float unsigned	NULL	NULL	NULL	NULL	float unsigned
-NULL	test1	tb2	f96	double unsigned	NULL	NULL	NULL	NULL	double unsigned
-NULL	test1	tb2	f97	float unsigned zerofill	NULL	NULL	NULL	NULL	float unsigned zerofill
-NULL	test1	tb2	f98	double unsigned zerofill	NULL	NULL	NULL	NULL	double unsigned zerofill
-NULL	test1	tb2	f99	float unsigned zerofill	NULL	NULL	NULL	NULL	float unsigned zerofill
-NULL	test1	tb2	f100	double unsigned zerofill	NULL	NULL	NULL	NULL	double unsigned zerofill
+NULL	test1	tb2	f95	float	NULL	NULL	NULL	NULL	float unsigned
+NULL	test1	tb2	f96	double	NULL	NULL	NULL	NULL	double unsigned
+NULL	test1	tb2	f97	float	NULL	NULL	NULL	NULL	float unsigned zerofill
+NULL	test1	tb2	f98	double	NULL	NULL	NULL	NULL	double unsigned zerofill
+NULL	test1	tb2	f99	float	NULL	NULL	NULL	NULL	float unsigned zerofill
+NULL	test1	tb2	f100	double	NULL	NULL	NULL	NULL	double unsigned zerofill
 NULL	test1	tb2	f101	date	NULL	NULL	NULL	NULL	date
 NULL	test1	tb2	f102	time	NULL	NULL	NULL	NULL	time
 NULL	test1	tb2	f103	datetime	NULL	NULL	NULL	NULL	datetime

=== modified file 'mysql-test/suite/funcs_1/r/is_columns_myisam.result'
--- a/mysql-test/suite/funcs_1/r/is_columns_myisam.result	2009-02-16 14:47:53 +0000
+++ b/mysql-test/suite/funcs_1/r/is_columns_myisam.result	2009-03-05 12:22:26 +0000
@@ -514,7 +514,7 @@ def	test	tb1	f6	6	NULL	YES	mediumtext	16
 def	test	tb1	f7	7	NULL	YES	longtext	4294967295	4294967295	NULL	NULL	latin1	latin1_swedish_ci	longtext			select,insert,update,references		Default	Default
 def	test	tb1	f8	8	NULL	YES	tinyblob	255	255	NULL	NULL	NULL	NULL	tinyblob			select,insert,update,references		Default	Default
 def	test	tb1	f9	9	NULL	YES	blob	65535	65535	NULL	NULL	NULL	NULL	blob			select,insert,update,references		Default	Default
-def	test	tb2	f100	42	00000000000000000008.8	NO	double unsigned zerofill	NULL	NULL	22	NULL	NULL	NULL	double unsigned zerofill			select,insert,update,references		Default	Default
+def	test	tb2	f100	42	00000000000000000008.8	NO	double	NULL	NULL	22	NULL	NULL	NULL	double unsigned zerofill			select,insert,update,references		Default	Default
 def	test	tb2	f101	43	2000-01-01	NO	date	NULL	NULL	NULL	NULL	NULL	NULL	date			select,insert,update,references		Default	Default
 def	test	tb2	f102	44	00:00:20	NO	time	NULL	NULL	NULL	NULL	NULL	NULL	time			select,insert,update,references		Default	Default
 def	test	tb2	f103	45	0002-02-02 00:00:00	NO	datetime	NULL	NULL	NULL	NULL	NULL	NULL	datetime			select,insert,update,references		Default	Default
@@ -547,32 +547,32 @@ def	test	tb2	f70	12	NULL	YES	decimal	NUL
 def	test	tb2	f71	13	NULL	YES	decimal	NULL	NULL	10	0	NULL	NULL	decimal(10,0) unsigned zerofill			select,insert,update,references		Default	Default
 def	test	tb2	f72	14	NULL	YES	decimal	NULL	NULL	63	30	NULL	NULL	decimal(63,30) unsigned zerofill			select,insert,update,references		Default	Default
 def	test	tb2	f73	15	NULL	YES	double	NULL	NULL	22	NULL	NULL	NULL	double			select,insert,update,references		Default	Default
-def	test	tb2	f74	16	NULL	YES	double unsigned	NULL	NULL	22	NULL	NULL	NULL	double unsigned			select,insert,update,references		Default	Default
-def	test	tb2	f75	17	NULL	YES	double unsigned zerofill	NULL	NULL	22	NULL	NULL	NULL	double unsigned zerofill			select,insert,update,references		Default	Default
-def	test	tb2	f76	18	NULL	YES	double unsigned zerofill	NULL	NULL	22	NULL	NULL	NULL	double unsigned zerofill			select,insert,update,references		Default	Default
+def	test	tb2	f74	16	NULL	YES	double	NULL	NULL	22	NULL	NULL	NULL	double unsigned			select,insert,update,references		Default	Default
+def	test	tb2	f75	17	NULL	YES	double	NULL	NULL	22	NULL	NULL	NULL	double unsigned zerofill			select,insert,update,references		Default	Default
+def	test	tb2	f76	18	NULL	YES	double	NULL	NULL	22	NULL	NULL	NULL	double unsigned zerofill			select,insert,update,references		Default	Default
 def	test	tb2	f77	19	7.7	YES	double	NULL	NULL	22	NULL	NULL	NULL	double			select,insert,update,references		Default	Default
-def	test	tb2	f78	20	7.7	YES	double unsigned	NULL	NULL	22	NULL	NULL	NULL	double unsigned			select,insert,update,references		Default	Default
-def	test	tb2	f79	21	00000000000000000007.7	YES	double unsigned zerofill	NULL	NULL	22	NULL	NULL	NULL	double unsigned zerofill			select,insert,update,references		Default	Default
-def	test	tb2	f80	22	00000000000000000008.8	YES	double unsigned zerofill	NULL	NULL	22	NULL	NULL	NULL	double unsigned zerofill			select,insert,update,references		Default	Default
+def	test	tb2	f78	20	7.7	YES	double	NULL	NULL	22	NULL	NULL	NULL	double unsigned			select,insert,update,references		Default	Default
+def	test	tb2	f79	21	00000000000000000007.7	YES	double	NULL	NULL	22	NULL	NULL	NULL	double unsigned zerofill			select,insert,update,references		Default	Default
+def	test	tb2	f80	22	00000000000000000008.8	YES	double	NULL	NULL	22	NULL	NULL	NULL	double unsigned zerofill			select,insert,update,references		Default	Default
 def	test	tb2	f81	23	8.8	NO	float	NULL	NULL	12	NULL	NULL	NULL	float			select,insert,update,references		Default	Default
-def	test	tb2	f82	24	8.8	NO	float unsigned	NULL	NULL	12	NULL	NULL	NULL	float unsigned			select,insert,update,references		Default	Default
-def	test	tb2	f83	25	0000000008.8	NO	float unsigned zerofill	NULL	NULL	12	NULL	NULL	NULL	float unsigned zerofill			select,insert,update,references		Default	Default
-def	test	tb2	f84	26	0000000008.8	NO	float unsigned zerofill	NULL	NULL	12	NULL	NULL	NULL	float unsigned zerofill			select,insert,update,references		Default	Default
+def	test	tb2	f82	24	8.8	NO	float	NULL	NULL	12	NULL	NULL	NULL	float unsigned			select,insert,update,references		Default	Default
+def	test	tb2	f83	25	0000000008.8	NO	float	NULL	NULL	12	NULL	NULL	NULL	float unsigned zerofill			select,insert,update,references		Default	Default
+def	test	tb2	f84	26	0000000008.8	NO	float	NULL	NULL	12	NULL	NULL	NULL	float unsigned zerofill			select,insert,update,references		Default	Default
 def	test	tb2	f85	27	8.8	NO	float	NULL	NULL	12	NULL	NULL	NULL	float			select,insert,update,references		Default	Default
 def	test	tb2	f86	28	8.8	NO	float	NULL	NULL	12	NULL	NULL	NULL	float			select,insert,update,references		Default	Default
-def	test	tb2	f87	29	8.8	NO	float unsigned	NULL	NULL	12	NULL	NULL	NULL	float unsigned			select,insert,update,references		Default	Default
-def	test	tb2	f88	30	8.8	NO	float unsigned	NULL	NULL	12	NULL	NULL	NULL	float unsigned			select,insert,update,references		Default	Default
-def	test	tb2	f89	31	0000000008.8	NO	float unsigned zerofill	NULL	NULL	12	NULL	NULL	NULL	float unsigned zerofill			select,insert,update,references		Default	Default
-def	test	tb2	f90	32	0000000008.8	NO	float unsigned zerofill	NULL	NULL	12	NULL	NULL	NULL	float unsigned zerofill			select,insert,update,references		Default	Default
-def	test	tb2	f91	33	0000000008.8	NO	float unsigned zerofill	NULL	NULL	12	NULL	NULL	NULL	float unsigned zerofill			select,insert,update,references		Default	Default
-def	test	tb2	f92	34	0000000008.8	NO	float unsigned zerofill	NULL	NULL	12	NULL	NULL	NULL	float unsigned zerofill			select,insert,update,references		Default	Default
+def	test	tb2	f87	29	8.8	NO	float	NULL	NULL	12	NULL	NULL	NULL	float unsigned			select,insert,update,references		Default	Default
+def	test	tb2	f88	30	8.8	NO	float	NULL	NULL	12	NULL	NULL	NULL	float unsigned			select,insert,update,references		Default	Default
+def	test	tb2	f89	31	0000000008.8	NO	float	NULL	NULL	12	NULL	NULL	NULL	float unsigned zerofill			select,insert,update,references		Default	Default
+def	test	tb2	f90	32	0000000008.8	NO	float	NULL	NULL	12	NULL	NULL	NULL	float unsigned zerofill			select,insert,update,references		Default	Default
+def	test	tb2	f91	33	0000000008.8	NO	float	NULL	NULL	12	NULL	NULL	NULL	float unsigned zerofill			select,insert,update,references		Default	Default
+def	test	tb2	f92	34	0000000008.8	NO	float	NULL	NULL	12	NULL	NULL	NULL	float unsigned zerofill			select,insert,update,references		Default	Default
 def	test	tb2	f93	35	8.8	NO	float	NULL	NULL	12	NULL	NULL	NULL	float			select,insert,update,references		Default	Default
 def	test	tb2	f94	36	8.8	NO	double	NULL	NULL	22	NULL	NULL	NULL	double			select,insert,update,references		Default	Default
-def	test	tb2	f95	37	8.8	NO	float unsigned	NULL	NULL	12	NULL	NULL	NULL	float unsigned			select,insert,update,references		Default	Default
-def	test	tb2	f96	38	8.8	NO	double unsigned	NULL	NULL	22	NULL	NULL	NULL	double unsigned			select,insert,update,references		Default	Default
-def	test	tb2	f97	39	0000000008.8	NO	float unsigned zerofill	NULL	NULL	12	NULL	NULL	NULL	float unsigned zerofill			select,insert,update,references		Default	Default
-def	test	tb2	f98	40	00000000000000000008.8	NO	double unsigned zerofill	NULL	NULL	22	NULL	NULL	NULL	double unsigned zerofill			select,insert,update,references		Default	Default
-def	test	tb2	f99	41	0000000008.8	NO	float unsigned zerofill	NULL	NULL	12	NULL	NULL	NULL	float unsigned zerofill			select,insert,update,references		Default	Default
+def	test	tb2	f95	37	8.8	NO	float	NULL	NULL	12	NULL	NULL	NULL	float unsigned			select,insert,update,references		Default	Default
+def	test	tb2	f96	38	8.8	NO	double	NULL	NULL	22	NULL	NULL	NULL	double unsigned			select,insert,update,references		Default	Default
+def	test	tb2	f97	39	0000000008.8	NO	float	NULL	NULL	12	NULL	NULL	NULL	float unsigned zerofill			select,insert,update,references		Default	Default
+def	test	tb2	f98	40	00000000000000000008.8	NO	double	NULL	NULL	22	NULL	NULL	NULL	double unsigned zerofill			select,insert,update,references		Default	Default
+def	test	tb2	f99	41	0000000008.8	NO	float	NULL	NULL	12	NULL	NULL	NULL	float unsigned zerofill			select,insert,update,references		Default	Default
 def	test	tb3	f118	1	a	NO	char	1	1	NULL	NULL	latin1	latin1_swedish_ci	char(1)			select,insert,update,references		Default	Default
 def	test	tb3	f119	2		NO	char	1	1	NULL	NULL	latin1	latin1_bin	char(1)			select,insert,update,references		Default	Default
 def	test	tb3	f120	3		NO	char	1	1	NULL	NULL	latin1	latin1_swedish_ci	char(1)			select,insert,update,references		Default	Default
@@ -646,33 +646,33 @@ def	test	tb4	f187	12	0000000000000000000
 def	test	tb4	f188	13	0000000009	NO	decimal	NULL	NULL	10	0	NULL	NULL	decimal(10,0) unsigned zerofill			select,insert,update,references		Default	Default
 def	test	tb4	f189	14	000000000000000000000000000000009.000000000000000000000000000000	NO	decimal	NULL	NULL	63	30	NULL	NULL	decimal(63,30) unsigned zerofill			select,insert,update,references		Default	Default
 def	test	tb4	f190	15	88.8	NO	double	NULL	NULL	22	NULL	NULL	NULL	double			select,insert,update,references		Default	Default
-def	test	tb4	f191	16	88.8	NO	double unsigned	NULL	NULL	22	NULL	NULL	NULL	double unsigned			select,insert,update,references		Default	Default
-def	test	tb4	f192	17	00000000000000000088.8	NO	double unsigned zerofill	NULL	NULL	22	NULL	NULL	NULL	double unsigned zerofill			select,insert,update,references		Default	Default
-def	test	tb4	f193	18	00000000000000000088.8	NO	double unsigned zerofill	NULL	NULL	22	NULL	NULL	NULL	double unsigned zerofill			select,insert,update,references		Default	Default
+def	test	tb4	f191	16	88.8	NO	double	NULL	NULL	22	NULL	NULL	NULL	double unsigned			select,insert,update,references		Default	Default
+def	test	tb4	f192	17	00000000000000000088.8	NO	double	NULL	NULL	22	NULL	NULL	NULL	double unsigned zerofill			select,insert,update,references		Default	Default
+def	test	tb4	f193	18	00000000000000000088.8	NO	double	NULL	NULL	22	NULL	NULL	NULL	double unsigned zerofill			select,insert,update,references		Default	Default
 def	test	tb4	f194	19	55.5	NO	double	NULL	NULL	22	NULL	NULL	NULL	double			select,insert,update,references		Default	Default
-def	test	tb4	f195	20	55.5	NO	double unsigned	NULL	NULL	22	NULL	NULL	NULL	double unsigned			select,insert,update,references		Default	Default
-def	test	tb4	f196	21	00000000000000000055.5	NO	double unsigned zerofill	NULL	NULL	22	NULL	NULL	NULL	double unsigned zerofill			select,insert,update,references		Default	Default
-def	test	tb4	f197	22	00000000000000000055.5	NO	double unsigned zerofill	NULL	NULL	22	NULL	NULL	NULL	double unsigned zerofill			select,insert,update,references		Default	Default
+def	test	tb4	f195	20	55.5	NO	double	NULL	NULL	22	NULL	NULL	NULL	double unsigned			select,insert,update,references		Default	Default
+def	test	tb4	f196	21	00000000000000000055.5	NO	double	NULL	NULL	22	NULL	NULL	NULL	double unsigned zerofill			select,insert,update,references		Default	Default
+def	test	tb4	f197	22	00000000000000000055.5	NO	double	NULL	NULL	22	NULL	NULL	NULL	double unsigned zerofill			select,insert,update,references		Default	Default
 def	test	tb4	f198	23	NULL	YES	float	NULL	NULL	12	NULL	NULL	NULL	float			select,insert,update,references		Default	Default
-def	test	tb4	f199	24	NULL	YES	float unsigned	NULL	NULL	12	NULL	NULL	NULL	float unsigned			select,insert,update,references		Default	Default
-def	test	tb4	f200	25	NULL	YES	float unsigned zerofill	NULL	NULL	12	NULL	NULL	NULL	float unsigned zerofill			select,insert,update,references		Default	Default
-def	test	tb4	f201	26	NULL	YES	float unsigned zerofill	NULL	NULL	12	NULL	NULL	NULL	float unsigned zerofill			select,insert,update,references		Default	Default
+def	test	tb4	f199	24	NULL	YES	float	NULL	NULL	12	NULL	NULL	NULL	float unsigned			select,insert,update,references		Default	Default
+def	test	tb4	f200	25	NULL	YES	float	NULL	NULL	12	NULL	NULL	NULL	float unsigned zerofill			select,insert,update,references		Default	Default
+def	test	tb4	f201	26	NULL	YES	float	NULL	NULL	12	NULL	NULL	NULL	float unsigned zerofill			select,insert,update,references		Default	Default
 def	test	tb4	f202	27	NULL	YES	float	NULL	NULL	12	NULL	NULL	NULL	float			select,insert,update,references		Default	Default
 def	test	tb4	f203	28	NULL	YES	float	NULL	NULL	12	NULL	NULL	NULL	float			select,insert,update,references		Default	Default
-def	test	tb4	f204	29	NULL	YES	float unsigned	NULL	NULL	12	NULL	NULL	NULL	float unsigned			select,insert,update,references		Default	Default
-def	test	tb4	f205	30	NULL	YES	float unsigned	NULL	NULL	12	NULL	NULL	NULL	float unsigned			select,insert,update,references		Default	Default
-def	test	tb4	f206	31	NULL	YES	float unsigned zerofill	NULL	NULL	12	NULL	NULL	NULL	float unsigned zerofill			select,insert,update,references		Default	Default
-def	test	tb4	f207	32	NULL	YES	float unsigned zerofill	NULL	NULL	12	NULL	NULL	NULL	float unsigned zerofill			select,insert,update,references		Default	Default
-def	test	tb4	f208	33	NULL	YES	float unsigned zerofill	NULL	NULL	12	NULL	NULL	NULL	float unsigned zerofill			select,insert,update,references		Default	Default
-def	test	tb4	f209	34	NULL	YES	float unsigned zerofill	NULL	NULL	12	NULL	NULL	NULL	float unsigned zerofill			select,insert,update,references		Default	Default
+def	test	tb4	f204	29	NULL	YES	float	NULL	NULL	12	NULL	NULL	NULL	float unsigned			select,insert,update,references		Default	Default
+def	test	tb4	f205	30	NULL	YES	float	NULL	NULL	12	NULL	NULL	NULL	float unsigned			select,insert,update,references		Default	Default
+def	test	tb4	f206	31	NULL	YES	float	NULL	NULL	12	NULL	NULL	NULL	float unsigned zerofill			select,insert,update,references		Default	Default
+def	test	tb4	f207	32	NULL	YES	float	NULL	NULL	12	NULL	NULL	NULL	float unsigned zerofill			select,insert,update,references		Default	Default
+def	test	tb4	f208	33	NULL	YES	float	NULL	NULL	12	NULL	NULL	NULL	float unsigned zerofill			select,insert,update,references		Default	Default
+def	test	tb4	f209	34	NULL	YES	float	NULL	NULL	12	NULL	NULL	NULL	float unsigned zerofill			select,insert,update,references		Default	Default
 def	test	tb4	f210	35	NULL	YES	float	NULL	NULL	12	NULL	NULL	NULL	float			select,insert,update,references		Default	Default
 def	test	tb4	f211	36	NULL	YES	double	NULL	NULL	22	NULL	NULL	NULL	double			select,insert,update,references		Default	Default
-def	test	tb4	f212	37	NULL	YES	float unsigned	NULL	NULL	12	NULL	NULL	NULL	float unsigned			select,insert,update,references		Default	Default
-def	test	tb4	f213	38	NULL	YES	double unsigned	NULL	NULL	22	NULL	NULL	NULL	double unsigned			select,insert,update,references		Default	Default
-def	test	tb4	f214	39	NULL	YES	float unsigned zerofill	NULL	NULL	12	NULL	NULL	NULL	float unsigned zerofill			select,insert,update,references		Default	Default
-def	test	tb4	f215	40	NULL	YES	double unsigned zerofill	NULL	NULL	22	NULL	NULL	NULL	double unsigned zerofill			select,insert,update,references		Default	Default
-def	test	tb4	f216	41	NULL	YES	float unsigned zerofill	NULL	NULL	12	NULL	NULL	NULL	float unsigned zerofill			select,insert,update,references		Default	Default
-def	test	tb4	f217	42	NULL	YES	double unsigned zerofill	NULL	NULL	22	NULL	NULL	NULL	double unsigned zerofill			select,insert,update,references		Default	Default
+def	test	tb4	f212	37	NULL	YES	float	NULL	NULL	12	NULL	NULL	NULL	float unsigned			select,insert,update,references		Default	Default
+def	test	tb4	f213	38	NULL	YES	double	NULL	NULL	22	NULL	NULL	NULL	double unsigned			select,insert,update,references		Default	Default
+def	test	tb4	f214	39	NULL	YES	float	NULL	NULL	12	NULL	NULL	NULL	float unsigned zerofill			select,insert,update,references		Default	Default
+def	test	tb4	f215	40	NULL	YES	double	NULL	NULL	22	NULL	NULL	NULL	double unsigned zerofill			select,insert,update,references		Default	Default
+def	test	tb4	f216	41	NULL	YES	float	NULL	NULL	12	NULL	NULL	NULL	float unsigned zerofill			select,insert,update,references		Default	Default
+def	test	tb4	f217	42	NULL	YES	double	NULL	NULL	22	NULL	NULL	NULL	double unsigned zerofill			select,insert,update,references		Default	Default
 def	test	tb4	f218	43	NULL	YES	date	NULL	NULL	NULL	NULL	NULL	NULL	date			select,insert,update,references		Default	Default
 def	test	tb4	f219	44	NULL	YES	time	NULL	NULL	NULL	NULL	NULL	NULL	time			select,insert,update,references		Default	Default
 def	test	tb4	f220	45	NULL	YES	datetime	NULL	NULL	NULL	NULL	NULL	NULL	datetime			select,insert,update,references		Default	Default
@@ -698,7 +698,7 @@ def	test	tb4	f239	64	NULL	YES	varbinary
 def	test	tb4	f240	65	NULL	YES	varchar	120	120	NULL	NULL	latin1	latin1_swedish_ci	varchar(120)			select,insert,update,references		Default	Default
 def	test	tb4	f241	66	NULL	YES	char	100	100	NULL	NULL	latin1	latin1_swedish_ci	char(100)			select,insert,update,references		Default	Default
 def	test	tb4	f242	67	NULL	YES	bit	NULL	NULL	30	NULL	NULL	NULL	bit(30)			select,insert,update,references		Default	Default
-def	test1	tb2	f100	42	00000000000000000008.8	NO	double unsigned zerofill	NULL	NULL	22	NULL	NULL	NULL	double unsigned zerofill			select,insert,update,references		Default	Default
+def	test1	tb2	f100	42	00000000000000000008.8	NO	double	NULL	NULL	22	NULL	NULL	NULL	double unsigned zerofill			select,insert,update,references		Default	Default
 def	test1	tb2	f101	43	2000-01-01	NO	date	NULL	NULL	NULL	NULL	NULL	NULL	date			select,insert,update,references		Default	Default
 def	test1	tb2	f102	44	00:00:20	NO	time	NULL	NULL	NULL	NULL	NULL	NULL	time			select,insert,update,references		Default	Default
 def	test1	tb2	f103	45	0002-02-02 00:00:00	NO	datetime	NULL	NULL	NULL	NULL	NULL	NULL	datetime			select,insert,update,references		Default	Default
@@ -731,32 +731,32 @@ def	test1	tb2	f70	12	NULL	YES	decimal	NU
 def	test1	tb2	f71	13	NULL	YES	decimal	NULL	NULL	10	0	NULL	NULL	decimal(10,0) unsigned zerofill			select,insert,update,references		Default	Default
 def	test1	tb2	f72	14	NULL	YES	decimal	NULL	NULL	63	30	NULL	NULL	decimal(63,30) unsigned zerofill			select,insert,update,references		Default	Default
 def	test1	tb2	f73	15	NULL	YES	double	NULL	NULL	22	NULL	NULL	NULL	double			select,insert,update,references		Default	Default
-def	test1	tb2	f74	16	NULL	YES	double unsigned	NULL	NULL	22	NULL	NULL	NULL	double unsigned			select,insert,update,references		Default	Default
-def	test1	tb2	f75	17	NULL	YES	double unsigned zerofill	NULL	NULL	22	NULL	NULL	NULL	double unsigned zerofill			select,insert,update,references		Default	Default
-def	test1	tb2	f76	18	NULL	YES	double unsigned zerofill	NULL	NULL	22	NULL	NULL	NULL	double unsigned zerofill			select,insert,update,references		Default	Default
+def	test1	tb2	f74	16	NULL	YES	double	NULL	NULL	22	NULL	NULL	NULL	double unsigned			select,insert,update,references		Default	Default
+def	test1	tb2	f75	17	NULL	YES	double	NULL	NULL	22	NULL	NULL	NULL	double unsigned zerofill			select,insert,update,references		Default	Default
+def	test1	tb2	f76	18	NULL	YES	double	NULL	NULL	22	NULL	NULL	NULL	double unsigned zerofill			select,insert,update,references		Default	Default
 def	test1	tb2	f77	19	7.7	YES	double	NULL	NULL	22	NULL	NULL	NULL	double			select,insert,update,references		Default	Default
-def	test1	tb2	f78	20	7.7	YES	double unsigned	NULL	NULL	22	NULL	NULL	NULL	double unsigned			select,insert,update,references		Default	Default
-def	test1	tb2	f79	21	00000000000000000007.7	YES	double unsigned zerofill	NULL	NULL	22	NULL	NULL	NULL	double unsigned zerofill			select,insert,update,references		Default	Default
-def	test1	tb2	f80	22	00000000000000000008.8	YES	double unsigned zerofill	NULL	NULL	22	NULL	NULL	NULL	double unsigned zerofill			select,insert,update,references		Default	Default
+def	test1	tb2	f78	20	7.7	YES	double	NULL	NULL	22	NULL	NULL	NULL	double unsigned			select,insert,update,references		Default	Default
+def	test1	tb2	f79	21	00000000000000000007.7	YES	double	NULL	NULL	22	NULL	NULL	NULL	double unsigned zerofill			select,insert,update,references		Default	Default
+def	test1	tb2	f80	22	00000000000000000008.8	YES	double	NULL	NULL	22	NULL	NULL	NULL	double unsigned zerofill			select,insert,update,references		Default	Default
 def	test1	tb2	f81	23	8.8	NO	float	NULL	NULL	12	NULL	NULL	NULL	float			select,insert,update,references		Default	Default
-def	test1	tb2	f82	24	8.8	NO	float unsigned	NULL	NULL	12	NULL	NULL	NULL	float unsigned			select,insert,update,references		Default	Default
-def	test1	tb2	f83	25	0000000008.8	NO	float unsigned zerofill	NULL	NULL	12	NULL	NULL	NULL	float unsigned zerofill			select,insert,update,references		Default	Default
-def	test1	tb2	f84	26	0000000008.8	NO	float unsigned zerofill	NULL	NULL	12	NULL	NULL	NULL	float unsigned zerofill			select,insert,update,references		Default	Default
+def	test1	tb2	f82	24	8.8	NO	float	NULL	NULL	12	NULL	NULL	NULL	float unsigned			select,insert,update,references		Default	Default
+def	test1	tb2	f83	25	0000000008.8	NO	float	NULL	NULL	12	NULL	NULL	NULL	float unsigned zerofill			select,insert,update,references		Default	Default
+def	test1	tb2	f84	26	0000000008.8	NO	float	NULL	NULL	12	NULL	NULL	NULL	float unsigned zerofill			select,insert,update,references		Default	Default
 def	test1	tb2	f85	27	8.8	NO	float	NULL	NULL	12	NULL	NULL	NULL	float			select,insert,update,references		Default	Default
 def	test1	tb2	f86	28	8.8	NO	float	NULL	NULL	12	NULL	NULL	NULL	float			select,insert,update,references		Default	Default
-def	test1	tb2	f87	29	8.8	NO	float unsigned	NULL	NULL	12	NULL	NULL	NULL	float unsigned			select,insert,update,references		Default	Default
-def	test1	tb2	f88	30	8.8	NO	float unsigned	NULL	NULL	12	NULL	NULL	NULL	float unsigned			select,insert,update,references		Default	Default
-def	test1	tb2	f89	31	0000000008.8	NO	float unsigned zerofill	NULL	NULL	12	NULL	NULL	NULL	float unsigned zerofill			select,insert,update,references		Default	Default
-def	test1	tb2	f90	32	0000000008.8	NO	float unsigned zerofill	NULL	NULL	12	NULL	NULL	NULL	float unsigned zerofill			select,insert,update,references		Default	Default
-def	test1	tb2	f91	33	0000000008.8	NO	float unsigned zerofill	NULL	NULL	12	NULL	NULL	NULL	float unsigned zerofill			select,insert,update,references		Default	Default
-def	test1	tb2	f92	34	0000000008.8	NO	float unsigned zerofill	NULL	NULL	12	NULL	NULL	NULL	float unsigned zerofill			select,insert,update,references		Default	Default
+def	test1	tb2	f87	29	8.8	NO	float	NULL	NULL	12	NULL	NULL	NULL	float unsigned			select,insert,update,references		Default	Default
+def	test1	tb2	f88	30	8.8	NO	float	NULL	NULL	12	NULL	NULL	NULL	float unsigned			select,insert,update,references		Default	Default
+def	test1	tb2	f89	31	0000000008.8	NO	float	NULL	NULL	12	NULL	NULL	NULL	float unsigned zerofill			select,insert,update,references		Default	Default
+def	test1	tb2	f90	32	0000000008.8	NO	float	NULL	NULL	12	NULL	NULL	NULL	float unsigned zerofill			select,insert,update,references		Default	Default
+def	test1	tb2	f91	33	0000000008.8	NO	float	NULL	NULL	12	NULL	NULL	NULL	float unsigned zerofill			select,insert,update,references		Default	Default
+def	test1	tb2	f92	34	0000000008.8	NO	float	NULL	NULL	12	NULL	NULL	NULL	float unsigned zerofill			select,insert,update,references		Default	Default
 def	test1	tb2	f93	35	8.8	NO	float	NULL	NULL	12	NULL	NULL	NULL	float			select,insert,update,references		Default	Default
 def	test1	tb2	f94	36	8.8	NO	double	NULL	NULL	22	NULL	NULL	NULL	double			select,insert,update,references		Default	Default
-def	test1	tb2	f95	37	8.8	NO	float unsigned	NULL	NULL	12	NULL	NULL	NULL	float unsigned			select,insert,update,references		Default	Default
-def	test1	tb2	f96	38	8.8	NO	double unsigned	NULL	NULL	22	NULL	NULL	NULL	double unsigned			select,insert,update,references		Default	Default
-def	test1	tb2	f97	39	0000000008.8	NO	float unsigned zerofill	NULL	NULL	12	NULL	NULL	NULL	float unsigned zerofill			select,insert,update,references		Default	Default
-def	test1	tb2	f98	40	00000000000000000008.8	NO	double unsigned zerofill	NULL	NULL	22	NULL	NULL	NULL	double unsigned zerofill			select,insert,update,references		Default	Default
-def	test1	tb2	f99	41	0000000008.8	NO	float unsigned zerofill	NULL	NULL	12	NULL	NULL	NULL	float unsigned zerofill			select,insert,update,references		Default	Default
+def	test1	tb2	f95	37	8.8	NO	float	NULL	NULL	12	NULL	NULL	NULL	float unsigned			select,insert,update,references		Default	Default
+def	test1	tb2	f96	38	8.8	NO	double	NULL	NULL	22	NULL	NULL	NULL	double unsigned			select,insert,update,references		Default	Default
+def	test1	tb2	f97	39	0000000008.8	NO	float	NULL	NULL	12	NULL	NULL	NULL	float unsigned zerofill			select,insert,update,references		Default	Default
+def	test1	tb2	f98	40	00000000000000000008.8	NO	double	NULL	NULL	22	NULL	NULL	NULL	double unsigned zerofill			select,insert,update,references		Default	Default
+def	test1	tb2	f99	41	0000000008.8	NO	float	NULL	NULL	12	NULL	NULL	NULL	float unsigned zerofill			select,insert,update,references		Default	Default
 def	test4	t6	f1	1	NULL	YES	char	20	20	NULL	NULL	latin1	latin1_swedish_ci	char(20)			select,insert,update,references		Default	Default
 def	test4	t6	f2	2	NULL	YES	char	25	25	NULL	NULL	latin1	latin1_swedish_ci	char(25)			select,insert,update,references		Default	Default
 def	test4	t6	f3	3	NULL	YES	date	NULL	NULL	NULL	NULL	NULL	NULL	date			select,insert,update,references		Default	Default
@@ -817,11 +817,7 @@ NULL	date	NULL	NULL
 NULL	datetime	NULL	NULL
 NULL	decimal	NULL	NULL
 NULL	double	NULL	NULL
-NULL	double unsigned	NULL	NULL
-NULL	double unsigned zerofill	NULL	NULL
 NULL	float	NULL	NULL
-NULL	float unsigned	NULL	NULL
-NULL	float unsigned zerofill	NULL	NULL
 NULL	int	NULL	NULL
 NULL	mediumint	NULL	NULL
 NULL	smallint	NULL	NULL
@@ -963,33 +959,33 @@ NULL	test	tb2	f70	decimal	NULL	NULL	NULL
 NULL	test	tb2	f71	decimal	NULL	NULL	NULL	NULL	decimal(10,0) unsigned zerofill
 NULL	test	tb2	f72	decimal	NULL	NULL	NULL	NULL	decimal(63,30) unsigned zerofill
 NULL	test	tb2	f73	double	NULL	NULL	NULL	NULL	double
-NULL	test	tb2	f74	double unsigned	NULL	NULL	NULL	NULL	double unsigned
-NULL	test	tb2	f75	double unsigned zerofill	NULL	NULL	NULL	NULL	double unsigned zerofill
-NULL	test	tb2	f76	double unsigned zerofill	NULL	NULL	NULL	NULL	double unsigned zerofill
+NULL	test	tb2	f74	double	NULL	NULL	NULL	NULL	double unsigned
+NULL	test	tb2	f75	double	NULL	NULL	NULL	NULL	double unsigned zerofill
+NULL	test	tb2	f76	double	NULL	NULL	NULL	NULL	double unsigned zerofill
 NULL	test	tb2	f77	double	NULL	NULL	NULL	NULL	double
-NULL	test	tb2	f78	double unsigned	NULL	NULL	NULL	NULL	double unsigned
-NULL	test	tb2	f79	double unsigned zerofill	NULL	NULL	NULL	NULL	double unsigned zerofill
-NULL	test	tb2	f80	double unsigned zerofill	NULL	NULL	NULL	NULL	double unsigned zerofill
+NULL	test	tb2	f78	double	NULL	NULL	NULL	NULL	double unsigned
+NULL	test	tb2	f79	double	NULL	NULL	NULL	NULL	double unsigned zerofill
+NULL	test	tb2	f80	double	NULL	NULL	NULL	NULL	double unsigned zerofill
 NULL	test	tb2	f81	float	NULL	NULL	NULL	NULL	float
-NULL	test	tb2	f82	float unsigned	NULL	NULL	NULL	NULL	float unsigned
-NULL	test	tb2	f83	float unsigned zerofill	NULL	NULL	NULL	NULL	float unsigned zerofill
-NULL	test	tb2	f84	float unsigned zerofill	NULL	NULL	NULL	NULL	float unsigned zerofill
+NULL	test	tb2	f82	float	NULL	NULL	NULL	NULL	float unsigned
+NULL	test	tb2	f83	float	NULL	NULL	NULL	NULL	float unsigned zerofill
+NULL	test	tb2	f84	float	NULL	NULL	NULL	NULL	float unsigned zerofill
 NULL	test	tb2	f85	float	NULL	NULL	NULL	NULL	float
 NULL	test	tb2	f86	float	NULL	NULL	NULL	NULL	float
-NULL	test	tb2	f87	float unsigned	NULL	NULL	NULL	NULL	float unsigned
-NULL	test	tb2	f88	float unsigned	NULL	NULL	NULL	NULL	float unsigned
-NULL	test	tb2	f89	float unsigned zerofill	NULL	NULL	NULL	NULL	float unsigned zerofill
-NULL	test	tb2	f90	float unsigned zerofill	NULL	NULL	NULL	NULL	float unsigned zerofill
-NULL	test	tb2	f91	float unsigned zerofill	NULL	NULL	NULL	NULL	float unsigned zerofill
-NULL	test	tb2	f92	float unsigned zerofill	NULL	NULL	NULL	NULL	float unsigned zerofill
+NULL	test	tb2	f87	float	NULL	NULL	NULL	NULL	float unsigned
+NULL	test	tb2	f88	float	NULL	NULL	NULL	NULL	float unsigned
+NULL	test	tb2	f89	float	NULL	NULL	NULL	NULL	float unsigned zerofill
+NULL	test	tb2	f90	float	NULL	NULL	NULL	NULL	float unsigned zerofill
+NULL	test	tb2	f91	float	NULL	NULL	NULL	NULL	float unsigned zerofill
+NULL	test	tb2	f92	float	NULL	NULL	NULL	NULL	float unsigned zerofill
 NULL	test	tb2	f93	float	NULL	NULL	NULL	NULL	float
 NULL	test	tb2	f94	double	NULL	NULL	NULL	NULL	double
-NULL	test	tb2	f95	float unsigned	NULL	NULL	NULL	NULL	float unsigned
-NULL	test	tb2	f96	double unsigned	NULL	NULL	NULL	NULL	double unsigned
-NULL	test	tb2	f97	float unsigned zerofill	NULL	NULL	NULL	NULL	float unsigned zerofill
-NULL	test	tb2	f98	double unsigned zerofill	NULL	NULL	NULL	NULL	double unsigned zerofill
-NULL	test	tb2	f99	float unsigned zerofill	NULL	NULL	NULL	NULL	float unsigned zerofill
-NULL	test	tb2	f100	double unsigned zerofill	NULL	NULL	NULL	NULL	double unsigned zerofill
+NULL	test	tb2	f95	float	NULL	NULL	NULL	NULL	float unsigned
+NULL	test	tb2	f96	double	NULL	NULL	NULL	NULL	double unsigned
+NULL	test	tb2	f97	float	NULL	NULL	NULL	NULL	float unsigned zerofill
+NULL	test	tb2	f98	double	NULL	NULL	NULL	NULL	double unsigned zerofill
+NULL	test	tb2	f99	float	NULL	NULL	NULL	NULL	float unsigned zerofill
+NULL	test	tb2	f100	double	NULL	NULL	NULL	NULL	double unsigned zerofill
 NULL	test	tb2	f101	date	NULL	NULL	NULL	NULL	date
 NULL	test	tb2	f102	time	NULL	NULL	NULL	NULL	time
 NULL	test	tb2	f103	datetime	NULL	NULL	NULL	NULL	datetime
@@ -1080,33 +1076,33 @@ NULL	test	tb4	f187	decimal	NULL	NULL	NUL
 NULL	test	tb4	f188	decimal	NULL	NULL	NULL	NULL	decimal(10,0) unsigned zerofill
 NULL	test	tb4	f189	decimal	NULL	NULL	NULL	NULL	decimal(63,30) unsigned zerofill
 NULL	test	tb4	f190	double	NULL	NULL	NULL	NULL	double
-NULL	test	tb4	f191	double unsigned	NULL	NULL	NULL	NULL	double unsigned
-NULL	test	tb4	f192	double unsigned zerofill	NULL	NULL	NULL	NULL	double unsigned zerofill
-NULL	test	tb4	f193	double unsigned zerofill	NULL	NULL	NULL	NULL	double unsigned zerofill
+NULL	test	tb4	f191	double	NULL	NULL	NULL	NULL	double unsigned
+NULL	test	tb4	f192	double	NULL	NULL	NULL	NULL	double unsigned zerofill
+NULL	test	tb4	f193	double	NULL	NULL	NULL	NULL	double unsigned zerofill
 NULL	test	tb4	f194	double	NULL	NULL	NULL	NULL	double
-NULL	test	tb4	f195	double unsigned	NULL	NULL	NULL	NULL	double unsigned
-NULL	test	tb4	f196	double unsigned zerofill	NULL	NULL	NULL	NULL	double unsigned zerofill
-NULL	test	tb4	f197	double unsigned zerofill	NULL	NULL	NULL	NULL	double unsigned zerofill
+NULL	test	tb4	f195	double	NULL	NULL	NULL	NULL	double unsigned
+NULL	test	tb4	f196	double	NULL	NULL	NULL	NULL	double unsigned zerofill
+NULL	test	tb4	f197	double	NULL	NULL	NULL	NULL	double unsigned zerofill
 NULL	test	tb4	f198	float	NULL	NULL	NULL	NULL	float
-NULL	test	tb4	f199	float unsigned	NULL	NULL	NULL	NULL	float unsigned
-NULL	test	tb4	f200	float unsigned zerofill	NULL	NULL	NULL	NULL	float unsigned zerofill
-NULL	test	tb4	f201	float unsigned zerofill	NULL	NULL	NULL	NULL	float unsigned zerofill
+NULL	test	tb4	f199	float	NULL	NULL	NULL	NULL	float unsigned
+NULL	test	tb4	f200	float	NULL	NULL	NULL	NULL	float unsigned zerofill
+NULL	test	tb4	f201	float	NULL	NULL	NULL	NULL	float unsigned zerofill
 NULL	test	tb4	f202	float	NULL	NULL	NULL	NULL	float
 NULL	test	tb4	f203	float	NULL	NULL	NULL	NULL	float
-NULL	test	tb4	f204	float unsigned	NULL	NULL	NULL	NULL	float unsigned
-NULL	test	tb4	f205	float unsigned	NULL	NULL	NULL	NULL	float unsigned
-NULL	test	tb4	f206	float unsigned zerofill	NULL	NULL	NULL	NULL	float unsigned zerofill
-NULL	test	tb4	f207	float unsigned zerofill	NULL	NULL	NULL	NULL	float unsigned zerofill
-NULL	test	tb4	f208	float unsigned zerofill	NULL	NULL	NULL	NULL	float unsigned zerofill
-NULL	test	tb4	f209	float unsigned zerofill	NULL	NULL	NULL	NULL	float unsigned zerofill
+NULL	test	tb4	f204	float	NULL	NULL	NULL	NULL	float unsigned
+NULL	test	tb4	f205	float	NULL	NULL	NULL	NULL	float unsigned
+NULL	test	tb4	f206	float	NULL	NULL	NULL	NULL	float unsigned zerofill
+NULL	test	tb4	f207	float	NULL	NULL	NULL	NULL	float unsigned zerofill
+NULL	test	tb4	f208	float	NULL	NULL	NULL	NULL	float unsigned zerofill
+NULL	test	tb4	f209	float	NULL	NULL	NULL	NULL	float unsigned zerofill
 NULL	test	tb4	f210	float	NULL	NULL	NULL	NULL	float
 NULL	test	tb4	f211	double	NULL	NULL	NULL	NULL	double
-NULL	test	tb4	f212	float unsigned	NULL	NULL	NULL	NULL	float unsigned
-NULL	test	tb4	f213	double unsigned	NULL	NULL	NULL	NULL	double unsigned
-NULL	test	tb4	f214	float unsigned zerofill	NULL	NULL	NULL	NULL	float unsigned zerofill
-NULL	test	tb4	f215	double unsigned zerofill	NULL	NULL	NULL	NULL	double unsigned zerofill
-NULL	test	tb4	f216	float unsigned zerofill	NULL	NULL	NULL	NULL	float unsigned zerofill
-NULL	test	tb4	f217	double unsigned zerofill	NULL	NULL	NULL	NULL	double unsigned zerofill
+NULL	test	tb4	f212	float	NULL	NULL	NULL	NULL	float unsigned
+NULL	test	tb4	f213	double	NULL	NULL	NULL	NULL	double unsigned
+NULL	test	tb4	f214	float	NULL	NULL	NULL	NULL	float unsigned zerofill
+NULL	test	tb4	f215	double	NULL	NULL	NULL	NULL	double unsigned zerofill
+NULL	test	tb4	f216	float	NULL	NULL	NULL	NULL	float unsigned zerofill
+NULL	test	tb4	f217	double	NULL	NULL	NULL	NULL	double unsigned zerofill
 NULL	test	tb4	f218	date	NULL	NULL	NULL	NULL	date
 NULL	test	tb4	f219	time	NULL	NULL	NULL	NULL	time
 NULL	test	tb4	f220	datetime	NULL	NULL	NULL	NULL	datetime
@@ -1147,33 +1143,33 @@ NULL	test1	tb2	f70	decimal	NULL	NULL	NUL
 NULL	test1	tb2	f71	decimal	NULL	NULL	NULL	NULL	decimal(10,0) unsigned zerofill
 NULL	test1	tb2	f72	decimal	NULL	NULL	NULL	NULL	decimal(63,30) unsigned zerofill
 NULL	test1	tb2	f73	double	NULL	NULL	NULL	NULL	double
-NULL	test1	tb2	f74	double unsigned	NULL	NULL	NULL	NULL	double unsigned
-NULL	test1	tb2	f75	double unsigned zerofill	NULL	NULL	NULL	NULL	double unsigned zerofill
-NULL	test1	tb2	f76	double unsigned zerofill	NULL	NULL	NULL	NULL	double unsigned zerofill
+NULL	test1	tb2	f74	double	NULL	NULL	NULL	NULL	double unsigned
+NULL	test1	tb2	f75	double	NULL	NULL	NULL	NULL	double unsigned zerofill
+NULL	test1	tb2	f76	double	NULL	NULL	NULL	NULL	double unsigned zerofill
 NULL	test1	tb2	f77	double	NULL	NULL	NULL	NULL	double
-NULL	test1	tb2	f78	double unsigned	NULL	NULL	NULL	NULL	double unsigned
-NULL	test1	tb2	f79	double unsigned zerofill	NULL	NULL	NULL	NULL	double unsigned zerofill
-NULL	test1	tb2	f80	double unsigned zerofill	NULL	NULL	NULL	NULL	double unsigned zerofill
+NULL	test1	tb2	f78	double	NULL	NULL	NULL	NULL	double unsigned
+NULL	test1	tb2	f79	double	NULL	NULL	NULL	NULL	double unsigned zerofill
+NULL	test1	tb2	f80	double	NULL	NULL	NULL	NULL	double unsigned zerofill
 NULL	test1	tb2	f81	float	NULL	NULL	NULL	NULL	float
-NULL	test1	tb2	f82	float unsigned	NULL	NULL	NULL	NULL	float unsigned
-NULL	test1	tb2	f83	float unsigned zerofill	NULL	NULL	NULL	NULL	float unsigned zerofill
-NULL	test1	tb2	f84	float unsigned zerofill	NULL	NULL	NULL	NULL	float unsigned zerofill
+NULL	test1	tb2	f82	float	NULL	NULL	NULL	NULL	float unsigned
+NULL	test1	tb2	f83	float	NULL	NULL	NULL	NULL	float unsigned zerofill
+NULL	test1	tb2	f84	float	NULL	NULL	NULL	NULL	float unsigned zerofill
 NULL	test1	tb2	f85	float	NULL	NULL	NULL	NULL	float
 NULL	test1	tb2	f86	float	NULL	NULL	NULL	NULL	float
-NULL	test1	tb2	f87	float unsigned	NULL	NULL	NULL	NULL	float unsigned
-NULL	test1	tb2	f88	float unsigned	NULL	NULL	NULL	NULL	float unsigned
-NULL	test1	tb2	f89	float unsigned zerofill	NULL	NULL	NULL	NULL	float unsigned zerofill
-NULL	test1	tb2	f90	float unsigned zerofill	NULL	NULL	NULL	NULL	float unsigned zerofill
-NULL	test1	tb2	f91	float unsigned zerofill	NULL	NULL	NULL	NULL	float unsigned zerofill
-NULL	test1	tb2	f92	float unsigned zerofill	NULL	NULL	NULL	NULL	float unsigned zerofill
+NULL	test1	tb2	f87	float	NULL	NULL	NULL	NULL	float unsigned
+NULL	test1	tb2	f88	float	NULL	NULL	NULL	NULL	float unsigned
+NULL	test1	tb2	f89	float	NULL	NULL	NULL	NULL	float unsigned zerofill
+NULL	test1	tb2	f90	float	NULL	NULL	NULL	NULL	float unsigned zerofill
+NULL	test1	tb2	f91	float	NULL	NULL	NULL	NULL	float unsigned zerofill
+NULL	test1	tb2	f92	float	NULL	NULL	NULL	NULL	float unsigned zerofill
 NULL	test1	tb2	f93	float	NULL	NULL	NULL	NULL	float
 NULL	test1	tb2	f94	double	NULL	NULL	NULL	NULL	double
-NULL	test1	tb2	f95	float unsigned	NULL	NULL	NULL	NULL	float unsigned
-NULL	test1	tb2	f96	double unsigned	NULL	NULL	NULL	NULL	double unsigned
-NULL	test1	tb2	f97	float unsigned zerofill	NULL	NULL	NULL	NULL	float unsigned zerofill
-NULL	test1	tb2	f98	double unsigned zerofill	NULL	NULL	NULL	NULL	double unsigned zerofill
-NULL	test1	tb2	f99	float unsigned zerofill	NULL	NULL	NULL	NULL	float unsigned zerofill
-NULL	test1	tb2	f100	double unsigned zerofill	NULL	NULL	NULL	NULL	double unsigned zerofill
+NULL	test1	tb2	f95	float	NULL	NULL	NULL	NULL	float unsigned
+NULL	test1	tb2	f96	double	NULL	NULL	NULL	NULL	double unsigned
+NULL	test1	tb2	f97	float	NULL	NULL	NULL	NULL	float unsigned zerofill
+NULL	test1	tb2	f98	double	NULL	NULL	NULL	NULL	double unsigned zerofill
+NULL	test1	tb2	f99	float	NULL	NULL	NULL	NULL	float unsigned zerofill
+NULL	test1	tb2	f100	double	NULL	NULL	NULL	NULL	double unsigned zerofill
 NULL	test1	tb2	f101	date	NULL	NULL	NULL	NULL	date
 NULL	test1	tb2	f102	time	NULL	NULL	NULL	NULL	time
 NULL	test1	tb2	f103	datetime	NULL	NULL	NULL	NULL	datetime

=== modified file 'mysql-test/suite/funcs_1/r/memory_views.result'
--- a/mysql-test/suite/funcs_1/r/memory_views.result	2009-02-14 16:10:30 +0000
+++ b/mysql-test/suite/funcs_1/r/memory_views.result	2009-02-27 15:52:30 +0000
@@ -21369,7 +21369,7 @@ ERROR 42S02: Table 'test.v1' doesn't exi
 CHECK TABLE v1;
 Table	Op	Msg_type	Msg_text
 test.v1	check	Error	Table 'test.v1' doesn't exist
-test.v1	check	error	Corrupt
+test.v1	check	status	Operation failed
 DESCRIBE v1;
 ERROR 42S02: Table 'test.v1' doesn't exist
 EXPLAIN SELECT * FROM v1;

=== modified file 'mysql-test/suite/funcs_1/r/myisam_views.result'
--- a/mysql-test/suite/funcs_1/r/myisam_views.result	2009-02-14 16:10:30 +0000
+++ b/mysql-test/suite/funcs_1/r/myisam_views.result	2009-03-04 12:22:13 +0000
@@ -23044,7 +23044,7 @@ ERROR 42S02: Table 'test.v1' doesn't exi
 CHECK TABLE v1;
 Table	Op	Msg_type	Msg_text
 test.v1	check	Error	Table 'test.v1' doesn't exist
-test.v1	check	error	Corrupt
+test.v1	check	status	Operation failed
 DESCRIBE v1;
 ERROR 42S02: Table 'test.v1' doesn't exist
 EXPLAIN SELECT * FROM v1;

=== modified file 'mysql-test/suite/funcs_1/r/ndb_views.result'
--- a/mysql-test/suite/funcs_1/r/ndb_views.result	2009-02-16 10:30:55 +0000
+++ b/mysql-test/suite/funcs_1/r/ndb_views.result	2009-02-27 15:52:30 +0000
@@ -21367,7 +21367,7 @@ ERROR 42S02: Table 'test.v1' doesn't exi
 CHECK TABLE v1;
 Table	Op	Msg_type	Msg_text
 test.v1	check	Error	Table 'test.v1' doesn't exist
-test.v1	check	error	Corrupt
+test.v1	check	status	Operation failed
 DESCRIBE v1;
 ERROR 42S02: Table 'test.v1' doesn't exist
 EXPLAIN SELECT * FROM v1;

=== modified file 'mysql-test/suite/maria/r/maria-preload.result'
--- a/mysql-test/suite/maria/r/maria-preload.result	2008-12-10 17:04:38 +0000
+++ b/mysql-test/suite/maria/r/maria-preload.result	2009-02-27 15:52:30 +0000
@@ -136,7 +136,7 @@ MARIA_PAGECACHE_READS	274
 load index into cache t3, t2 key (primary,b) ;
 Table	Op	Msg_type	Msg_text
 test.t3	preload_keys	Error	Table 'test.t3' doesn't exist
-test.t3	preload_keys	error	Corrupt
+test.t3	preload_keys	status	Operation failed
 test.t2	preload_keys	status	OK
 select g.variable_name,g.variable_value-i.variable_value from information_schema.global_status as g,initial as i where g.variable_name like "Maria_pagecache_read%" and g.variable_name=i.variable_name order by g.variable_name desc;
 variable_name	g.variable_value-i.variable_value
@@ -149,7 +149,7 @@ MARIA_PAGECACHE_READS	317
 load index into cache t3 key (b), t2 key (c) ;
 Table	Op	Msg_type	Msg_text
 test.t3	preload_keys	Error	Table 'test.t3' doesn't exist
-test.t3	preload_keys	error	Corrupt
+test.t3	preload_keys	status	Operation failed
 test.t2	preload_keys	Error	Key 'c' doesn't exist in table 't2'
 test.t2	preload_keys	status	Operation failed
 select g.variable_name,g.variable_value-i.variable_value from information_schema.global_status as g,initial as i where g.variable_name like "Maria_pagecache_read%" and g.variable_name=i.variable_name order by g.variable_name desc;

=== modified file 'mysql-test/suite/rpl/r/rpl_failed_optimize.result'
--- a/mysql-test/suite/rpl/r/rpl_failed_optimize.result	2008-08-11 18:02:03 +0000
+++ b/mysql-test/suite/rpl/r/rpl_failed_optimize.result	2009-02-27 15:06:23 +0000
@@ -17,7 +17,7 @@ Error	1205	Lock wait timeout exceeded; t
 OPTIMIZE TABLE non_existing;
 Table	Op	Msg_type	Msg_text
 test.non_existing	optimize	Error	Table 'test.non_existing' doesn't exist
-test.non_existing	optimize	error	Corrupt
+test.non_existing	optimize	status	Operation failed
 select * from t1;
 a
 1

=== modified file 'mysql-test/suite/rpl/r/rpl_heartbeat.result'
--- a/mysql-test/suite/rpl/r/rpl_heartbeat.result	2009-02-23 13:30:29 +0000
+++ b/mysql-test/suite/rpl/r/rpl_heartbeat.result	2009-02-27 09:09:00 +0000
@@ -11,13 +11,13 @@ Variable_name	Slave_heartbeat_period
 Value	5.000
 change master to master_host='127.0.0.1',master_port=MASTER_PORT, master_user='root', master_heartbeat_period= 0.0009999;
 Warnings:
-Warning	1678	The requested value for the heartbeat period  is less than 1 msec.  The period is reset to zero which means no heartbeats will be sending
+Warning	1624	The requested value for the heartbeat period  is less than 1 msec.  The period is reset to zero which means no heartbeats will be sending
 show status like 'Slave_heartbeat_period';;
 Variable_name	Slave_heartbeat_period
 Value	0.000
 change master to master_host='127.0.0.1',master_port=MASTER_PORT, master_user='root', master_heartbeat_period= 4294967;
 Warnings:
-Warning	1678	The requested value for the heartbeat period  exceeds the value of `slave_net_timeout' sec.  A sensible value for the period should be less than the timeout.
+Warning	1624	The requested value for the heartbeat period  exceeds the value of `slave_net_timeout' sec.  A sensible value for the period should be less than the timeout.
 show status like 'Slave_heartbeat_period';;
 Variable_name	Slave_heartbeat_period
 Value	4294967.000
@@ -29,7 +29,7 @@ reset slave;
 set @@global.slave_net_timeout= 5;
 change master to master_host='127.0.0.1',master_port=MASTER_PORT, master_user='root', master_heartbeat_period= 5.001;
 Warnings:
-Warning	1678	The requested value for the heartbeat period  exceeds the value of `slave_net_timeout' sec.  A sensible value for the period should be less than the timeout.
+Warning	1624	The requested value for the heartbeat period  exceeds the value of `slave_net_timeout' sec.  A sensible value for the period should be less than the timeout.
 show status like 'Slave_heartbeat_period';;
 Variable_name	Slave_heartbeat_period
 Value	5.001
@@ -41,7 +41,7 @@ Variable_name	Slave_heartbeat_period
 Value	4.000
 set @@global.slave_net_timeout= 3 /* must be a warning */;
 Warnings:
-Warning	1678	The currect value for master_heartbeat_period exceeds the new value of `slave_net_timeout' sec. A sensible value for the period should be less than the timeout.
+Warning	1624	The currect value for master_heartbeat_period exceeds the new value of `slave_net_timeout' sec. A sensible value for the period should be less than the timeout.
 reset slave;
 drop table if exists t1;
 set @@global.slave_net_timeout= 20;

=== modified file 'mysql-test/suite/rpl/r/rpl_locktrans_falcon.result'
--- a/mysql-test/suite/rpl/r/rpl_locktrans_falcon.result	2008-12-15 12:41:31 +0000
+++ b/mysql-test/suite/rpl/r/rpl_locktrans_falcon.result	2009-03-06 12:24:03 +0000
@@ -27,8 +27,8 @@ UNLOCK TABLES;
 # Valid syntax for transactional locks.
 LOCK TABLE t1 IN SHARE MODE, t2 IN EXCLUSIVE MODE;
 Warnings:
-Warning	1622	Converted to non-transactional lock on 't1'
-Warning	1622	Converted to non-transactional lock on 't2'
+Warning	1630	Converted to non-transactional lock on 't1'
+Warning	1630	Converted to non-transactional lock on 't2'
 UNLOCK TABLES;
 #
 # Valid syntax for aliases with and without 'AS'.
@@ -36,19 +36,19 @@ LOCK TABLE t1 AS a1 READ, t2 a2 WRITE;
 UNLOCK TABLES;
 LOCK TABLE t1 AS a1 IN SHARE MODE, t2 a2 IN EXCLUSIVE MODE;
 Warnings:
-Warning	1622	Converted to non-transactional lock on 'a1'
-Warning	1622	Converted to non-transactional lock on 'a2'
+Warning	1630	Converted to non-transactional lock on 'a1'
+Warning	1630	Converted to non-transactional lock on 'a2'
 UNLOCK TABLES;
 #
 # Transactional locks taken on a view.
 CREATE VIEW v1 AS SELECT * FROM t1, t2 WHERE t1.c1 = t2.c2;
 LOCK TABLE v1 IN SHARE MODE;
 Warnings:
-Warning	1622	Converted to non-transactional lock on 't1'
-Warning	1622	Converted to non-transactional lock on 't2'
+Warning	1630	Converted to non-transactional lock on 't1'
+Warning	1630	Converted to non-transactional lock on 't2'
 LOCK TABLE v1 IN EXCLUSIVE MODE;
 Warnings:
-Warning	1622	Converted to non-transactional lock on 'v1'
+Warning	1630	Converted to non-transactional lock on 'v1'
 UNLOCK TABLES;
 DROP VIEW v1;
 #
@@ -101,12 +101,12 @@ ERROR 42000: You have an error in your S
 # Implicit lock method conversion due to mix in statement.
 LOCK TABLE t1 READ, t2 IN EXCLUSIVE MODE;
 Warnings:
-Warning	1622	Converted to non-transactional lock on 't2'
+Warning	1630	Converted to non-transactional lock on 't2'
 UNLOCK TABLES;
 # Lock t1 share (converted to read), t2 write.
 LOCK TABLE t1 IN SHARE MODE, t2 WRITE;
 Warnings:
-Warning	1622	Converted to non-transactional lock on 't1'
+Warning	1630	Converted to non-transactional lock on 't1'
 # Show t1 is read locked, t2 write locked.
 INSERT INTO t1 SELECT * FROM t2;
 ERROR HY000: Table 't1' was locked with a READ lock and can't be updated
@@ -117,8 +117,8 @@ INSERT INTO t2 SELECT * FROM t1;
 # Lock t1 exclusive (converted to write), t2 share (converted to read).
 LOCK TABLE t1 IN EXCLUSIVE MODE, t2 IN SHARE MODE;
 Warnings:
-Warning	1622	Converted to non-transactional lock on 't1'
-Warning	1622	Converted to non-transactional lock on 't2'
+Warning	1630	Converted to non-transactional lock on 't1'
+Warning	1630	Converted to non-transactional lock on 't2'
 # Show t1 is write locked, t2 read locked.
 INSERT INTO t1 SELECT * FROM t2;
 INSERT INTO t2 SELECT * FROM t1;
@@ -142,8 +142,8 @@ ERROR HY000: Cannot convert to non-trans
 ## Error is reported on first table only. Show both errors:
 SHOW WARNINGS;
 Level	Code	Message
-Error	1623	Cannot convert to non-transactional lock in strict mode on 't1'
-Error	1623	Cannot convert to non-transactional lock in strict mode on 't2'
+Error	1631	Cannot convert to non-transactional lock in strict mode on 't1'
+Error	1631	Cannot convert to non-transactional lock in strict mode on 't2'
 UNLOCK TABLES;
 SET @@SQL_MODE= @wl3561_save_sql_mode;
 #
@@ -163,7 +163,7 @@ CREATE TABLE t4 (c4 INT) ENGINE= MyISAM;
 # Request a transactional lock, which is converted to non-transactional.
 LOCK TABLE t4 IN SHARE MODE;
 Warnings:
-Warning	1622	Converted to non-transactional lock on 't4'
+Warning	1630	Converted to non-transactional lock on 't4'
 # Try a conflict with the existing non-transactional lock.
 INSERT INTO t4 VALUES(444);
 ERROR HY000: Table 't4' was locked with a READ lock and can't be updated
@@ -180,8 +180,8 @@ CREATE VIEW v1 AS SELECT * FROM t3, t4 W
 # Request a share lock on the view, which is converted to read locks.
 LOCK TABLE v1 IN SHARE MODE;
 Warnings:
-Warning	1622	Converted to non-transactional lock on 't3'
-Warning	1622	Converted to non-transactional lock on 't4'
+Warning	1630	Converted to non-transactional lock on 't3'
+Warning	1630	Converted to non-transactional lock on 't4'
 # Show that read locks on the base tables prohibit writing ...
 INSERT INTO t3 SELECT * FROM t4;
 ERROR HY000: Table 't3' was locked with a READ lock and can't be updated
@@ -197,7 +197,7 @@ COUNT(*)
 ## Report conversion on view due to existing non-transactional locks.
 LOCK TABLE v1 IN EXCLUSIVE MODE;
 Warnings:
-Warning	1622	Converted to non-transactional lock on 'v1'
+Warning	1630	Converted to non-transactional lock on 'v1'
 INSERT INTO t3 VALUES(333);
 INSERT INTO t4 VALUES(444);
 INSERT INTO t1 VALUES(111);
@@ -206,8 +206,8 @@ UNLOCK TABLES;
 ## Now report conversion on base table again.
 LOCK TABLE v1 IN EXCLUSIVE MODE;
 Warnings:
-Warning	1622	Converted to non-transactional lock on 't3'
-Warning	1622	Converted to non-transactional lock on 't4'
+Warning	1630	Converted to non-transactional lock on 't3'
+Warning	1630	Converted to non-transactional lock on 't4'
 INSERT INTO t3 VALUES(333);
 INSERT INTO t4 VALUES(444);
 INSERT INTO t1 VALUES(111);

=== modified file 'mysql-test/suite/rpl/r/rpl_locktrans_innodb.result'
--- a/mysql-test/suite/rpl/r/rpl_locktrans_innodb.result	2009-01-26 16:03:39 +0000
+++ b/mysql-test/suite/rpl/r/rpl_locktrans_innodb.result	2009-03-06 12:24:03 +0000
@@ -101,12 +101,12 @@ ERROR 42000: You have an error in your S
 # Implicit lock method conversion due to mix in statement.
 LOCK TABLE t1 READ, t2 IN EXCLUSIVE MODE;
 Warnings:
-Warning	1622	Converted to non-transactional lock on 't2'
+Warning	1630	Converted to non-transactional lock on 't2'
 UNLOCK TABLES;
 # Lock t1 share (converted to read), t2 write.
 LOCK TABLE t1 IN SHARE MODE, t2 WRITE;
 Warnings:
-Warning	1622	Converted to non-transactional lock on 't1'
+Warning	1630	Converted to non-transactional lock on 't1'
 # Show t1 is read locked, t2 write locked.
 INSERT INTO t1 SELECT * FROM t2;
 ERROR HY000: Table 't1' was locked with a READ lock and can't be updated
@@ -117,8 +117,8 @@ INSERT INTO t2 SELECT * FROM t1;
 # Lock t1 exclusive (converted to write), t2 share (converted to read).
 LOCK TABLE t1 IN EXCLUSIVE MODE, t2 IN SHARE MODE;
 Warnings:
-Warning	1622	Converted to non-transactional lock on 't1'
-Warning	1622	Converted to non-transactional lock on 't2'
+Warning	1630	Converted to non-transactional lock on 't1'
+Warning	1630	Converted to non-transactional lock on 't2'
 # Show t1 is write locked, t2 read locked.
 INSERT INTO t1 SELECT * FROM t2;
 INSERT INTO t2 SELECT * FROM t1;
@@ -142,8 +142,8 @@ ERROR HY000: Cannot convert to non-trans
 ## Error is reported on first table only. Show both errors:
 SHOW WARNINGS;
 Level	Code	Message
-Error	1623	Cannot convert to non-transactional lock in strict mode on 't1'
-Error	1623	Cannot convert to non-transactional lock in strict mode on 't2'
+Error	1631	Cannot convert to non-transactional lock in strict mode on 't1'
+Error	1631	Cannot convert to non-transactional lock in strict mode on 't2'
 UNLOCK TABLES;
 SET @@SQL_MODE= @wl3561_save_sql_mode;
 #
@@ -163,7 +163,7 @@ CREATE TABLE t4 (c4 INT) ENGINE= MyISAM;
 # Request a transactional lock, which is converted to non-transactional.
 LOCK TABLE t4 IN SHARE MODE;
 Warnings:
-Warning	1622	Converted to non-transactional lock on 't4'
+Warning	1630	Converted to non-transactional lock on 't4'
 # Try a conflict with the existing non-transactional lock.
 INSERT INTO t4 VALUES(444);
 ERROR HY000: Table 't4' was locked with a READ lock and can't be updated
@@ -180,8 +180,8 @@ CREATE VIEW v1 AS SELECT * FROM t3, t4 W
 # Request a share lock on the view, which is converted to read locks.
 LOCK TABLE v1 IN SHARE MODE;
 Warnings:
-Warning	1622	Converted to non-transactional lock on 't3'
-Warning	1622	Converted to non-transactional lock on 't4'
+Warning	1630	Converted to non-transactional lock on 't3'
+Warning	1630	Converted to non-transactional lock on 't4'
 # Show that read locks on the base tables prohibit writing ...
 INSERT INTO t3 SELECT * FROM t4;
 ERROR HY000: Table 't3' was locked with a READ lock and can't be updated
@@ -197,7 +197,7 @@ COUNT(*)
 ## Report conversion on view due to existing non-transactional locks.
 LOCK TABLE v1 IN EXCLUSIVE MODE;
 Warnings:
-Warning	1622	Converted to non-transactional lock on 'v1'
+Warning	1630	Converted to non-transactional lock on 'v1'
 INSERT INTO t3 VALUES(333);
 INSERT INTO t4 VALUES(444);
 INSERT INTO t1 VALUES(111);
@@ -206,8 +206,8 @@ UNLOCK TABLES;
 ## Now report conversion on base table again.
 LOCK TABLE v1 IN EXCLUSIVE MODE;
 Warnings:
-Warning	1622	Converted to non-transactional lock on 't3'
-Warning	1622	Converted to non-transactional lock on 't4'
+Warning	1630	Converted to non-transactional lock on 't3'
+Warning	1630	Converted to non-transactional lock on 't4'
 INSERT INTO t3 VALUES(333);
 INSERT INTO t4 VALUES(444);
 INSERT INTO t1 VALUES(111);

=== modified file 'mysql-test/suite/rpl/r/rpl_locktrans_myisam.result'
--- a/mysql-test/suite/rpl/r/rpl_locktrans_myisam.result	2008-12-24 10:48:24 +0000
+++ b/mysql-test/suite/rpl/r/rpl_locktrans_myisam.result	2009-03-06 12:24:03 +0000
@@ -68,8 +68,8 @@ UNLOCK TABLES;
 # Valid syntax for transactional locks.
 LOCK TABLE t1 IN SHARE MODE, t2 IN EXCLUSIVE MODE;
 Warnings:
-Warning	1622	Converted to non-transactional lock on 't1'
-Warning	1622	Converted to non-transactional lock on 't2'
+Warning	1630	Converted to non-transactional lock on 't1'
+Warning	1630	Converted to non-transactional lock on 't2'
 UNLOCK TABLES;
 #
 # Valid syntax for aliases with and without 'AS'.
@@ -77,19 +77,19 @@ LOCK TABLE t1 AS a1 READ, t2 a2 WRITE;
 UNLOCK TABLES;
 LOCK TABLE t1 AS a1 IN SHARE MODE, t2 a2 IN EXCLUSIVE MODE;
 Warnings:
-Warning	1622	Converted to non-transactional lock on 'a1'
-Warning	1622	Converted to non-transactional lock on 'a2'
+Warning	1630	Converted to non-transactional lock on 'a1'
+Warning	1630	Converted to non-transactional lock on 'a2'
 UNLOCK TABLES;
 #
 # Transactional locks taken on a view.
 CREATE VIEW v1 AS SELECT * FROM t1, t2 WHERE t1.c1 = t2.c2;
 LOCK TABLE v1 IN SHARE MODE;
 Warnings:
-Warning	1622	Converted to non-transactional lock on 't1'
-Warning	1622	Converted to non-transactional lock on 't2'
+Warning	1630	Converted to non-transactional lock on 't1'
+Warning	1630	Converted to non-transactional lock on 't2'
 LOCK TABLE v1 IN EXCLUSIVE MODE;
 Warnings:
-Warning	1622	Converted to non-transactional lock on 'v1'
+Warning	1630	Converted to non-transactional lock on 'v1'
 UNLOCK TABLES;
 DROP VIEW v1;
 #
@@ -142,12 +142,12 @@ ERROR 42000: You have an error in your S
 # Implicit lock method conversion due to mix in statement.
 LOCK TABLE t1 READ, t2 IN EXCLUSIVE MODE;
 Warnings:
-Warning	1622	Converted to non-transactional lock on 't2'
+Warning	1630	Converted to non-transactional lock on 't2'
 UNLOCK TABLES;
 # Lock t1 share (converted to read), t2 write.
 LOCK TABLE t1 IN SHARE MODE, t2 WRITE;
 Warnings:
-Warning	1622	Converted to non-transactional lock on 't1'
+Warning	1630	Converted to non-transactional lock on 't1'
 # Show t1 is read locked, t2 write locked.
 INSERT INTO t1 SELECT * FROM t2;
 ERROR HY000: Table 't1' was locked with a READ lock and can't be updated
@@ -158,8 +158,8 @@ INSERT INTO t2 SELECT * FROM t1;
 # Lock t1 exclusive (converted to write), t2 share (converted to read).
 LOCK TABLE t1 IN EXCLUSIVE MODE, t2 IN SHARE MODE;
 Warnings:
-Warning	1622	Converted to non-transactional lock on 't1'
-Warning	1622	Converted to non-transactional lock on 't2'
+Warning	1630	Converted to non-transactional lock on 't1'
+Warning	1630	Converted to non-transactional lock on 't2'
 # Show t1 is write locked, t2 read locked.
 INSERT INTO t1 SELECT * FROM t2;
 INSERT INTO t2 SELECT * FROM t1;
@@ -183,8 +183,8 @@ ERROR HY000: Cannot convert to non-trans
 ## Error is reported on first table only. Show both errors:
 SHOW WARNINGS;
 Level	Code	Message
-Error	1623	Cannot convert to non-transactional lock in strict mode on 't1'
-Error	1623	Cannot convert to non-transactional lock in strict mode on 't2'
+Error	1631	Cannot convert to non-transactional lock in strict mode on 't1'
+Error	1631	Cannot convert to non-transactional lock in strict mode on 't2'
 UNLOCK TABLES;
 SET @@SQL_MODE= @wl3561_save_sql_mode;
 #
@@ -204,7 +204,7 @@ CREATE TABLE t4 (c4 INT) ENGINE= MyISAM;
 # Request a transactional lock, which is converted to non-transactional.
 LOCK TABLE t4 IN SHARE MODE;
 Warnings:
-Warning	1622	Converted to non-transactional lock on 't4'
+Warning	1630	Converted to non-transactional lock on 't4'
 # Try a conflict with the existing non-transactional lock.
 INSERT INTO t4 VALUES(444);
 ERROR HY000: Table 't4' was locked with a READ lock and can't be updated
@@ -221,8 +221,8 @@ CREATE VIEW v1 AS SELECT * FROM t3, t4 W
 # Request a share lock on the view, which is converted to read locks.
 LOCK TABLE v1 IN SHARE MODE;
 Warnings:
-Warning	1622	Converted to non-transactional lock on 't3'
-Warning	1622	Converted to non-transactional lock on 't4'
+Warning	1630	Converted to non-transactional lock on 't3'
+Warning	1630	Converted to non-transactional lock on 't4'
 # Show that read locks on the base tables prohibit writing ...
 INSERT INTO t3 SELECT * FROM t4;
 ERROR HY000: Table 't3' was locked with a READ lock and can't be updated
@@ -238,7 +238,7 @@ COUNT(*)
 ## Report conversion on view due to existing non-transactional locks.
 LOCK TABLE v1 IN EXCLUSIVE MODE;
 Warnings:
-Warning	1622	Converted to non-transactional lock on 'v1'
+Warning	1630	Converted to non-transactional lock on 'v1'
 INSERT INTO t3 VALUES(333);
 INSERT INTO t4 VALUES(444);
 INSERT INTO t1 VALUES(111);
@@ -247,8 +247,8 @@ UNLOCK TABLES;
 ## Now report conversion on base table again.
 LOCK TABLE v1 IN EXCLUSIVE MODE;
 Warnings:
-Warning	1622	Converted to non-transactional lock on 't3'
-Warning	1622	Converted to non-transactional lock on 't4'
+Warning	1630	Converted to non-transactional lock on 't3'
+Warning	1630	Converted to non-transactional lock on 't4'
 INSERT INTO t3 VALUES(333);
 INSERT INTO t4 VALUES(444);
 INSERT INTO t1 VALUES(111);

=== added file 'mysql-test/suite/rpl/r/rpl_mixed_bit_pk.result'
--- a/mysql-test/suite/rpl/r/rpl_mixed_bit_pk.result	1970-01-01 00:00:00 +0000
+++ b/mysql-test/suite/rpl/r/rpl_mixed_bit_pk.result	2009-03-05 19:54:53 +0000
@@ -0,0 +1,32 @@
+stop slave;
+drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
+reset master;
+reset slave;
+drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
+start slave;
+DROP TABLE IF EXISTS t1,t2,t3,t4,t5,t6,t7,t8;
+CREATE TABLE t1 (`bit_key` bit, `bit` bit, key (`bit_key` )) ENGINE=MyISAM;
+CREATE TABLE t2 (`bit_key` bit(4), `bit` bit, key (`bit_key` )) ENGINE=MyISAM;
+CREATE TABLE t3 (`bit_key` bit(7), `bit` bit, key (`bit_key` )) ENGINE=MyISAM;
+CREATE TABLE t4 (`bit_key` bit(8), `bit` bit, key (`bit_key` )) ENGINE=MyISAM;
+CREATE TABLE t5 (`bit_key` bit(9), `bit` bit, key (`bit_key` )) ENGINE=MyISAM;
+CREATE TABLE t6 (`bit_key` bit(14), `bit` bit, key (`bit_key` )) ENGINE=MyISAM;
+CREATE TABLE t7 (`bit_key` bit(15), `bit` bit, key (`bit_key` )) ENGINE=MyISAM;
+CREATE TABLE t8 (`bit_key` bit(16), `bit` bit, key (`bit_key` )) ENGINE=MyISAM;
+INSERT INTO `t1` ( `bit` ) VALUES ( 0 );
+DELETE FROM `t1` WHERE `bit` < 2 LIMIT 4;
+INSERT INTO `t2` ( `bit` ) VALUES ( 0 );
+DELETE FROM `t2` WHERE `bit` < 2 LIMIT 4;
+INSERT INTO `t3` ( `bit` ) VALUES ( 0 );
+DELETE FROM `t3` WHERE `bit` < 2 LIMIT 4;
+INSERT INTO `t4` ( `bit` ) VALUES ( 0 );
+DELETE FROM `t4` WHERE `bit` < 2 LIMIT 4;
+INSERT INTO `t5` ( `bit` ) VALUES ( 0 );
+DELETE FROM `t5` WHERE `bit` < 2 LIMIT 4;
+INSERT INTO `t6` ( `bit` ) VALUES ( 0 );
+DELETE FROM `t6` WHERE `bit` < 2 LIMIT 4;
+INSERT INTO `t7` ( `bit` ) VALUES ( 0 );
+DELETE FROM `t7` WHERE `bit` < 2 LIMIT 4;
+INSERT INTO `t8` ( `bit` ) VALUES ( 0 );
+DELETE FROM `t8` WHERE `bit` < 2 LIMIT 4;
+DROP TABLE t1, t2, t3, t4, t5, t6, t7, t8;

=== added file 'mysql-test/suite/rpl/t/rpl_mixed_bit_pk.test'
--- a/mysql-test/suite/rpl/t/rpl_mixed_bit_pk.test	1970-01-01 00:00:00 +0000
+++ b/mysql-test/suite/rpl/t/rpl_mixed_bit_pk.test	2009-03-05 19:54:53 +0000
@@ -0,0 +1,78 @@
+#
+# BUG
+# ---
+#  BUG#39753: Replication failure on MIXED + bit + myisam + no PK
+#
+# Description
+# -----------
+#  Simple statements against a bit column cause failure in mixed-mode
+#  replication.
+#
+#  Implementation is as follows:
+#     i) A table with two bit fields is created. One of them is a key.
+#    ii) A record is inserted without specifying the key value.
+#   iii) The record is deleted using a where clause that matches it.
+#    iv) repeat i-iii) for bit key that has different size, generating
+#        different extra bits values 
+#     v) The slave is synchronized with master 
+#    vi) The table is dropped on master and the slave is re-synchronized
+#        with master.
+#
+#  Step v) made the bug evident before the patch, as the slave would 
+#  fail to find the correspondent row in its database (although it did
+#  the insert in step ii) ).
+#
+# Obs
+# --- 
+#  This test is based on the "how to repeat" section from the bug report.
+#
+#
+
+--source include/master-slave.inc
+
+--disable_warnings
+# setup
+
+DROP TABLE IF EXISTS t1,t2,t3,t4,t5,t6,t7,t8;
+CREATE TABLE t1 (`bit_key` bit, `bit` bit, key (`bit_key` )) ENGINE=MyISAM;
+CREATE TABLE t2 (`bit_key` bit(4), `bit` bit, key (`bit_key` )) ENGINE=MyISAM;
+CREATE TABLE t3 (`bit_key` bit(7), `bit` bit, key (`bit_key` )) ENGINE=MyISAM;
+CREATE TABLE t4 (`bit_key` bit(8), `bit` bit, key (`bit_key` )) ENGINE=MyISAM;
+CREATE TABLE t5 (`bit_key` bit(9), `bit` bit, key (`bit_key` )) ENGINE=MyISAM;
+CREATE TABLE t6 (`bit_key` bit(14), `bit` bit, key (`bit_key` )) ENGINE=MyISAM;
+CREATE TABLE t7 (`bit_key` bit(15), `bit` bit, key (`bit_key` )) ENGINE=MyISAM;
+CREATE TABLE t8 (`bit_key` bit(16), `bit` bit, key (`bit_key` )) ENGINE=MyISAM;
+
+# insert and delete
+INSERT INTO `t1` ( `bit` ) VALUES ( 0 );
+DELETE FROM `t1` WHERE `bit` < 2 LIMIT 4;
+
+INSERT INTO `t2` ( `bit` ) VALUES ( 0 );
+DELETE FROM `t2` WHERE `bit` < 2 LIMIT 4;
+
+INSERT INTO `t3` ( `bit` ) VALUES ( 0 );
+DELETE FROM `t3` WHERE `bit` < 2 LIMIT 4;
+
+INSERT INTO `t4` ( `bit` ) VALUES ( 0 );
+DELETE FROM `t4` WHERE `bit` < 2 LIMIT 4;
+
+INSERT INTO `t5` ( `bit` ) VALUES ( 0 );
+DELETE FROM `t5` WHERE `bit` < 2 LIMIT 4;
+
+INSERT INTO `t6` ( `bit` ) VALUES ( 0 );
+DELETE FROM `t6` WHERE `bit` < 2 LIMIT 4;
+
+INSERT INTO `t7` ( `bit` ) VALUES ( 0 );
+DELETE FROM `t7` WHERE `bit` < 2 LIMIT 4;
+
+INSERT INTO `t8` ( `bit` ) VALUES ( 0 );
+DELETE FROM `t8` WHERE `bit` < 2 LIMIT 4;
+
+
+--enable_warnings
+sync_slave_with_master;
+
+# clean up 
+connection master;
+DROP TABLE t1, t2, t3, t4, t5, t6, t7, t8;
+sync_slave_with_master;

=== modified file 'mysql-test/t/comment_column.test'
--- a/mysql-test/t/comment_column.test	2007-06-30 21:25:11 +0000
+++ b/mysql-test/t/comment_column.test	2009-03-06 12:24:03 +0000
@@ -72,7 +72,7 @@ SHOW CREATE TABLE t1;
 
 # comment overflow(error)
 set sql_mode='TRADITIONAL';
---error ER_WRONG_STRING_LENGTH
+--error ER_TOO_LONG_FIELD_COMMENT
 ALTER TABLE t1 ADD COLUMN c12 INTEGER COMMENT 'ABCDEfghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdABCDEfghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdABCDEfghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcd';
 SELECT table_comment,char_length(table_comment) FROM information_schema.tables WHERE table_name='t1';
 SELECT column_comment,char_length(column_comment) FROM information_schema.columns WHERE table_name='t1';
@@ -105,7 +105,7 @@ SHOW CREATE TABLE t1;
 # comment overflow(error)
 DROP TABLE t1;
 set sql_mode='TRADITIONAL';
---error ER_WRONG_STRING_LENGTH
+--error ER_TOO_LONG_FIELD_COMMENT
 create table t1 (c1 VARCHAR(10) NOT NULL COMMENT 'Abcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcd', c2 INTEGER COMMENT 'aBcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdaBcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcd',c3 INTEGER COMMENT '012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789', c4 INTEGER, c5 INTEGER, c6 INTEGER, c7 INTEGER, INDEX i1 (c1) COMMENT 'i1 comment',INDEX i2(c2) 
 ) COMMENT='ABCDEFGHIJabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcd';
 SELECT table_comment,char_length(table_comment) FROM information_schema.tables WHERE table_name='t1';

=== modified file 'mysql-test/t/comment_table.test'
--- a/mysql-test/t/comment_table.test	2007-06-30 21:25:11 +0000
+++ b/mysql-test/t/comment_table.test	2009-03-06 12:24:03 +0000
@@ -48,7 +48,7 @@ SELECT column_comment,char_length(column
 drop table t1;
 SET SQL_MODE='TRADITIONAL';
 
---error ER_WRONG_STRING_LENGTH
+--error ER_TOO_LONG_TABLE_COMMENT
 create table t1 (c1 VARCHAR(10) NOT NULL COMMENT 'c1 comment', c2 INTEGER,c3 INTEGER COMMENT '012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789', c4 INTEGER, c5 INTEGER, c6 INTEGER, c7 INTEGER, INDEX i1 (c1) COMMENT 'i1 comment',INDEX i2(c2) 
 ) COMMENT='abcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcde';
 SELECT table_comment,char_length(table_comment) FROM information_schema.tables WHERE table_name='t1';

=== modified file 'mysql-test/t/ddl_i18n_koi8r.test'
--- a/mysql-test/t/ddl_i18n_koi8r.test	2008-02-22 10:30:33 +0000
+++ b/mysql-test/t/ddl_i18n_koi8r.test	2009-03-04 12:45:49 +0000
@@ -143,10 +143,12 @@ set names koi8r|
 
 #  - Dump mysqltest1;
 
+--let $views_dump1 = $MYSQLTEST_VARDIR/tmp/ddl_i18n_koi8r.views.mysqltest1.sql
+
 --echo
 --echo ---> Dumping mysqltest1 to ddl_i18n_koi8r.views.mysqltest1.sql
 
---exec $MYSQL_DUMP --character-sets-dir=$CHARSETSDIR --databases mysqltest1 > $MYSQLTEST_VARDIR/tmp/ddl_i18n_koi8r.views.mysqltest1.sql
+--exec $MYSQL_DUMP --character-sets-dir=$CHARSETSDIR --databases mysqltest1 > $views_dump1
 
 #   - Clean mysqltest1;
 
@@ -161,7 +163,9 @@ DROP DATABASE mysqltest1|
 --echo
 
 --echo ---> Restoring mysqltest1...
---exec $MYSQL test < $MYSQLTEST_VARDIR/tmp/ddl_i18n_koi8r.views.mysqltest1.sql
+--exec $MYSQL test < $views_dump1
+
+--remove_file $views_dump1
 
 #
 # Third-round checks.
@@ -398,6 +402,9 @@ set names koi8r|
 
 #  - Dump mysqltest1, mysqltest2;
 
+--let $sp_dump1 = $MYSQLTEST_VARDIR/tmp/ddl_i18n_koi8r.sp.mysqltest1.sql
+--let $sp_dump2 = $MYSQLTEST_VARDIR/tmp/ddl_i18n_koi8r.sp.mysqltest2.sql
+
 --echo
 --echo ---> Dump of mysqltest1
 
@@ -406,7 +413,7 @@ set names koi8r|
 --echo
 --echo ---> Dumping mysqltest1 to ddl_i18n_koi8r.sp.mysqltest1.sql
 
---exec $MYSQL_DUMP --character-sets-dir=$CHARSETSDIR --compact --routines --databases mysqltest1 > $MYSQLTEST_VARDIR/tmp/ddl_i18n_koi8r.sp.mysqltest1.sql
+--exec $MYSQL_DUMP --character-sets-dir=$CHARSETSDIR --compact --routines --databases mysqltest1 > $sp_dump1
 
 --echo
 --echo ---> Dump of mysqltest2
@@ -416,7 +423,7 @@ set names koi8r|
 --echo
 --echo ---> Dumping mysqltest2 to ddl_i18n_koi8r.sp.mysqltest2.sql
 
---exec $MYSQL_DUMP --character-sets-dir=$CHARSETSDIR --compact --routines --databases mysqltest2 > $MYSQLTEST_VARDIR/tmp/ddl_i18n_koi8r.sp.mysqltest2.sql
+--exec $MYSQL_DUMP --character-sets-dir=$CHARSETSDIR --compact --routines --databases mysqltest2 > $sp_dump2
 
 #   - Clean mysqltest1, mysqltest2;
 
@@ -432,10 +439,13 @@ DROP DATABASE mysqltest2|
 --echo
 
 --echo ---> Restoring mysqltest1...
---exec $MYSQL test < $MYSQLTEST_VARDIR/tmp/ddl_i18n_koi8r.sp.mysqltest1.sql
+--exec $MYSQL test < $sp_dump1
 
 --echo ---> Restoring mysqltest2...
---exec $MYSQL test < $MYSQLTEST_VARDIR/tmp/ddl_i18n_koi8r.sp.mysqltest2.sql
+--exec $MYSQL test < $sp_dump2
+
+--remove_file $sp_dump1
+--remove_file $sp_dump2
 
 #
 # Third-round checks.
@@ -669,6 +679,9 @@ use mysqltest1|
 
 #  - Dump mysqltest1, mysqltest2;
 
+--let $triggers_dump1 = $MYSQLTEST_VARDIR/tmp/ddl_i18n_koi8r.triggers.mysqltest1.sql
+--let $triggers_dump2 = $MYSQLTEST_VARDIR/tmp/ddl_i18n_koi8r.triggers.mysqltest2.sql
+
 --echo
 --echo ---> Dump of mysqltest1
 
@@ -677,7 +690,7 @@ use mysqltest1|
 --echo
 --echo ---> Dumping mysqltest1 to ddl_i18n_koi8r.triggers.mysqltest1.sql
 
---exec $MYSQL_DUMP --character-sets-dir=$CHARSETSDIR --compact --triggers --databases mysqltest1 > $MYSQLTEST_VARDIR/tmp/ddl_i18n_koi8r.triggers.mysqltest1.sql
+--exec $MYSQL_DUMP --character-sets-dir=$CHARSETSDIR --compact --triggers --databases mysqltest1 > $triggers_dump1
 
 --echo
 --echo ---> Dump of mysqltest2
@@ -687,7 +700,7 @@ use mysqltest1|
 --echo
 --echo ---> Dumping mysqltest2 to ddl_i18n_koi8r.triggers.mysqltest2.sql
 
---exec $MYSQL_DUMP --character-sets-dir=$CHARSETSDIR --compact --triggers --databases mysqltest2 > $MYSQLTEST_VARDIR/tmp/ddl_i18n_koi8r.triggers.mysqltest2.sql
+--exec $MYSQL_DUMP --character-sets-dir=$CHARSETSDIR --compact --triggers --databases mysqltest2 > $triggers_dump2
 
 #   - Clean mysqltest1, mysqltest2;
 
@@ -703,10 +716,13 @@ DROP DATABASE mysqltest2|
 --echo
 
 --echo ---> Restoring mysqltest1...
---exec $MYSQL test < $MYSQLTEST_VARDIR/tmp/ddl_i18n_koi8r.triggers.mysqltest1.sql
+--exec $MYSQL test < $triggers_dump1
 
 --echo ---> Restoring mysqltest2...
---exec $MYSQL test < $MYSQLTEST_VARDIR/tmp/ddl_i18n_koi8r.triggers.mysqltest2.sql
+--exec $MYSQL test < $triggers_dump2
+
+--remove_file $triggers_dump1
+--remove_file $triggers_dump2
 
 #
 # Third-round checks.
@@ -924,6 +940,9 @@ set names koi8r|
 
 #  - Dump mysqltest1, mysqltest2;
 
+--let $events_dump1 = $MYSQLTEST_VARDIR/tmp/ddl_i18n_koi8r.events.mysqltest1.sql
+--let $events_dump2 = $MYSQLTEST_VARDIR/tmp/ddl_i18n_koi8r.events.mysqltest2.sql
+
 --echo
 --echo ---> Dump of mysqltest1
 
@@ -932,7 +951,7 @@ set names koi8r|
 --echo
 --echo ---> Dumping mysqltest1 to ddl_i18n_koi8r.events.mysqltest1.sql
 
---exec $MYSQL_DUMP --character-sets-dir=$CHARSETSDIR --compact --events --databases mysqltest1 > $MYSQLTEST_VARDIR/tmp/ddl_i18n_koi8r.events.mysqltest1.sql
+--exec $MYSQL_DUMP --character-sets-dir=$CHARSETSDIR --compact --events --databases mysqltest1 > $events_dump1
 
 --echo
 --echo ---> Dump of mysqltest2
@@ -942,7 +961,7 @@ set names koi8r|
 --echo
 --echo ---> Dumping mysqltest2 to ddl_i18n_koi8r.events.mysqltest2.sql
 
---exec $MYSQL_DUMP --character-sets-dir=$CHARSETSDIR --compact --events --databases mysqltest2 > $MYSQLTEST_VARDIR/tmp/ddl_i18n_koi8r.events.mysqltest2.sql
+--exec $MYSQL_DUMP --character-sets-dir=$CHARSETSDIR --compact --events --databases mysqltest2 > $events_dump2
 
 #   - Clean mysqltest1, mysqltest2;
 
@@ -958,10 +977,13 @@ DROP DATABASE mysqltest2|
 --echo
 
 --echo ---> Restoring mysqltest1...
---exec $MYSQL test < $MYSQLTEST_VARDIR/tmp/ddl_i18n_koi8r.events.mysqltest1.sql
+--exec $MYSQL test < $events_dump1
 
 --echo ---> Restoring mysqltest2...
---exec $MYSQL test < $MYSQLTEST_VARDIR/tmp/ddl_i18n_koi8r.events.mysqltest2.sql
+--exec $MYSQL test < $events_dump2
+
+--remove_file $events_dump1
+--remove_file $events_dump2
 
 #
 # Third-round checks.

=== modified file 'mysql-test/t/ddl_i18n_utf8.test'
--- a/mysql-test/t/ddl_i18n_utf8.test	2008-02-22 10:30:33 +0000
+++ b/mysql-test/t/ddl_i18n_utf8.test	2009-03-04 12:45:49 +0000
@@ -143,10 +143,12 @@ set names utf8|
 
 #  - Dump mysqltest1;
 
+--let $views_dump1 = $MYSQLTEST_VARDIR/tmp/ddl_i18n_utf8views.mysqltest1.sql
+
 --echo
 --echo ---> Dumping mysqltest1 to ddl_i18n_utf8views.mysqltest1.sql
 
---exec $MYSQL_DUMP --character-sets-dir=$CHARSETSDIR --databases mysqltest1 > $MYSQLTEST_VARDIR/tmp/ddl_i18n_utf8views.mysqltest1.sql
+--exec $MYSQL_DUMP --character-sets-dir=$CHARSETSDIR --databases mysqltest1 > $views_dump1
 
 #   - Clean mysqltest1;
 
@@ -161,7 +163,9 @@ DROP DATABASE mysqltest1|
 --echo
 
 --echo ---> Restoring mysqltest1...
---exec $MYSQL test < $MYSQLTEST_VARDIR/tmp/ddl_i18n_utf8views.mysqltest1.sql
+--exec $MYSQL test < $views_dump1
+
+--remove_file $views_dump1
 
 #
 # Third-round checks.
@@ -398,6 +402,9 @@ set names utf8|
 
 #  - Dump mysqltest1, mysqltest2;
 
+--let $sp_dump1 = $MYSQLTEST_VARDIR/tmp/ddl_i18n_utf8sp.mysqltest1.sql
+--let $sp_dump2 = $MYSQLTEST_VARDIR/tmp/ddl_i18n_utf8sp.mysqltest2.sql
+
 --echo
 --echo ---> Dump of mysqltest1
 
@@ -406,7 +413,7 @@ set names utf8|
 --echo
 --echo ---> Dumping mysqltest1 to ddl_i18n_utf8sp.mysqltest1.sql
 
---exec $MYSQL_DUMP --character-sets-dir=$CHARSETSDIR --compact --routines --databases mysqltest1 > $MYSQLTEST_VARDIR/tmp/ddl_i18n_utf8sp.mysqltest1.sql
+--exec $MYSQL_DUMP --character-sets-dir=$CHARSETSDIR --compact --routines --databases mysqltest1 > $sp_dump1
 
 --echo
 --echo ---> Dump of mysqltest2
@@ -416,7 +423,7 @@ set names utf8|
 --echo
 --echo ---> Dumping mysqltest2 to ddl_i18n_utf8sp.mysqltest2.sql
 
---exec $MYSQL_DUMP --character-sets-dir=$CHARSETSDIR --compact --routines --databases mysqltest2 > $MYSQLTEST_VARDIR/tmp/ddl_i18n_utf8sp.mysqltest2.sql
+--exec $MYSQL_DUMP --character-sets-dir=$CHARSETSDIR --compact --routines --databases mysqltest2 > $sp_dump2
 
 #   - Clean mysqltest1, mysqltest2;
 
@@ -432,10 +439,13 @@ DROP DATABASE mysqltest2|
 --echo
 
 --echo ---> Restoring mysqltest1...
---exec $MYSQL test < $MYSQLTEST_VARDIR/tmp/ddl_i18n_utf8sp.mysqltest1.sql
+--exec $MYSQL test < $sp_dump1
 
 --echo ---> Restoring mysqltest2...
---exec $MYSQL test < $MYSQLTEST_VARDIR/tmp/ddl_i18n_utf8sp.mysqltest2.sql
+--exec $MYSQL test < $sp_dump2
+
+--remove_file $sp_dump1
+--remove_file $sp_dump2
 
 #
 # Third-round checks.
@@ -669,6 +679,9 @@ use mysqltest1|
 
 #  - Dump mysqltest1, mysqltest2;
 
+--let $triggers_dump1 = $MYSQLTEST_VARDIR/tmp/ddl_i18n_utf8triggers.mysqltest1.sql
+--let $triggers_dump2 = $MYSQLTEST_VARDIR/tmp/ddl_i18n_utf8triggers.mysqltest2.sql
+
 --echo
 --echo ---> Dump of mysqltest1
 
@@ -677,7 +690,7 @@ use mysqltest1|
 --echo
 --echo ---> Dumping mysqltest1 to ddl_i18n_utf8triggers.mysqltest1.sql
 
---exec $MYSQL_DUMP --character-sets-dir=$CHARSETSDIR --compact --triggers --databases mysqltest1 > $MYSQLTEST_VARDIR/tmp/ddl_i18n_utf8triggers.mysqltest1.sql
+--exec $MYSQL_DUMP --character-sets-dir=$CHARSETSDIR --compact --triggers --databases mysqltest1 > $triggers_dump1
 
 --echo
 --echo ---> Dump of mysqltest2
@@ -687,7 +700,7 @@ use mysqltest1|
 --echo
 --echo ---> Dumping mysqltest2 to ddl_i18n_utf8triggers.mysqltest2.sql
 
---exec $MYSQL_DUMP --character-sets-dir=$CHARSETSDIR --compact --triggers --databases mysqltest2 > $MYSQLTEST_VARDIR/tmp/ddl_i18n_utf8triggers.mysqltest2.sql
+--exec $MYSQL_DUMP --character-sets-dir=$CHARSETSDIR --compact --triggers --databases mysqltest2 > $triggers_dump2
 
 #   - Clean mysqltest1, mysqltest2;
 
@@ -703,10 +716,13 @@ DROP DATABASE mysqltest2|
 --echo
 
 --echo ---> Restoring mysqltest1...
---exec $MYSQL test < $MYSQLTEST_VARDIR/tmp/ddl_i18n_utf8triggers.mysqltest1.sql
+--exec $MYSQL test < $triggers_dump1
 
 --echo ---> Restoring mysqltest2...
---exec $MYSQL test < $MYSQLTEST_VARDIR/tmp/ddl_i18n_utf8triggers.mysqltest2.sql
+--exec $MYSQL test < $triggers_dump2
+
+--remove_file $triggers_dump1
+--remove_file $triggers_dump2
 
 #
 # Third-round checks.
@@ -924,6 +940,9 @@ set names utf8|
 
 #  - Dump mysqltest1, mysqltest2;
 
+--let $events_dump1 = $MYSQLTEST_VARDIR/tmp/ddl_i18n_utf8events.mysqltest1.sql
+--let $events_dump2 = $MYSQLTEST_VARDIR/tmp/ddl_i18n_utf8events.mysqltest2.sql
+
 --echo
 --echo ---> Dump of mysqltest1
 
@@ -932,7 +951,7 @@ set names utf8|
 --echo
 --echo ---> Dumping mysqltest1 to ddl_i18n_utf8events.mysqltest1.sql
 
---exec $MYSQL_DUMP --character-sets-dir=$CHARSETSDIR --compact --events --databases mysqltest1 > $MYSQLTEST_VARDIR/tmp/ddl_i18n_utf8events.mysqltest1.sql
+--exec $MYSQL_DUMP --character-sets-dir=$CHARSETSDIR --compact --events --databases mysqltest1 > $events_dump1
 
 --echo
 --echo ---> Dump of mysqltest2
@@ -942,7 +961,7 @@ set names utf8|
 --echo
 --echo ---> Dumping mysqltest2 to ddl_i18n_utf8events.mysqltest2.sql
 
---exec $MYSQL_DUMP --character-sets-dir=$CHARSETSDIR --compact --events --databases mysqltest2 > $MYSQLTEST_VARDIR/tmp/ddl_i18n_utf8events.mysqltest2.sql
+--exec $MYSQL_DUMP --character-sets-dir=$CHARSETSDIR --compact --events --databases mysqltest2 > $events_dump2
 
 #   - Clean mysqltest1, mysqltest2;
 
@@ -958,10 +977,13 @@ DROP DATABASE mysqltest2|
 --echo
 
 --echo ---> Restoring mysqltest1...
---exec $MYSQL test < $MYSQLTEST_VARDIR/tmp/ddl_i18n_utf8events.mysqltest1.sql
+--exec $MYSQL test < $events_dump1
 
 --echo ---> Restoring mysqltest2...
---exec $MYSQL test < $MYSQLTEST_VARDIR/tmp/ddl_i18n_utf8events.mysqltest2.sql
+--exec $MYSQL test < $events_dump2
+
+--remove_file $events_dump1
+--remove_file $events_dump2
 
 #
 # Third-round checks.

=== modified file 'mysql-test/t/disabled.def'
--- a/mysql-test/t/disabled.def	2009-02-23 08:47:39 +0000
+++ b/mysql-test/t/disabled.def	2009-02-27 09:29:49 +0000
@@ -9,8 +9,6 @@
 #  Do not use any TAB characters for whitespace.
 #
 ##############################################################################
-ctype_create         : Bug#32965 main.ctype_create fails
-csv_alter_table      : Bug#42831 main.csv_alter_table is disabled 
 cast                 : Bug#35594 2008-03-27 main.cast fails on Windows2003-64
 events_bugs          : Bug#37774 Bug#39569 Bug#39863 Bug#39848 2008-10-08 alik
 innodb               : Bug#41299 2008-12-08 alik

=== modified file 'mysql-test/t/drop.test'
--- a/mysql-test/t/drop.test	2008-12-24 10:48:24 +0000
+++ b/mysql-test/t/drop.test	2009-03-04 13:48:55 +0000
@@ -198,17 +198,30 @@ DROP DATABASE IF EXISTS mysql_test;
 CREATE DATABASE mysql_test;
 
 let $MYSQLD_DATADIR= `select @@datadir`;
---copy_file $MYSQLD_DATADIR/mysql/proc.frm $MYSQLTEST_VARDIR/tmp/bug29958.proc.frm
---copy_file $MYSQLD_DATADIR/mysql/proc.MYD $MYSQLTEST_VARDIR/tmp/bug29958.proc.MYD
---copy_file $MYSQLD_DATADIR/mysql/proc.MYI $MYSQLTEST_VARDIR/tmp/bug29958.proc.MYI
+
+--let $proc_frm = $MYSQLD_DATADIR/mysql/proc.frm
+--let $proc_MYD = $MYSQLD_DATADIR/mysql/proc.MYD
+--let $proc_MYI = $MYSQLD_DATADIR/mysql/proc.MYI
+
+--let $copy_of_proc_frm = $MYSQLTEST_VARDIR/tmp/bug29958.copy.frm
+--let $copy_of_proc_MYD = $MYSQLTEST_VARDIR/tmp/bug29958.copy.MYD
+--let $copy_of_proc_MYI = $MYSQLTEST_VARDIR/tmp/bug29958.copy.MYI
+
+--copy_file $proc_frm $copy_of_proc_frm
+--copy_file $proc_MYD $copy_of_proc_MYD
+--copy_file $proc_MYI $copy_of_proc_MYI
 
 DROP TABLE mysql.proc;
 
 DROP DATABASE mysql_test;
 
---copy_file $MYSQLTEST_VARDIR/tmp/bug29958.proc.frm $MYSQLD_DATADIR/mysql/proc.frm
---copy_file $MYSQLTEST_VARDIR/tmp/bug29958.proc.MYD $MYSQLD_DATADIR/mysql/proc.MYD
---copy_file $MYSQLTEST_VARDIR/tmp/bug29958.proc.MYI $MYSQLD_DATADIR/mysql/proc.MYI
+--copy_file $copy_of_proc_frm $proc_frm
+--copy_file $copy_of_proc_MYD $proc_MYD
+--copy_file $copy_of_proc_MYI $proc_MYI
+
+--remove_file $copy_of_proc_frm
+--remove_file $copy_of_proc_MYD
+--remove_file $copy_of_proc_MYI
 
 --echo
 --echo # --

=== modified file 'mysql-test/t/func_group.test'
--- a/mysql-test/t/func_group.test	2008-11-24 16:00:09 +0000
+++ b/mysql-test/t/func_group.test	2009-02-26 17:17:06 +0000
@@ -18,6 +18,8 @@ insert into t1 values (3,5,"C");
 insert into t1 values (3,6,"D");
 
 # Test of MySQL field extension with and without matching records.
+#### Note: The two following statements may fail if the execution plan
+#### or optimizer is changed. The result for column c is undefined.
 select a,c,sum(a) from t1 group by a;
 select a,c,sum(a) from t1 where a > 10 group by a;
 select sum(a) from t1 where a > 10;

=== modified file 'mysql-test/t/group_by.test'
--- a/mysql-test/t/group_by.test	2008-11-12 20:04:19 +0000
+++ b/mysql-test/t/group_by.test	2009-02-26 17:31:59 +0000
@@ -1167,3 +1167,22 @@ explain SELECT COUNT(varchar_key) AS X F
 SELECT COUNT(varchar_key) AS X FROM t1 WHERE pk = 8 having 'foo'='bar';
 drop table t1;
 
+#
+# Bug#42567 Invalid GROUP BY error
+#
+
+# Setup of the subtest
+SET @old_sql_mode = @@sql_mode;
+SET @@sql_mode='ONLY_FULL_GROUP_BY';
+
+CREATE TABLE t1(i INT);
+INSERT INTO t1 VALUES (1), (10);
+
+# The actual test
+SELECT COUNT(i) FROM t1;
+SELECT COUNT(i) FROM t1 WHERE i > 1;
+
+# Cleanup of subtest
+DROP TABLE t1;
+SET @@sql_mode = @old_sql_mode;
+

=== modified file 'mysql-test/t/group_min_max.test'
--- a/mysql-test/t/group_min_max.test	2008-08-28 09:54:50 +0000
+++ b/mysql-test/t/group_min_max.test	2009-02-27 15:07:27 +0000
@@ -961,3 +961,25 @@ insert into t1 (a,b) select a, max(b)+1
 select * from t1;
 explain extended select sql_buffer_result a, max(b)+1 from t1 where a = 0 group by a;
 drop table t1;
+
+
+#
+# Bug #41610: key_infix_len can be overwritten causing some group by queries
+# to return no rows
+#
+
+CREATE TABLE t1 (a int, b int, c int, d int,
+  KEY foo (c,d,a,b), KEY bar (c,a,b,d));
+
+INSERT INTO t1 VALUES (1, 1, 1, 1), (1, 1, 1, 2), (1, 1, 1, 3), (1, 1, 1, 4);
+INSERT INTO t1 SELECT * FROM t1;
+INSERT INTO t1 SELECT * FROM t1;
+INSERT INTO t1 SELECT a,b,c+1,d FROM t1;
+
+#Should be non-empty
+EXPLAIN SELECT DISTINCT c FROM t1 WHERE d=4;
+SELECT DISTINCT c FROM t1 WHERE d=4;
+
+DROP TABLE t1;
+
+--echo End of 5.0 tests

=== added file 'mysql-test/t/innodb-consistent-master.opt'
--- a/mysql-test/t/innodb-consistent-master.opt	1970-01-01 00:00:00 +0000
+++ b/mysql-test/t/innodb-consistent-master.opt	2009-02-14 23:29:32 +0000
@@ -0,0 +1 @@
+--innodb_lock_wait_timeout=2

=== added file 'mysql-test/t/innodb-consistent.test'
--- a/mysql-test/t/innodb-consistent.test	1970-01-01 00:00:00 +0000
+++ b/mysql-test/t/innodb-consistent.test	2009-02-14 23:29:32 +0000
@@ -0,0 +1,58 @@
+-- source include/not_embedded.inc
+-- source include/have_innodb.inc
+
+--disable_warnings
+drop table if exists t1;
+--enable_warnings
+
+# REPLACE INTO ... SELECT and INSERT INTO ... SELECT should do
+# a consistent read of the source table.
+
+connect (a,localhost,root,,);
+connect (b,localhost,root,,);
+connection a;
+set session transaction isolation level read committed;
+create table t1(a int not null) engine=innodb DEFAULT CHARSET=latin1;
+create table t2 like t1;
+insert into t2 values (1),(2),(3),(4),(5),(6),(7);
+set autocommit=0;
+
+# REPLACE INTO ... SELECT case
+begin;
+# this should not result in any locks on t2.
+replace into t1 select * from t2;
+
+connection b;
+set session transaction isolation level read committed;
+set autocommit=0;
+# should not cuase a lock wait.
+delete from t2 where a=5;
+commit;
+delete from t2;
+commit;
+connection a;
+commit;
+
+# INSERT INTO ... SELECT case
+begin;
+# this should not result in any locks on t2.
+insert into t1 select * from t2;
+
+connection b;
+set session transaction isolation level read committed;
+set autocommit=0;
+# should not cuase a lock wait.
+delete from t2 where a=5;
+commit;
+delete from t2;
+commit;
+connection a;
+commit;
+
+select * from t1;
+drop table t1;
+drop table t2;
+
+connection default;
+disconnect a;
+disconnect b;

=== modified file 'mysql-test/t/innodb.test'
--- a/mysql-test/t/innodb.test	2009-01-26 16:32:29 +0000
+++ b/mysql-test/t/innodb.test	2009-02-14 22:52:31 +0000
@@ -1687,18 +1687,18 @@ drop table t4,t3,t2,t1;
 #
 # Test that we can create a large (>1K) key
 #
-create table t1 (a varchar(255) character set utf8,
-                 b varchar(255) character set utf8,
-                 c varchar(255) character set utf8,
-                 d varchar(255) character set utf8,
+create table t1 (a varchar(255) character set utf8mb3,
+                 b varchar(255) character set utf8mb3,
+                 c varchar(255) character set utf8mb3,
+                 d varchar(255) character set utf8mb3,
                  key (a,b,c,d)) engine=innodb;
 drop table t1;
 --error ER_TOO_LONG_KEY
-create table t1 (a varchar(255) character set utf8,
-                 b varchar(255) character set utf8,
-                 c varchar(255) character set utf8,
-                 d varchar(255) character set utf8,
-                 e varchar(255) character set utf8,
+create table t1 (a varchar(255) character set utf8mb3,
+                 b varchar(255) character set utf8mb3,
+                 c varchar(255) character set utf8mb3,
+                 d varchar(255) character set utf8mb3,
+                 e varchar(255) character set utf8mb3,
                  key (a,b,c,d,e)) engine=innodb;
 
 
@@ -2227,7 +2227,7 @@ CREATE TABLE t2 (
   KEY idx_t2_b_c (b,c(200)),
   CONSTRAINT t_fk FOREIGN KEY (a) REFERENCES t1 (a) 
    ON DELETE CASCADE
- ) ENGINE=INNODB DEFAULT CHARSET=UTF8;
+ ) ENGINE=INNODB DEFAULT CHARSET=UTF8MB3;
 
 INSERT INTO t1 VALUES (1);
 INSERT INTO t2 VALUES (1, 'bar', 'vbar');

=== added file 'mysql-test/t/innodb_ctype_ldml-master.opt'
--- a/mysql-test/t/innodb_ctype_ldml-master.opt	1970-01-01 00:00:00 +0000
+++ b/mysql-test/t/innodb_ctype_ldml-master.opt	2009-02-15 00:00:50 +0000
@@ -0,0 +1,2 @@
+--character-sets-dir=$MYSQL_TEST_DIR/std_data/
+

=== added file 'mysql-test/t/innodb_ctype_ldml.test'
--- a/mysql-test/t/innodb_ctype_ldml.test	1970-01-01 00:00:00 +0000
+++ b/mysql-test/t/innodb_ctype_ldml.test	2009-03-02 23:16:57 +0000
@@ -0,0 +1,63 @@
+--source include/have_innodb.inc
+--source include/have_ucs2.inc
+--source include/have_utf16.inc
+--source include/have_utf32.inc
+
+
+--disable_warnings
+drop table if exists t1;
+--enable_warnings
+
+--echo In the following tests we change the order of letter "b"
+--echo making it equal to letter "a", and check that it works
+--echo with all Unicode character sets
+set names utf8;
+
+--replace_result $MYSQL_TEST_DIR MYSQL_TEST_DIR
+show variables like 'character_sets_dir%';
+
+show collation like 'utf8_test_ci';
+--error ER_CANT_CREATE_TABLE
+create table t1 (c1 char(1) character set utf8 collate utf8_test_ci)
+engine=innodb;
+show warnings;
+
+show collation like 'ucs2_test_ci';
+--error ER_CANT_CREATE_TABLE
+create table t1 (c1 char(1) character set ucs2 collate ucs2_test_ci)
+engine=innodb;
+show warnings;
+
+show collation like 'utf16_test_ci';
+--error ER_CANT_CREATE_TABLE
+create table t1 (c1 char(1) character set utf16 collate utf16_test_ci)
+engine=innodb;
+show warnings;
+
+show collation like 'utf32_test_ci';
+--error ER_CANT_CREATE_TABLE
+create table t1 (c1 char(1) character set utf32 collate utf32_test_ci)
+engine=innodb;
+show warnings;
+
+--echo  Vietnamese experimental collation
+
+show collation like 'ucs2_vn_ci';
+--error ER_CANT_CREATE_TABLE
+create table t1 (c1 char(1) character set ucs2 collate ucs2_vn_ci)
+engine=innodb;
+show warnings;
+
+-- echo The following tests check that two-byte collation IDs work
+# The file ../std-data/Index.xml has a number of collations with high IDs.
+
+# Test that the "ID" column in I_S and SHOW queries can handle two bytes
+select * from information_schema.collations where id>256 order by id;
+show collation like '%test%';
+
+# Test that two-byte collation ID is correctly transfered to the client side.
+show collation like 'ucs2_vn_ci';
+--error ER_CANT_CREATE_TABLE
+create table t1 (c1 char(1) character set ucs2 collate ucs2_vn_ci)
+engine=innodb;
+show warnings;

=== modified file 'mysql-test/t/lock.test'
--- a/mysql-test/t/lock.test	2008-10-21 23:12:53 +0000
+++ b/mysql-test/t/lock.test	2009-03-05 15:44:02 +0000
@@ -221,6 +221,36 @@ create view v_bug5719 as select * from t
 --echo
 drop table t2, t3;
 
+--echo #
+--echo # Bug#39843 DELETE requires write access to table in subquery in where clause
+--echo #
+--disable_warnings
+DROP TABLE IF EXISTS t1,t2;
+--enable_warnings
+CREATE TABLE t1 (
+table1_rowid SMALLINT NOT NULL
+);
+CREATE TABLE t2 (
+table2_rowid SMALLINT NOT NULL
+);
+INSERT INTO t1 VALUES (1);
+INSERT INTO t2 VALUES (1);
+LOCK TABLES t1 WRITE, t2 READ;
+--echo # Sub-select should not try to aquire a write lock.
+DELETE FROM t1 
+WHERE EXISTS 
+( 
+SELECT 'x' 
+FROM t2
+WHERE t1.table1_rowid = t2.table2_rowid
+) ;
+--echo # While implementing the patch we didn't break old behavior;
+--echo # The following sub-select should still requires a write lock:
+--error ER_TABLE_NOT_LOCKED_FOR_WRITE
+SELECT * FROM t1 WHERE 1 IN (SELECT * FROM t2 FOR UPDATE);
+UNLOCK TABLES;
+DROP TABLE t1,t2;
+
 --echo End of 5.1 tests.
 
 --echo #

=== modified file 'mysql-test/t/mysql.test'
--- a/mysql-test/t/mysql.test	2009-02-25 10:06:18 +0000
+++ b/mysql-test/t/mysql.test	2009-03-02 12:41:56 +0000
@@ -98,35 +98,43 @@ drop table t1;
 # Bug #20432: mysql client interprets commands in comments
 #
 
+--let $file = $MYSQLTEST_VARDIR/tmp/bug20432.sql
+
 # if the client sees the 'use' within the comment, we haven't fixed
---exec echo "/*"          >  $MYSQLTEST_VARDIR/tmp/bug20432.sql
---exec echo "use"         >> $MYSQLTEST_VARDIR/tmp/bug20432.sql
---exec echo "*/"          >> $MYSQLTEST_VARDIR/tmp/bug20432.sql
---exec $MYSQL              < $MYSQLTEST_VARDIR/tmp/bug20432.sql 2>&1
+--exec echo "/*"          >  $file
+--exec echo "use"         >> $file
+--exec echo "*/"          >> $file
+--exec $MYSQL              < $file 2>&1
 
 # SQL can have embedded comments => workie
---exec echo "select /*"   >  $MYSQLTEST_VARDIR/tmp/bug20432.sql
---exec echo "use"         >> $MYSQLTEST_VARDIR/tmp/bug20432.sql
---exec echo "*/ 1"        >> $MYSQLTEST_VARDIR/tmp/bug20432.sql
---exec $MYSQL              < $MYSQLTEST_VARDIR/tmp/bug20432.sql 2>&1
+--exec echo "select /*"   >  $file
+--exec echo "use"         >> $file
+--exec echo "*/ 1"        >> $file
+--exec $MYSQL              < $file 2>&1
 
 # client commands on the other hand must be at BOL => error
---exec echo "/*"          >  $MYSQLTEST_VARDIR/tmp/bug20432.sql
---exec echo "xxx"         >> $MYSQLTEST_VARDIR/tmp/bug20432.sql
---exec echo "*/ use"      >> $MYSQLTEST_VARDIR/tmp/bug20432.sql
+--exec echo "/*"          >  $file
+--exec echo "xxx"         >> $file
+--exec echo "*/ use"      >> $file
 --error 1
---exec $MYSQL              < $MYSQLTEST_VARDIR/tmp/bug20432.sql 2>&1
+--exec $MYSQL              < $file 2>&1
 
 # client comment recognized, but parameter missing => error
---exec echo "use"         >  $MYSQLTEST_VARDIR/tmp/bug20432.sql
---exec $MYSQL              < $MYSQLTEST_VARDIR/tmp/bug20432.sql 2>&1
+--exec echo "use"         >  $file
+--exec $MYSQL              < $file 2>&1
+
+--remove_file $file
 
 #
 # Bug #20328: mysql client interprets commands in comments
 #
---exec $MYSQL -e "help" > $MYSQLTEST_VARDIR/tmp/bug20328_1.result
---exec $MYSQL -e "help " > $MYSQLTEST_VARDIR/tmp/bug20328_2.result
---diff_files $MYSQLTEST_VARDIR/tmp/bug20328_1.result $MYSQLTEST_VARDIR/tmp/bug20328_2.result
+--let $file1 = $MYSQLTEST_VARDIR/tmp/bug20328_1.result
+--let $file2 = $MYSQLTEST_VARDIR/tmp/bug20328_2.result
+--exec $MYSQL -e "help" > $file1
+--exec $MYSQL -e "help " > $file2
+--diff_files $file1 $file2
+--remove_file $file1
+--remove_file $file2
 
 #
 # Bug #19216: Client crashes on long SELECT
@@ -152,13 +160,15 @@ EOF
 #
 # Bug #20103: Escaping with backslash does not work
 #
---exec echo "SET SQL_MODE = 'NO_BACKSLASH_ESCAPES';"  > $MYSQLTEST_VARDIR/tmp/bug20103.sql
---exec echo "SELECT '\';" >> $MYSQLTEST_VARDIR/tmp/bug20103.sql
---exec $MYSQL < $MYSQLTEST_VARDIR/tmp/bug20103.sql 2>&1
-
---exec echo "SET SQL_MODE = '';"  > $MYSQLTEST_VARDIR/tmp/bug20103.sql
---exec echo "SELECT '\';';" >> $MYSQLTEST_VARDIR/tmp/bug20103.sql
---exec $MYSQL              < $MYSQLTEST_VARDIR/tmp/bug20103.sql 2>&1
+--let $file = $MYSQLTEST_VARDIR/tmp/bug20103.sql
+--exec echo "SET SQL_MODE = 'NO_BACKSLASH_ESCAPES';"  > $file
+--exec echo "SELECT '\';" >> $file
+--exec $MYSQL < $file 2>&1
+
+--exec echo "SET SQL_MODE = '';"  > $file
+--exec echo "SELECT '\';';" >> $file
+--exec $MYSQL              < $file 2>&1
+--remove_file $file
 
 #
 # Bug#17583: mysql drops connection when stdout is not writable

=== modified file 'mysql-test/t/mysqldump-compat.test'
--- a/mysql-test/t/mysqldump-compat.test	2007-08-31 11:59:07 +0000
+++ b/mysql-test/t/mysqldump-compat.test	2009-03-02 10:03:13 +0000
@@ -5,9 +5,13 @@
 # Bug #30126: semicolon before closing */ in /*!... CREATE DATABASE ;*/
 #
 
+--let $file = $MYSQLTEST_VARDIR/tmp/bug30126.sql
+
 CREATE DATABASE mysqldump_30126;
 USE mysqldump_30126;
 CREATE TABLE t1 (c1 int);
---exec $MYSQL_DUMP --add-drop-database mysqldump_30126 > $MYSQLTEST_VARDIR/tmp/bug30126.sql
---exec $MYSQL mysqldump_30126 < $MYSQLTEST_VARDIR/tmp/bug30126.sql
+--exec $MYSQL_DUMP --add-drop-database mysqldump_30126 > $file
+--exec $MYSQL mysqldump_30126 < $file
 DROP DATABASE mysqldump_30126;
+
+--remove_file $file

=== modified file 'mysql-test/t/mysqltest.test'
--- a/mysql-test/t/mysqltest.test	2009-02-20 13:35:24 +0000
+++ b/mysql-test/t/mysqltest.test	2009-03-02 12:41:56 +0000
@@ -1463,7 +1463,7 @@ select "this will be executed";
 
 remove_file $MYSQLTEST_VARDIR/tmp/zero_length_file.result;
 --error 0,1
-remove_file $MYSQLTEST_VARDIR/log/zero_length_file.reject;
+remove_file $MYSQLTEST_VARDIR/tmp/zero_length_file.reject;
 --error 0,1
 remove_file $MYSQL_TEST_DIR/r/zero_length_file.reject;
 

=== modified file 'mysql-test/t/show_check.test'
--- a/mysql-test/t/show_check.test	2008-12-13 19:55:44 +0000
+++ b/mysql-test/t/show_check.test	2009-03-02 12:41:56 +0000
@@ -890,10 +890,12 @@ CREATE TABLE t1(ËÏÌÏÎËÁ1 INT);
 # Check:
 #   - Dump mysqltest1;
 
+--let $outfile1=$MYSQLTEST_VARDIR/tmp/show_check.mysqltest1.sql
+
 --echo
---echo ---> Dumping mysqltest1 to show_check.mysqltest1.sql
+--echo ---> Dumping mysqltest1 to outfile1
 
---exec $MYSQL_DUMP --default-character-set=latin1 --character-sets-dir=$CHARSETSDIR --databases mysqltest1 > $MYSQLTEST_VARDIR/tmp/show_check.mysqltest1.sql
+--exec $MYSQL_DUMP --default-character-set=latin1 --character-sets-dir=$CHARSETSDIR --databases mysqltest1 > $outfile1
 
 #   - Clean mysqltest1;
 
@@ -908,7 +910,8 @@ DROP DATABASE mysqltest1;
 --echo
 
 --echo ---> Restoring mysqltest1...
---exec $MYSQL test < $MYSQLTEST_VARDIR/tmp/show_check.mysqltest1.sql
+--exec $MYSQL test < $outfile1
+--remove_file $outfile1
 
 #   - Check definition of the table.
 

=== modified file 'mysql-test/t/skip_name_resolve.test'
--- a/mysql-test/t/skip_name_resolve.test	2005-12-18 17:11:19 +0000
+++ b/mysql-test/t/skip_name_resolve.test	2009-03-04 12:33:56 +0000
@@ -15,6 +15,9 @@ DROP USER mysqltest_1@'127.0.0.1/255.255
 connect (con1, 127.0.0.1, root, , test, $MASTER_MYPORT, );
 --replace_column 1 #
 select user();
---replace_column 1 <id> 3 <host> 5 <command> 6 <time> 7 <state> 8 <info>
+# We are only interested in the fact that statement below doesn't
+# crash server.
+--disable_result_log
 show processlist;
+--enable_result_log
 connection default;

=== modified file 'mysql-test/t/variables.test'
--- a/mysql-test/t/variables.test	2009-03-06 14:35:59 +0000
+++ b/mysql-test/t/variables.test	2009-03-06 15:28:40 +0000
@@ -173,21 +173,63 @@ select @@timestamp>0;
 set @@rand_seed1=10000000,@@rand_seed2=1000000;
 select ROUND(RAND(),5);
 
-show variables like '%alloc%';
-select * from information_schema.session_variables where variable_name like '%alloc%' order by 1;
-set @@range_alloc_block_size=1024*16;
+
+--echo
+--echo ==+ Testing %alloc% system variables +==
+--echo ==+ NOTE:  These values *must* be a multiple of 1024 +==
+--echo ==+ Other values will be rounded down to nearest multiple +==
+--echo
+--echo ==+ Show initial values +==
+SHOW VARIABLES WHERE variable_name IN ('range_alloc_block_size',
+'query_alloc_block_size', 'query_prealloc_size',
+'transaction_alloc_block_size', 'transaction_prealloc_size');
+
+--echo ==+ information_schema data +==
+SELECT * FROM information_schema.session_variables 
+WHERE variable_name IN ('range_alloc_block_size',
+'query_alloc_block_size', 'query_prealloc_size',
+'transaction_alloc_block_size', 'transaction_prealloc_size') ORDER BY 1;
+--echo Testing values that are multiples of 1024
+set @@range_alloc_block_size=1024*15+1024;
+set @@query_alloc_block_size=1024*15+1024*2;
+set @@query_prealloc_size=1024*18-1024;
+set @@transaction_alloc_block_size=1024*21-1024*1;
+set @@transaction_prealloc_size=1024*21-2048;
+--echo ==+ Check manipulated values ==+
+select @@query_alloc_block_size;
+SHOW VARIABLES WHERE variable_name IN ('range_alloc_block_size',
+'query_alloc_block_size', 'query_prealloc_size',
+'transaction_alloc_block_size', 'transaction_prealloc_size');
+--echo ==+ information_schema data +==
+SELECT * FROM information_schema.session_variables
+WHERE variable_name IN ('range_alloc_block_size',
+'query_alloc_block_size', 'query_prealloc_size',
+'transaction_alloc_block_size', 'transaction_prealloc_size') ORDER BY 1;
+--echo ==+ Manipulate variable values +==
+--echo Testing values that are not 1024 multiples
+set @@range_alloc_block_size=1024*16+1023;
 set @@query_alloc_block_size=1024*17+2;
-set @@query_prealloc_size=1024*18;
+set @@query_prealloc_size=1024*18-1023;
 set @@transaction_alloc_block_size=1024*20-1;
 set @@transaction_prealloc_size=1024*21-1;
 select @@query_alloc_block_size;
-show variables like '%alloc%';
-select * from information_schema.session_variables where variable_name like '%alloc%' order by 1;
+--echo ==+ Check manipulated values ==+
+SHOW VARIABLES WHERE variable_name IN ('range_alloc_block_size',
+'query_alloc_block_size', 'query_prealloc_size',
+'transaction_alloc_block_size', 'transaction_prealloc_size');
+--echo ==+ information_schema data +==
+SELECT * FROM information_schema.session_variables 
+WHERE variable_name IN ('range_alloc_block_size',
+'query_alloc_block_size', 'query_prealloc_size',
+'transaction_alloc_block_size', 'transaction_prealloc_size') ORDER BY 1;
+--echo ==+ Set values back to the default values +==
 set @@range_alloc_block_size=default;
 set @@query_alloc_block_size=default, @@query_prealloc_size=default;
 set transaction_alloc_block_size=default, @@transaction_prealloc_size=default;
-show variables like '%alloc%';
-select * from information_schema.session_variables where variable_name like '%alloc%' order by 1;
+--echo ==+ Check the values now that they are reset +==
+SHOW VARIABLES WHERE variable_name IN ('range_alloc_block_size',
+'query_alloc_block_size', 'query_prealloc_size',
+'transaction_alloc_block_size', 'transaction_prealloc_size');
 
 #
 # Bug #10904 Illegal mix of collations between
@@ -1116,5 +1158,12 @@ SELECT @@global.expire_logs_days;
 SET GLOBAL expire_logs_days = @old_eld;
 
 
+#
+# Bug#41030 Wrong meta data (incorrect fieldlen)
+#
+--enable_metadata
+select @@storage_engine;
+--disable_metadata
+
 
 --echo End of 5.1 tests

=== modified file 'mysql-test/t/view_grant.test'
--- a/mysql-test/t/view_grant.test	2009-02-25 10:31:18 +0000
+++ b/mysql-test/t/view_grant.test	2009-02-26 17:45:13 +0000
@@ -1188,6 +1188,46 @@ DROP DATABASE mysqltest1;
 DROP DATABASE mysqltest2;
 DROP USER mysqltest_u1@localhost;
 
+
+#
+# Bug #41354: Access control is bypassed when all columns of a view are 
+# selected by * wildcard
+
+CREATE DATABASE db1;
+USE db1;
+CREATE TABLE t1(f1 INT, f2 INT);
+CREATE VIEW v1 AS SELECT f1, f2 FROM t1;
+
+GRANT SELECT (f1) ON t1 TO foo;
+GRANT SELECT (f1) ON v1 TO foo;
+
+connect (addconfoo, localhost, foo,,);
+connection addconfoo;
+USE db1;
+
+
+SELECT f1 FROM t1;
+--error ER_COLUMNACCESS_DENIED_ERROR
+SELECT f2 FROM t1;
+--error ER_TABLEACCESS_DENIED_ERROR
+SELECT * FROM t1;
+
+SELECT f1 FROM v1;
+--error ER_COLUMNACCESS_DENIED_ERROR
+SELECT f2 FROM v1;
+--error ER_TABLEACCESS_DENIED_ERROR
+SELECT * FROM v1;
+
+connection default;
+USE test;
+disconnect addconfoo;
+REVOKE SELECT (f1) ON db1.t1 FROM foo;
+REVOKE SELECT (f1) ON db1.v1 FROM foo;
+DROP USER foo;
+DROP VIEW db1.v1;
+DROP TABLE db1.t1;
+DROP DATABASE db1;
+
 --echo End of 5.0 tests.
 
 

=== modified file 'sql/item_func.cc'
--- a/sql/item_func.cc	2009-02-18 10:23:38 +0000
+++ b/sql/item_func.cc	2009-03-05 13:25:12 +0000
@@ -4957,7 +4957,9 @@ bool Item_func_get_system_var::is_writte
 
 void Item_func_get_system_var::fix_length_and_dec()
 {
+  char *cptr;
   maybe_null=0;
+  max_length= 0;
 
   if (var->check_type(var_type))
   {
@@ -4987,8 +4989,14 @@ void Item_func_get_system_var::fix_lengt
       break;
     case SHOW_CHAR:
     case SHOW_CHAR_PTR:
+      pthread_mutex_lock(&LOCK_global_system_variables);
+      cptr= var->show_type() == SHOW_CHAR_PTR ? 
+        *(char**) var->value_ptr(current_thd, var_type, &component) :
+        (char*) var->value_ptr(current_thd, var_type, &component);
+      if (cptr)
+        max_length= strlen(cptr) * system_charset_info->mbmaxlen;
+      pthread_mutex_unlock(&LOCK_global_system_variables);
       collation.set(system_charset_info, DERIVATION_SYSCONST);
-      max_length= MAX_BLOB_WIDTH;
       decimals=NOT_FIXED_DEC;
       break;
     case SHOW_BOOL:

=== modified file 'sql/log.cc'
--- a/sql/log.cc	2009-02-13 16:30:54 +0000
+++ b/sql/log.cc	2009-03-06 05:28:03 +0000
@@ -6536,10 +6536,14 @@ bool flush_error_log()
       uchar buf[IO_SIZE];
 
       freopen(err_temp,"a+",stderr);
+      setbuf(stderr, NULL);
       (void) my_delete(err_renamed, MYF(0));
       my_rename(log_error_file,err_renamed,MYF(0));
       if (freopen(log_error_file,"a+",stdout))
+      {
         freopen(log_error_file,"a+",stderr);
+        setbuf(stderr, NULL);
+      }
 
       if ((fd = my_open(err_temp, O_RDONLY, MYF(0))) >= 0)
       {
@@ -6555,7 +6559,10 @@ bool flush_error_log()
 #else
    my_rename(log_error_file,err_renamed,MYF(0));
    if (freopen(log_error_file,"a+",stdout))
+   {
      freopen(log_error_file,"a+",stderr);
+     setbuf(stderr, NULL);
+   }
    else
      result= 1;
 #endif

=== modified file 'sql/mysqld.cc'
--- a/sql/mysqld.cc	2009-02-25 08:58:28 +0000
+++ b/sql/mysqld.cc	2009-03-06 05:28:03 +0000
@@ -3970,7 +3970,10 @@ static int init_server_components()
 #ifndef EMBEDDED_LIBRARY
       if (freopen(log_error_file, "a+", stdout))
 #endif
+      {
         freopen(log_error_file, "a+", stderr);
+        setbuf(stderr, NULL);
+      }
     }
   }
 
@@ -4653,6 +4656,7 @@ int main(int argc, char **argv)
   {
     freopen(log_error_file,"a+",stdout);
     freopen(log_error_file,"a+",stderr);
+    setbuf(stderr, NULL);
     FreeConsole();				// Remove window
   }
 #endif

=== modified file 'sql/opt_range.cc'
--- a/sql/opt_range.cc	2009-02-13 16:30:54 +0000
+++ b/sql/opt_range.cc	2009-02-27 15:47:32 +0000
@@ -9348,32 +9348,37 @@ get_best_group_min_max(PARAM *param, SEL
   */
   KEY *cur_index_info= table->key_info;
   KEY *cur_index_info_end= cur_index_info + table->s->keys;
-  KEY_PART_INFO *cur_part= NULL;
-  KEY_PART_INFO *end_part; /* Last part for loops. */
-  /* Last index part. */
-  KEY_PART_INFO *last_part= NULL;
-  KEY_PART_INFO *first_non_group_part= NULL;
-  KEY_PART_INFO *first_non_infix_part= NULL;
-  uint key_infix_parts= 0;
-  uint cur_group_key_parts= 0;
-  uint cur_group_prefix_len= 0;
   /* Cost-related variables for the best index so far. */
   double best_read_cost= DBL_MAX;
   ha_rows best_records= 0;
   SEL_ARG *best_index_tree= NULL;
   ha_rows best_quick_prefix_records= 0;
   uint best_param_idx= 0;
-  double cur_read_cost= DBL_MAX;
-  ha_rows cur_records;
+
+  const uint pk= param->table->s->primary_key;
   SEL_ARG *cur_index_tree= NULL;
   ha_rows cur_quick_prefix_records= 0;
   uint cur_param_idx=MAX_KEY;
-  key_map cur_used_key_parts;
-  uint pk= param->table->s->primary_key;
 
   for (uint cur_index= 0 ; cur_index_info != cur_index_info_end ;
        cur_index_info++, cur_index++)
   {
+    KEY_PART_INFO *cur_part;
+    KEY_PART_INFO *end_part; /* Last part for loops. */
+    /* Last index part. */
+    KEY_PART_INFO *last_part;
+    KEY_PART_INFO *first_non_group_part;
+    KEY_PART_INFO *first_non_infix_part;
+    uint key_infix_parts;
+    uint cur_group_key_parts= 0;
+    uint cur_group_prefix_len= 0;
+    double cur_read_cost;
+    ha_rows cur_records;
+    key_map used_key_parts_map;
+    uint cur_key_infix_len= 0;
+    uchar cur_key_infix[MAX_KEY_LENGTH];
+    uint cur_used_key_parts;
+    
     /* Check (B1) - if current index is covering. */
     if (!table->covering_keys.is_set(cur_index))
       goto next_index;
@@ -9443,7 +9448,7 @@ get_best_group_min_max(PARAM *param, SEL
     else if (join->select_distinct)
     {
       select_items_it.rewind();
-      cur_used_key_parts.clear_all();
+      used_key_parts_map.clear_all();
       uint max_key_part= 0;
       while ((item= select_items_it++))
       {
@@ -9454,13 +9459,13 @@ get_best_group_min_max(PARAM *param, SEL
           Check if this attribute was already present in the select list.
           If it was present, then its corresponding key part was alredy used.
         */
-        if (cur_used_key_parts.is_set(key_part_nr))
+        if (used_key_parts_map.is_set(key_part_nr))
           continue;
         if (key_part_nr < 1 || key_part_nr > join->fields_list.elements)
           goto next_index;
         cur_part= cur_index_info->key_part + key_part_nr - 1;
         cur_group_prefix_len+= cur_part->store_length;
-        cur_used_key_parts.set_bit(key_part_nr);
+        used_key_parts_map.set_bit(key_part_nr);
         ++cur_group_key_parts;
         max_key_part= max(max_key_part,key_part_nr);
       }
@@ -9472,7 +9477,7 @@ get_best_group_min_max(PARAM *param, SEL
       */
       ulonglong all_parts, cur_parts;
       all_parts= (1<<max_key_part) - 1;
-      cur_parts= cur_used_key_parts.to_ulonglong() >> 1;
+      cur_parts= used_key_parts_map.to_ulonglong() >> 1;
       if (all_parts != cur_parts)
         goto next_index;
     }
@@ -9522,7 +9527,8 @@ get_best_group_min_max(PARAM *param, SEL
                                                         &dummy);
         if (!get_constant_key_infix(cur_index_info, index_range_tree,
                                     first_non_group_part, min_max_arg_part,
-                                    last_part, thd, key_infix, &key_infix_len,
+                                    last_part, thd, cur_key_infix, 
+                                    &cur_key_infix_len,
                                     &first_non_infix_part))
           goto next_index;
       }
@@ -9576,9 +9582,9 @@ get_best_group_min_max(PARAM *param, SEL
     }
 
     /* If we got to this point, cur_index_info passes the test. */
-    key_infix_parts= key_infix_len ?
+    key_infix_parts= cur_key_infix_len ?
                      (first_non_infix_part - first_non_group_part) : 0;
-    used_key_parts= cur_group_key_parts + key_infix_parts;
+    cur_used_key_parts= cur_group_key_parts + key_infix_parts;
 
     /* Compute the cost of using this index. */
     if (tree)
@@ -9596,7 +9602,7 @@ get_best_group_min_max(PARAM *param, SEL
                                                    &mrr_flags, &mrr_bufsize,
                                                    &dummy_cost);
     }
-    cost_group_min_max(table, cur_index_info, used_key_parts,
+    cost_group_min_max(table, cur_index_info, cur_used_key_parts,
                        cur_group_key_parts, tree, cur_index_tree,
                        cur_quick_prefix_records, have_min, have_max,
                        &cur_read_cost, &cur_records);
@@ -9607,7 +9613,6 @@ get_best_group_min_max(PARAM *param, SEL
     */
     if (cur_read_cost < best_read_cost - (DBL_EPSILON * cur_read_cost))
     {
-      DBUG_ASSERT(tree != 0 || cur_param_idx == MAX_KEY);
       index_info= cur_index_info;
       index= cur_index;
       best_read_cost= cur_read_cost;
@@ -9617,11 +9622,13 @@ get_best_group_min_max(PARAM *param, SEL
       best_param_idx= cur_param_idx;
       group_key_parts= cur_group_key_parts;
       group_prefix_len= cur_group_prefix_len;
+      key_infix_len= cur_key_infix_len;
+      if (key_infix_len)
+        memcpy (key_infix, cur_key_infix, sizeof (key_infix));
+      used_key_parts= cur_used_key_parts;
     }
 
-  next_index:
-    cur_group_key_parts= 0;
-    cur_group_prefix_len= 0;
+  next_index:;
   }
   if (!index_info) /* No usable index found. */
     DBUG_RETURN(NULL);

=== modified file 'sql/protocol.cc'
--- a/sql/protocol.cc	2009-02-26 12:18:28 +0000
+++ b/sql/protocol.cc	2009-02-27 08:20:47 +0000
@@ -708,7 +708,8 @@ bool Protocol::send_result_set_metadata(
                      field.length / item->collation.collation->mbminlen :
                      field.length / item->collation.collation->mbmaxlen;
         max_length*= thd_charset->mbmaxlen;
-        field_length= (max_length > UINT_MAX32) ? UINT_MAX32 : max_length;
+        field_length= (max_length > UINT_MAX32) ? 
+          UINT_MAX32 : (uint32) max_length;
         int4store(pos + 2, field_length);
       }
       pos[6]= field.type;

=== modified file 'sql/rpl_record.cc'
--- a/sql/rpl_record.cc	2008-09-09 08:19:21 +0000
+++ b/sql/rpl_record.cc	2009-03-05 21:13:37 +0000
@@ -362,30 +362,22 @@ unpack_row(Relay_log_info const *rli,
 /**
   Fills @c table->record[0] with default values.
 
-  First @c empty_record() is called and then, additionally, fields are
-  initialized explicitly with a call to @c set_default().
+  First @c restore_record() is called to restore default values.
 
-  For optimization reasons, the explicit initialization can be skipped
-  for fields that are not marked in the @c cols vector. These fields
-  will be set later, and filling them with default values is
-  unnecessary.
-
-  If @c check is true, fields are explicitly initialized only if they
-  have default value or can be NULL. Otherwise error is reported. If
-  @c check is false, no error is reported and the field is not set to
-  any value.
+  If @c check is true, fields are explicitly check if they have default
+  value or can be NULL. Otherwise error is reported. If @c check is false, 
+  no error is reported and the field is not checked for default value.
 
   @todo When flag is added to allow engine to handle default values
   itself, the record should not be emptied and default values not set.
 
   @param table[in,out] Table whose record[0] buffer is prepared. 
-  @param cols[in]      Vector of bits denoting columns that will be set
-                       elsewhere
-  @param check[in]     Indicates if errors should be checked when setting default
+  @param cols[in]      Vector of bits denoting columns that will not be checked.
+  @param check[in]     Indicates if errors should be raised when checking default 
                        values.
 
   @retval 0                       Success
-  @retval ER_NO_DEFAULT_FOR_FIELD Default value could not be set for a field
+  @retval ER_NO_DEFAULT_FOR_FIELD Default value could not be checked for a field
  */ 
 int prepare_record(TABLE *const table, 
                    const MY_BITMAP *cols, uint width, const bool check)
@@ -393,13 +385,14 @@ int prepare_record(TABLE *const table,
   DBUG_ENTER("prepare_record");
 
   int error= 0;
-  empty_record(table);
+  restore_record(table, s->default_values);
+
+  if (!check)
+    DBUG_RETURN(error);
 
   /*
-    Explicit initialization of fields. For fields that are not in the
-    cols for the row, we set them to default. If the fields are in
-    addition to what exists on the master, we give an error if the
-    have no sensible default.
+    For fields that are not in the cols for the row, we check them if they
+    have default or can be null.
   */
 
   DBUG_PRINT_BITSET("debug", "cols: %s", cols);
@@ -411,16 +404,11 @@ int prepare_record(TABLE *const table,
       uint32 const mask= NOT_NULL_FLAG | NO_DEFAULT_VALUE_FLAG;
       Field *const f= *field_ptr;
 
-      if (check && ((f->flags & mask) == mask))
+      if (((f->flags & mask) == mask))
       {
         my_error(ER_NO_DEFAULT_FOR_FIELD, MYF(0), f->field_name);
         error = HA_ERR_ROWS_EVENT_APPLY;
       }
-      else
-      {
-        DBUG_PRINT("debug", ("Set default; field: %s", f->field_name));
-        f->set_default();
-      }
     }
   }
 

=== modified file 'sql/set_var.cc'
--- a/sql/set_var.cc	2009-03-06 14:35:59 +0000
+++ b/sql/set_var.cc	2009-03-06 15:28:40 +0000
@@ -112,6 +112,7 @@ static void sys_default_init_connect(THD
 static bool sys_update_init_slave(THD*, set_var*);
 static void sys_default_init_slave(THD*, enum_var_type type);
 static bool set_option_bit(THD *thd, set_var *var);
+static bool set_option_log_bin_bit(THD *thd, set_var *var);
 static bool set_option_autocommit(THD *thd, set_var *var);
 static int  check_log_update(THD *thd, set_var *var);
 static bool set_log_update(THD *thd, set_var *var);
@@ -779,7 +780,7 @@ static sys_var_thd_bit	sys_log_update(&v
 				       OPTION_BIN_LOG);
 static sys_var_thd_bit	sys_log_binlog(&vars, "sql_log_bin",
                                        check_log_update,
-				       set_option_bit,
+                                       set_option_log_bin_bit,
 				       OPTION_BIN_LOG);
 static sys_var_thd_bit	sys_sql_warnings(&vars, "sql_warnings", 0,
 					 set_option_bit,
@@ -3555,6 +3556,16 @@ static bool set_option_bit(THD *thd, set
   return 0;
 }
 
+/*
+  Functions to be only used to update thd->options OPTION_BIN_LOG bit
+*/
+static bool set_option_log_bin_bit(THD *thd, set_var *var)
+{
+  set_option_bit(thd, var);
+  if (!thd->in_sub_stmt)
+    thd->sql_log_bin_toplevel= thd->options & OPTION_BIN_LOG;
+  return 0;
+}
 
 static bool set_option_autocommit(THD *thd, set_var *var)
 {

=== modified file 'sql/share/errmsg.txt'
--- a/sql/share/errmsg.txt	2009-02-20 12:37:37 +0000
+++ b/sql/share/errmsg.txt	2009-03-06 12:24:03 +0000
@@ -6149,6 +6149,29 @@ WARN_PLUGIN_BUSY
 ER_VARIABLE_IS_READONLY
   eng "%s variable '%s' is read-only. Use SET %s to assign the value"
 
+ER_WARN_ENGINE_TRANSACTION_ROLLBACK
+  eng "Storage engine %s does not support rollback for this statement. Transaction rolled back and must be restarted"
+
+ER_SLAVE_HEARTBEAT_FAILURE
+  eng "Unexpected master's heartbeat data: %s"
+ER_SLAVE_HEARTBEAT_VALUE_OUT_OF_RANGE
+  eng "The requested value for the heartbeat period %s %s"
+
+ER_NDB_REPLICATION_SCHEMA_ERROR
+        eng "Bad schema for mysql.ndb_replication table. Message: %-.64s"
+ER_CONFLICT_FN_PARSE_ERROR
+        eng "Error in parsing conflict function. Message: %-.64s"
+ER_EXCEPTIONS_WRITE_ERROR
+        eng "Write to exceptions table failed. Message: %-.128s""
+
+ER_TOO_LONG_TABLE_COMMENT
+  eng "Comment for table '%-.64s' is too long (max = %lu)"
+  por "Comentário para a tabela '%-.64s' é longo demais (max = %lu)"
+
+ER_TOO_LONG_FIELD_COMMENT
+  eng "Comment for field '%-.64s' is too long (max = %lu)"
+  por "Comentário para o campo '%-.64s' é longo demais (max = %lu)"
+
 ER_WARN_AUTO_CONVERT_LOCK
         eng "Converted to non-transactional lock on '%-.64s'"
         ger "Umgewandelt zu nicht-transaktionalen Sperren auf '%-.64s'"
@@ -6272,10 +6295,6 @@ ER_TABLESPACE_EXIST
   eng "Tablespace '%-.192s' already exists"
 ER_NO_SUCH_TABLESPACE
   eng "Tablespace '%-.192s' doesn't exist"
-ER_SLAVE_HEARTBEAT_FAILURE
-  eng "Unexpected master's heartbeat data: %s"
-ER_SLAVE_HEARTBEAT_VALUE_OUT_OF_RANGE
-  eng "The requested value for the heartbeat period %s %s"
 ER_SLAVE_IGNORE_SERVER_IDS
   eng "The requested server id %d clashes with the slave startup option --replicate-same-server-id"
 
@@ -6450,8 +6469,6 @@ ER_BACKUP_BACKUP_DBS
 ER_BACKUP_RESTORE_DBS
   eng "Restoring %u database(s) %.220s"
 
-ER_WARN_ENGINE_TRANSACTION_ROLLBACK
-  eng "Storage engine %s does not support rollback for this statement. Transaction rolled back and must be restarted"
 ER_COM_UNSUPPORTED
   eng "%s doesn't support %s"
 

=== modified file 'sql/sp.cc'
--- a/sql/sp.cc	2009-01-27 02:08:48 +0000
+++ b/sql/sp.cc	2009-03-04 12:22:13 +0000
@@ -936,10 +936,12 @@ sp_create_routine(THD *thd, int type, sp
         ret= SP_INTERNAL_ERROR;
         goto done;
       }
-
+      /* restore sql_mode when binloging */
+      thd->variables.sql_mode= saved_mode;
       /* Such a statement can always go directly to binlog, no trans cache */
       thd->binlog_query(THD::MYSQL_QUERY_TYPE,
                         log_query.c_ptr(), log_query.length(), FALSE, FALSE);
+      thd->variables.sql_mode= 0;
     }
 
   }

=== modified file 'sql/sql_cache.cc'
--- a/sql/sql_cache.cc	2009-02-20 12:37:37 +0000
+++ b/sql/sql_cache.cc	2009-03-06 10:25:21 +0000
@@ -419,6 +419,43 @@ TYPELIB query_cache_type_typelib=
   array_elements(query_cache_type_names)-1,"", query_cache_type_names, NULL
 };
 
+
+/**
+  Helper function for determine if a SELECT statement has a SQL_NO_CACHE
+  directive.
+  
+  @param sql A pointer to the first white space character after SELECT
+  
+  @return
+   @retval TRUE The character string contains SQL_NO_CACHE
+   @retval FALSE No directive found.
+*/
+ 
+static bool has_no_cache_directive(char *sql)
+{
+  int i=0;
+  while (sql[i] == ' ')
+    ++i;
+    
+  if (my_toupper(system_charset_info, sql[i])    == 'S' &&
+      my_toupper(system_charset_info, sql[i+1])  == 'Q' &&
+      my_toupper(system_charset_info, sql[i+2])  == 'L' &&
+      my_toupper(system_charset_info, sql[i+3])  == '_' &&
+      my_toupper(system_charset_info, sql[i+4])  == 'N' &&
+      my_toupper(system_charset_info, sql[i+5])  == 'O' &&
+      my_toupper(system_charset_info, sql[i+6])  == '_' &&
+      my_toupper(system_charset_info, sql[i+7])  == 'C' &&
+      my_toupper(system_charset_info, sql[i+8])  == 'A' &&
+      my_toupper(system_charset_info, sql[i+9])  == 'C' &&
+      my_toupper(system_charset_info, sql[i+10]) == 'H' &&
+      my_toupper(system_charset_info, sql[i+11]) == 'E' &&
+      my_toupper(system_charset_info, sql[i+12]) == ' ')
+    return TRUE;
+  
+  return FALSE;       
+}
+
+
 /*****************************************************************************
  Query_cache_block_table method(s)
 *****************************************************************************/
@@ -1254,6 +1291,16 @@ Query_cache::send_result_to_client(THD *
       DBUG_PRINT("qcache", ("The statement is not a SELECT; Not cached"));
       goto err;
     }
+    
+    if (query_length > 20 && has_no_cache_directive(&sql[i+6]))
+    {
+      /*
+        We do not increase 'refused' statistics here since it will be done
+        later when the query is parsed.
+      */
+      DBUG_PRINT("qcache", ("The statement has a SQL_NO_CACHE directive"));
+      goto err;
+    }
   }
 
   STRUCT_LOCK(&structure_guard_mutex);

=== modified file 'sql/sql_class.cc'
--- a/sql/sql_class.cc	2009-02-18 10:23:38 +0000
+++ b/sql/sql_class.cc	2009-03-06 10:25:21 +0000
@@ -394,6 +394,7 @@ THD::THD()
    rli_fake(0),
    lock_id(&main_lock_id),
    user_time(0), in_sub_stmt(0),
+   sql_log_bin_toplevel(false),
    binlog_table_maps(0), binlog_flags(0UL),
    table_map_for_update(0),
    arg_of_last_insert_id_function(FALSE),
@@ -656,6 +657,7 @@ void THD::init(void)
   update_charset();
   reset_current_stmt_binlog_row_based();
   bzero((char *) &status_var, sizeof(status_var));
+  sql_log_bin_toplevel= options & OPTION_BIN_LOG;
 
 #if defined(ENABLED_DEBUG_SYNC)
   /* Initialize the Debug Sync Facility. See debug_sync.cc. */
@@ -3575,7 +3577,7 @@ int THD::binlog_query(THD::enum_binlog_q
     If we are in statement mode and trying to log an unsafe statement,
     we should print a warning.
   */
-  if (lex->is_stmt_unsafe() &&
+  if (sql_log_bin_toplevel && lex->is_stmt_unsafe() &&
       variables.binlog_format == BINLOG_FORMAT_STMT)
   {
     push_warning(this, MYSQL_ERROR::WARN_LEVEL_WARN,

=== modified file 'sql/sql_class.h'
--- a/sql/sql_class.h	2009-02-13 16:30:54 +0000
+++ b/sql/sql_class.h	2009-03-05 12:26:25 +0000
@@ -1338,6 +1338,8 @@ public:
 
   /* <> 0 if we are inside of trigger or stored function. */
   uint in_sub_stmt;
+  /* TRUE when the current top has SQL_LOG_BIN ON */
+  bool sql_log_bin_toplevel;
 
   /* container for handler's private per-connection data */
   Ha_data ha_data[MAX_HA];

=== modified file 'sql/sql_lex.cc'
--- a/sql/sql_lex.cc	2009-02-05 12:49:39 +0000
+++ b/sql/sql_lex.cc	2009-03-05 15:44:02 +0000
@@ -1626,6 +1626,7 @@ void st_select_lex::init_query()
   exclude_from_table_unique_test= no_wrap_view_item= FALSE;
   nest_level= 0;
   link_next= 0;
+  lock_option= TL_READ_DEFAULT;
 }
 
 void st_select_lex::init_select()

=== modified file 'sql/sql_lex.h'
--- a/sql/sql_lex.h	2009-02-04 12:34:03 +0000
+++ b/sql/sql_lex.h	2009-03-05 15:44:02 +0000
@@ -698,6 +698,15 @@ public:
   int cur_pos_in_select_list;
 
   List<udf_func>     udf_list;                  /* udf function calls stack */
+
+  /**
+    Per sub-query locking strategy.
+    Note: This variable might interfer with the corresponding statement-level
+    variable Lex::lock_option because on how different parser rules depend
+    on eachother.
+  */
+  thr_lock_type lock_option;
+
   /* 
     This is a copy of the original JOIN USING list that comes from
     the parser. The parser :

=== modified file 'sql/sql_parse.cc'
--- a/sql/sql_parse.cc	2009-02-19 14:10:58 +0000
+++ b/sql/sql_parse.cc	2009-03-06 10:25:21 +0000
@@ -5513,6 +5513,14 @@ void mysql_reset_thd_for_next_command(TH
 }
 
 
+/**
+  Resets the lex->current_select object.
+  @note It is assumed that lex->current_select != NULL
+
+  This function is a wrapper around select_lex->init_select() with an added
+  check for the special situation when using INTO OUTFILE and LOAD DATA.
+*/
+
 void
 mysql_init_select(LEX *lex)
 {
@@ -5527,6 +5535,18 @@ mysql_init_select(LEX *lex)
 }
 
 
+/**
+  Used to allocate a new SELECT_LEX object on the current thd mem_root and
+  link it into the relevant lists.
+
+  This function is always followed by mysql_init_select.
+
+  @see mysql_init_select
+
+  @retval TRUE An error occurred
+  @retval FALSE The new SELECT_LEX was successfully allocated.
+*/
+
 bool
 mysql_new_select(LEX *lex, bool move_down)
 {
@@ -6363,7 +6383,6 @@ void st_select_lex::set_lock_for_tables(
   DBUG_ENTER("set_lock_for_tables");
   DBUG_PRINT("enter", ("lock_type: %d  for_update: %d", lock_type,
 		       for_update));
-
   for (TABLE_LIST *tables= (TABLE_LIST*) table_list.first;
        tables;
        tables= tables->next_local)

=== modified file 'sql/sql_show.cc'
--- a/sql/sql_show.cc	2009-02-25 12:42:06 +0000
+++ b/sql/sql_show.cc	2009-03-05 12:22:26 +0000
@@ -3868,11 +3868,23 @@ void store_column_type(TABLE *table, Fie
   /* DTD_IDENTIFIER column */
   table->field[offset + 7]->store(column_type.ptr(), column_type.length(), cs);
   table->field[offset + 7]->set_notnull();
+  /*
+    DATA_TYPE column:
+    MySQL column type has the following format:
+    base_type [(dimension)] [unsigned] [zerofill].
+    For DATA_TYPE column we extract only base type.
+  */
   tmp_buff= strchr(column_type.ptr(), '(');
-  /* DATA_TYPE column */
+  if (!tmp_buff)
+    /*
+      if there is no dimention part then check the presence of
+      [unsigned] [zerofill] attributes and cut them of if exist.
+    */
+    tmp_buff= strchr(column_type.ptr(), ' ');
   table->field[offset]->store(column_type.ptr(),
-                         (tmp_buff ? tmp_buff - column_type.ptr() :
-                          column_type.length()), cs);
+                              (tmp_buff ? tmp_buff - column_type.ptr() :
+                               column_type.length()), cs);
+
   is_blob= (field->type() == MYSQL_TYPE_BLOB);
   if (field->has_charset() || is_blob ||
       field->real_type() == MYSQL_TYPE_VARCHAR ||  // For varbinary type
@@ -4063,6 +4075,8 @@ static int get_schema_column_record(THD
     table->field[3]->store(field->field_name, strlen(field->field_name),
                            cs);
     table->field[4]->store((longlong) count, TRUE);
+    field->sql_type(type);
+    table->field[14]->store(type.ptr(), type.length(), cs);
 
     if (get_field_default_value(thd, timestamp_field, field, &type, 0))
     {

=== modified file 'sql/sql_table.cc'
--- a/sql/sql_table.cc	2009-02-20 12:37:37 +0000
+++ b/sql/sql_table.cc	2009-03-05 08:51:30 +0000
@@ -4364,7 +4364,14 @@ static bool mysql_admin_table(THD* thd,
           view_checksum(thd, table) == HA_ADMIN_WRONG_CHECKSUM)
         push_warning(thd, MYSQL_ERROR::WARN_LEVEL_WARN,
                      ER_VIEW_CHECKSUM, ER(ER_VIEW_CHECKSUM));
-      result_code= HA_ADMIN_CORRUPT;
+      if (thd->stmt_da->is_error() && 
+          (thd->stmt_da->sql_errno() == ER_NO_SUCH_TABLE ||
+           thd->stmt_da->sql_errno() == ER_FILE_NOT_FOUND))
+        /* A missing table is just issued as a failed command */
+        result_code= HA_ADMIN_FAILED;
+      else
+        /* Default failure code is corrupt table */
+        result_code= HA_ADMIN_CORRUPT;
       goto send_result;
     }
 

=== modified file 'sql/sql_yacc.yy'
--- a/sql/sql_yacc.yy	2009-02-19 14:10:58 +0000
+++ b/sql/sql_yacc.yy	2009-03-05 15:44:02 +0000
@@ -6973,6 +6973,7 @@ select_lock_type:
           {
             LEX *lex=Lex;
             lex->current_select->set_lock_for_tables(TL_WRITE);
+            lex->current_select->lock_option= TL_WRITE;
             lex->safe_to_cache_query=0;
           }
         | LOCK_SYM IN_SYM SHARE_SYM MODE_SYM
@@ -6980,6 +6981,7 @@ select_lock_type:
             LEX *lex=Lex;
             lex->current_select->
               set_lock_for_tables(TL_READ_WITH_SHARED_LOCKS);
+            lex->current_select->lock_option= TL_READ_WITH_SHARED_LOCKS;
             lex->safe_to_cache_query=0;
           }
         ;
@@ -13525,6 +13527,18 @@ subselect_start:
 subselect_end:
           {
             LEX *lex=Lex;
+            /*
+              Set the required lock level for the tables associated with the
+              current sub-select. This will overwrite previous lock options set
+              using st_select_lex::add_table_to_list in any of the following
+              rules: single_multi, table_wild_one, load_data, table_alias_ref,
+              table_factor.
+              The default lock level is TL_READ_DEFAULT but it can be modified
+              with query options specific for a certain (sub-)SELECT.
+            */
+            lex->current_select->
+              set_lock_for_tables(lex->current_select->lock_option);
+
             lex->pop_context();
             SELECT_LEX *child= lex->current_select;
             lex->current_select = lex->current_select->return_after_parsing();
@@ -13556,6 +13570,7 @@ query_expression_option:
             if (check_simple_select())
               MYSQL_YYABORT;
             Lex->lock_option= TL_READ_HIGH_PRIORITY;
+            Lex->current_select->lock_option= TL_READ_HIGH_PRIORITY;
           }
         | DISTINCT         { Select->options|= SELECT_DISTINCT; }
         | SQL_SMALL_RESULT { Select->options|= SELECT_SMALL_RESULT; }

=== modified file 'sql/unireg.cc'
--- a/sql/unireg.cc	2009-02-13 16:30:54 +0000
+++ b/sql/unireg.cc	2009-03-06 12:24:03 +0000
@@ -224,16 +224,15 @@ bool mysql_create_frm(THD *thd, const ch
     if ((thd->variables.sql_mode &
          (MODE_STRICT_TRANS_TABLES | MODE_STRICT_ALL_TABLES)))
     {
-      my_error(ER_WRONG_STRING_LENGTH, MYF(0),
-                 create_info->comment.str,"TABLE COMMENT",
-                 (uint) TABLE_COMMENT_MAXLEN);
+      my_error(ER_TOO_LONG_TABLE_COMMENT, MYF(0),
+               table, (uint) TABLE_COMMENT_MAXLEN);
       my_free(screen_buff,MYF(0));
       DBUG_RETURN(1);
     }
     push_warning_printf(current_thd, MYSQL_ERROR::WARN_LEVEL_WARN,
-                        ER_WRONG_STRING_LENGTH, ER(ER_WRONG_STRING_LENGTH),
-                        create_info->comment.str,"TABLE COMMENT",
-                        (uint) TABLE_COMMENT_MAXLEN);
+                        ER_TOO_LONG_TABLE_COMMENT,
+                        ER(ER_TOO_LONG_TABLE_COMMENT),
+                        table, (uint) TABLE_COMMENT_MAXLEN);
     create_info->comment.length= tmp_len;
   }
 
@@ -704,15 +703,14 @@ static bool pack_header(uchar *forminfo,
       if ((current_thd->variables.sql_mode &
 	   (MODE_STRICT_TRANS_TABLES | MODE_STRICT_ALL_TABLES)))
       {
-        my_error(ER_WRONG_STRING_LENGTH, MYF(0),
-                   field->comment.str,"COLUMN COMMENT",
-                   (uint) COLUMN_COMMENT_MAXLEN);
+        my_error(ER_TOO_LONG_FIELD_COMMENT, MYF(0),
+                 field->field_name, (uint) COLUMN_COMMENT_MAXLEN);
 	DBUG_RETURN(1);
       }
       push_warning_printf(current_thd, MYSQL_ERROR::WARN_LEVEL_WARN,
-                          ER_WRONG_STRING_LENGTH, ER(ER_WRONG_STRING_LENGTH),
-                          field->comment.str,"COLUMN COMMENT",
-                          (uint) COLUMN_COMMENT_MAXLEN);
+                          ER_TOO_LONG_FIELD_COMMENT,
+                          ER(ER_TOO_LONG_FIELD_COMMENT),
+                          field->field_name, (uint) COLUMN_COMMENT_MAXLEN);
       field->comment.length= tmp_len;
     }
 

=== modified file 'storage/innobase/dict/dict0load.c'
--- a/storage/innobase/dict/dict0load.c	2007-11-06 22:42:58 +0000
+++ b/storage/innobase/dict/dict0load.c	2009-03-03 01:08:02 +0000
@@ -868,11 +868,11 @@ err_exit:
 	of the error condition, since the user may want to dump data from the
 	clustered index. However we load the foreign key information only if
 	all indexes were loaded. */
-	if (err != DB_SUCCESS && !srv_force_recovery) {
-		dict_mem_table_free(table);
-		table = NULL;
-	} else if (err == DB_SUCCESS) {
+	if (err == DB_SUCCESS) {
 		err = dict_load_foreigns(table->name, TRUE);
+	} else if (!srv_force_recovery) {
+		dict_table_remove_from_cache(table);
+		table = NULL;
 	}
 #if 0
 	if (err != DB_SUCCESS && table != NULL) {

=== modified file 'storage/innobase/fsp/fsp0fsp.c'
--- a/storage/innobase/fsp/fsp0fsp.c	2007-08-15 23:44:25 +0000
+++ b/storage/innobase/fsp/fsp0fsp.c	2009-02-14 23:39:25 +0000
@@ -212,6 +212,9 @@ the extent are free and which contain ol
 /* Offset of the descriptor array on a descriptor page */
 #define	XDES_ARR_OFFSET		(FSP_HEADER_OFFSET + FSP_HEADER_SIZE)
 
+/* Flag to indicate if we have printed the tablespace full error. */
+static ibool fsp_tbs_full_error_printed = FALSE;
+
 /**************************************************************************
 Returns an extent to the free list of a space. */
 static
@@ -1102,6 +1105,19 @@ fsp_try_extend_data_file(
 
 	if (space == 0 && !srv_auto_extend_last_data_file) {
 
+		/* We print the error message only once to avoid
+		spamming the error log. Note that we don't need
+		to reset the flag to FALSE as dealing with this
+		error requires server restart. */
+		if (fsp_tbs_full_error_printed == FALSE) {
+			fprintf(stderr,
+				"InnoDB: Error: Data file(s) ran"
+				" out of space.\n"
+				"Please add another data file or"
+				" use \'autoextend\' for the last"
+				" data file.\n");
+			fsp_tbs_full_error_printed = TRUE;
+		}
 		return(FALSE);
 	}
 

=== modified file 'storage/innobase/handler/ha_innodb.cc'
--- a/storage/innobase/handler/ha_innodb.cc	2009-02-24 11:56:59 +0000
+++ b/storage/innobase/handler/ha_innodb.cc	2009-03-03 06:05:05 +0000
@@ -896,23 +896,26 @@ innobase_mysql_tmpfile(void)
 		my_close(). */
 
 #ifdef _WIN32
-		/* Note that on Windows, the integer returned by mysql_tmpfile 
-		has no relation to C runtime file descriptor. Here, we need 
-		to call my_get_osfhandle to get the HANDLE and then convert it 
+		/* Note that on Windows, the integer returned by mysql_tmpfile
+		has no relation to C runtime file descriptor. Here, we need
+		to call my_get_osfhandle to get the HANDLE and then convert it
 		to C runtime filedescriptor. */
-		{
-			HANDLE hFile = my_get_osfhandle(fd);
-			HANDLE hDup;
-			BOOL bOK = 
-				DuplicateHandle(GetCurrentProcess(), hFile, GetCurrentProcess(),
-								&hDup, 0, FALSE, DUPLICATE_SAME_ACCESS);
-			if(bOK) {
-				fd2 = _open_osfhandle((intptr_t)hDup,0);
-			}
-			else {
-				my_osmaperr(GetLastError());
-				fd2 = -1;
-			}	
+		HANDLE	osf_handle = my_get_osfhandle(fd);
+		HANDLE	dup_handle;
+		BOOL	ret = DuplicateHandle(GetCurrentProcess(),
+					      osf_handle,
+					      GetCurrentProcess(),
+					      &dup_handle,
+					      0,
+					      FALSE,
+					      DUPLICATE_SAME_ACCESS);
+
+		if (ret != 0) {
+			fd2 = _open_osfhandle((intptr_t) dup_handle, 0);
+		}
+		else {
+			my_osmaperr(GetLastError());
+			fd2 = -1;
 		}
 #else
 		fd2 = dup(fd);
@@ -1790,8 +1793,8 @@ innobase_init(
 		goto error;
 	}
 
-        (void) my_hash_init(&innobase_open_tables,system_charset_info, 32, 0, 0,
-                            (my_hash_get_key) innobase_get_key, 0, 0);
+	(void) my_hash_init(&innobase_open_tables, system_charset_info, 32, 0, 0,
+					(my_hash_get_key) innobase_get_key, 0, 0);
 	pthread_mutex_init(&innobase_share_mutex, MY_MUTEX_INIT_FAST);
 	pthread_mutex_init(&prepare_commit_mutex, MY_MUTEX_INIT_FAST);
 	pthread_mutex_init(&commit_threads_m, MY_MUTEX_INIT_FAST);
@@ -1999,6 +2002,19 @@ retry:
 			}
 		}
 
+		/* The following calls to read the MySQL binary log
+		file name and the position return consistent results:
+		1) Other InnoDB transactions cannot intervene between
+		these calls as we are holding prepare_commit_mutex.
+		2) Binary logging of other engines is not relevant
+		to InnoDB as all InnoDB requires is that committing
+		InnoDB transactions appear in the same order in the
+		MySQL binary log as they appear in InnoDB logs.
+		3) A MySQL log file rotation cannot happen because
+		MySQL protects against this by having a counter of
+		transactions in prepared state and it only allows
+		a rotation when the counter drops to zero. See
+		LOCK_prep_xids and COND_prep_xids in log.cc. */
 		trx->mysql_log_file_name = mysql_bin_log_file_name();
 		trx->mysql_log_offset = (ib_longlong) mysql_bin_log_file_pos();
 
@@ -3896,7 +3912,7 @@ calc_row_difference(
 	upd_t*		uvect,		/* in/out: update vector */
 	uchar*		old_row,	/* in: old row in MySQL format */
 	uchar*		new_row,	/* in: new row in MySQL format */
-	TABLE*          table,		/* in: table in MySQL data
+	TABLE*		table,		/* in: table in MySQL data
 					dictionary */
 	uchar*		upd_buff,	/* in: buffer to use */
 	ulint		buff_len,	/* in: buffer length */
@@ -5026,9 +5042,19 @@ create_table_def(
 
 			charset_no = (ulint)field->charset()->number;
 
-			ut_a(charset_no < 256); /* in data0type.h we assume
-						that the number fits in one
-						byte */
+			if (UNIV_UNLIKELY(charset_no >= 256)) {
+				/* in data0type.h we assume that the
+				number fits in one byte in prtype */
+				push_warning_printf(
+					(THD*) trx->mysql_thd,
+					MYSQL_ERROR::WARN_LEVEL_ERROR,
+					ER_CANT_CREATE_TABLE,
+					"In InnoDB, charset-collation codes"
+					" must be below 256."
+					" Unsupported code %lu.",
+					(ulong) charset_no);
+				DBUG_RETURN(ER_CANT_CREATE_TABLE);
+			}
 		}
 
 		ut_a(field->type() < 256); /* we assume in dtype_form_prtype()
@@ -6163,7 +6189,7 @@ ha_innobase::info(
 		}
 
 		stats.check_time = 0;
-	        stats.mrr_length_per_rec= ref_length +  8; // 8 = max(sizeof(void *));
+		stats.mrr_length_per_rec= ref_length +  8; // 8 = max(sizeof(void *));
 
 		if (stats.records == 0) {
 			stats.mean_rec_length = 0;
@@ -6725,18 +6751,18 @@ int ha_innobase::reset()
 
 	reset_template(prebuilt);
 
-	/* TODO: This should really be reset in reset_template() but for now
-	it's safer to do it explicitly here. */
-
-	/* This is a statement level counter. */
-	prebuilt->autoinc_last_value = 0;
-
 	/* Reset index condition pushdown state */
 	pushed_idx_cond_keyno= MAX_KEY;
 	pushed_idx_cond= NULL;
 	ds_mrr.dsmrr_close();
 	prebuilt->idx_cond_func= NULL;
 
+	/* TODO: This should really be reset in reset_template() but for now
+	it's safer to do it explicitly here. */
+
+	/* This is a statement level counter. */
+	prebuilt->autoinc_last_value = 0;
+
 	return(0);
 }
 
@@ -7482,6 +7508,7 @@ ha_innobase::store_lock(
 		    && isolation_level != TRX_ISO_SERIALIZABLE
 		    && (lock_type == TL_READ || lock_type == TL_READ_NO_INSERT)
 		    && (sql_command == SQLCOM_INSERT_SELECT
+			|| sql_command == SQLCOM_REPLACE_SELECT
 			|| sql_command == SQLCOM_UPDATE
 			|| sql_command == SQLCOM_CREATE_TABLE)) {
 
@@ -7489,10 +7516,11 @@ ha_innobase::store_lock(
 			option set or this session is using READ COMMITTED
 			isolation level and isolation level of the transaction
 			is not set to serializable and MySQL is doing
-			INSERT INTO...SELECT or UPDATE ... = (SELECT ...) or
-			CREATE  ... SELECT... without FOR UPDATE or
-			IN SHARE MODE in select, then we use consistent
-			read for select. */
+			INSERT INTO...SELECT or REPLACE INTO...SELECT
+			or UPDATE ... = (SELECT ...) or CREATE  ...
+			SELECT... without FOR UPDATE or IN SHARE
+			MODE in select, then we use consistent read
+			for select. */
 
 			prebuilt->select_lock_type = LOCK_NONE;
 			prebuilt->stored_select_lock_type = LOCK_NONE;

=== modified file 'storage/innobase/handler/ha_innodb.h'
--- a/storage/innobase/handler/ha_innodb.h	2009-01-06 10:38:47 +0000
+++ b/storage/innobase/handler/ha_innodb.h	2009-02-27 23:43:14 +0000
@@ -68,7 +68,7 @@ class ha_innobase: public handler
 	uint		num_write_row;	/* number of write_row() calls */
 
 	uint store_key_val_for_row(uint keynr, char* buff, uint buff_len,
-                                   const uchar* record);
+				   const uchar* record);
 	int update_thd(THD* thd);
 	int change_active_index(uint keynr);
 	int general_fetch(uchar* buf, uint direction, uint match_mode);
@@ -80,7 +80,7 @@ class ha_innobase: public handler
 	ulong innobase_update_autoinc(ulonglong	auto_inc);
 	ulong innobase_initialize_autoinc();
 	dict_index_t* innobase_get_index(uint keynr);
- 	ulonglong innobase_get_int_col_max_value(const Field* field);
+	ulonglong innobase_get_int_col_max_value(const Field* field);
 
 	/* Init values for the class: */
  public:
@@ -102,8 +102,8 @@ class ha_innobase: public handler
 		  HA_READ_PREV |
 		  HA_READ_ORDER |
 		  HA_READ_RANGE |
-		  HA_KEYREAD_ONLY | 
-                  ((idx == primary_key)? 0 : HA_DO_INDEX_COND_PUSHDOWN));
+		  HA_KEYREAD_ONLY |
+		  ((idx == primary_key) ? 0 : HA_DO_INDEX_COND_PUSHDOWN));
 	}
 	uint max_supported_keys()	   const { return MAX_KEY; }
 				/* An InnoDB page must store >= 2 keys;

=== modified file 'storage/innobase/ibuf/ibuf0ibuf.c'
--- a/storage/innobase/ibuf/ibuf0ibuf.c	2007-11-06 22:42:58 +0000
+++ b/storage/innobase/ibuf/ibuf0ibuf.c	2009-02-27 23:43:14 +0000
@@ -2992,6 +2992,13 @@ ibuf_delete_rec(
 	success = btr_pcur_restore_position(BTR_MODIFY_TREE, pcur, mtr);
 
 	if (!success) {
+		if (fil_space_get_version(space) == -1) {
+			/* The tablespace has been dropped.  It is possible
+			that another thread has deleted the insert buffer
+			entry.  Do not complain. */
+			goto commit_and_exit;
+		}
+
 		fprintf(stderr,
 			"InnoDB: ERROR: Submit the output to"
 			" http://bugs.mysql.com\n"
@@ -3018,11 +3025,7 @@ ibuf_delete_rec(
 		fprintf(stderr, "InnoDB: ibuf tree ok\n");
 		fflush(stderr);
 
-		btr_pcur_close(pcur);
-
-		mutex_exit(&ibuf_mutex);
-
-		return(TRUE);
+		goto func_exit;
 	}
 
 	root = ibuf_tree_root_get(ibuf_data, 0, mtr);
@@ -3033,15 +3036,15 @@ ibuf_delete_rec(
 
 #ifdef UNIV_IBUF_DEBUG
 	ibuf_count_set(space, page_no, ibuf_count_get(space, page_no) - 1);
-#else
-	UT_NOT_USED(space);
 #endif
 	ibuf_data_sizes_update(ibuf_data, root, mtr);
 
 	ut_ad(ibuf_validate_low());
 
+commit_and_exit:
 	btr_pcur_commit_specify_mtr(pcur, mtr);
 
+func_exit:
 	btr_pcur_close(pcur);
 
 	mutex_exit(&ibuf_mutex);

=== modified file 'storage/innobase/include/rem0rec.h'
--- a/storage/innobase/include/rem0rec.h	2006-09-21 07:39:09 +0000
+++ b/storage/innobase/include/rem0rec.h	2009-03-03 01:32:04 +0000
@@ -365,8 +365,9 @@ rec_set_field_extern_bits(
 /***************************************************************
 This is used to modify the value of an already existing field in a record.
 The previous value must have exactly the same size as the new value. If len
-is UNIV_SQL_NULL then the field is treated as an SQL null for old-style
-records. For new-style records, len must not be UNIV_SQL_NULL. */
+is UNIV_SQL_NULL then the field is treated as an SQL null.
+For records in ROW_FORMAT=COMPACT (new-style records), len must not be
+UNIV_SQL_NULL unless the field already is SQL null. */
 UNIV_INLINE
 void
 rec_set_nth_field(
@@ -375,11 +376,7 @@ rec_set_nth_field(
 	const ulint*	offsets,/* in: array returned by rec_get_offsets() */
 	ulint		n,	/* in: index number of the field */
 	const void*	data,	/* in: pointer to the data if not SQL null */
-	ulint		len);	/* in: length of the data or UNIV_SQL_NULL.
-				If not SQL null, must have the same
-				length as the previous value.
-				If SQL null, previous value must be
-				SQL null. */
+	ulint		len);	/* in: length of the data or UNIV_SQL_NULL */
 /**************************************************************
 The following function returns the data size of an old-style physical
 record, that is the sum of field lengths. SQL null fields

=== modified file 'storage/innobase/include/rem0rec.ic'
--- a/storage/innobase/include/rem0rec.ic	2007-11-06 22:42:58 +0000
+++ b/storage/innobase/include/rem0rec.ic	2009-03-03 01:32:04 +0000
@@ -1219,8 +1219,9 @@ rec_get_nth_field_size(
 /***************************************************************
 This is used to modify the value of an already existing field in a record.
 The previous value must have exactly the same size as the new value. If len
-is UNIV_SQL_NULL then the field is treated as an SQL null for old-style
-records. For new-style records, len must not be UNIV_SQL_NULL. */
+is UNIV_SQL_NULL then the field is treated as an SQL null.
+For records in ROW_FORMAT=COMPACT (new-style records), len must not be
+UNIV_SQL_NULL unless the field already is SQL null. */
 UNIV_INLINE
 void
 rec_set_nth_field(
@@ -1230,11 +1231,7 @@ rec_set_nth_field(
 	ulint		n,	/* in: index number of the field */
 	const void*	data,	/* in: pointer to the data
 				if not SQL null */
-	ulint		len)	/* in: length of the data or UNIV_SQL_NULL.
-				If not SQL null, must have the same
-				length as the previous value.
-				If SQL null, previous value must be
-				SQL null. */
+	ulint		len)	/* in: length of the data or UNIV_SQL_NULL */
 {
 	byte*	data2;
 	ulint	len2;
@@ -1242,9 +1239,11 @@ rec_set_nth_field(
 	ut_ad(rec);
 	ut_ad(rec_offs_validate(rec, NULL, offsets));
 
-	if (len == UNIV_SQL_NULL) {
-		ut_ad(!rec_offs_comp(offsets));
-		rec_set_nth_field_sql_null(rec, n);
+	if (UNIV_UNLIKELY(len == UNIV_SQL_NULL)) {
+		if (!rec_offs_nth_sql_null(offsets, n)) {
+			ut_a(!rec_offs_comp(offsets));
+			rec_set_nth_field_sql_null(rec, n);
+		}
 
 		return;
 	}

=== modified file 'storage/innobase/include/trx0roll.h'
--- a/storage/innobase/include/trx0roll.h	2006-04-26 04:30:37 +0000
+++ b/storage/innobase/include/trx0roll.h	2009-03-03 01:06:44 +0000
@@ -15,6 +15,8 @@ Created 3/26/1996 Heikki Tuuri
 #include "mtr0mtr.h"
 #include "trx0sys.h"
 
+#define trx_roll_free_all_savepoints(s) trx_roll_savepoints_free((s), NULL)
+
 /***********************************************************************
 Returns a transaction savepoint taken at this point in time. */
 
@@ -237,7 +239,17 @@ trx_release_savepoint_for_mysql(
 	const char*	savepoint_name);	/* in: savepoint name */
 
 /***********************************************************************
-Frees savepoint structs. */
+Frees a single savepoint struct. */
+
+void
+trx_roll_savepoint_free(
+/*=====================*/
+	trx_t*			trx,	/* in: transaction handle */
+	trx_named_savept_t*	savep);	/* in: savepoint to free */
+
+/***********************************************************************
+Frees savepoint structs starting from savep, if savep == NULL then
+free all savepoints. */
 
 void
 trx_roll_savepoints_free(

=== modified file 'storage/innobase/lock/lock0lock.c'
--- a/storage/innobase/lock/lock0lock.c	2008-12-14 20:00:37 +0000
+++ b/storage/innobase/lock/lock0lock.c	2009-03-03 01:10:37 +0000
@@ -681,7 +681,10 @@ lock_is_table_exclusive(
 	lock_t*	lock;
 	ibool	ok	= FALSE;
 
-	ut_ad(table && trx);
+	ut_ad(table);
+	ut_ad(trx);
+
+	lock_mutex_enter_kernel();
 
 	for (lock = UT_LIST_GET_FIRST(table->locks);
 	     lock;
@@ -689,7 +692,7 @@ lock_is_table_exclusive(
 		if (lock->trx != trx) {
 			/* A lock on the table is held
 			by some other transaction. */
-			return(FALSE);
+			goto not_ok;
 		}
 
 		if (!(lock_get_type(lock) & LOCK_TABLE)) {
@@ -706,11 +709,16 @@ lock_is_table_exclusive(
 			auto_increment lock. */
 			break;
 		default:
+not_ok:
 			/* Other table locks than LOCK_IX are not allowed. */
-			return(FALSE);
+			ok = FALSE;
+			goto func_exit;
 		}
 	}
 
+func_exit:
+	lock_mutex_exit_kernel();
+
 	return(ok);
 }
 
@@ -3664,6 +3672,7 @@ lock_table_has_to_wait_in_queue(
 	dict_table_t*	table;
 	lock_t*		lock;
 
+	ut_ad(mutex_own(&kernel_mutex));
 	ut_ad(lock_get_wait(wait_lock));
 
 	table = wait_lock->un_member.tab_lock.table;

=== modified file 'storage/innobase/os/os0thread.c'
--- a/storage/innobase/os/os0thread.c	2008-10-15 22:53:18 +0000
+++ b/storage/innobase/os/os0thread.c	2009-02-27 23:43:14 +0000
@@ -171,6 +171,7 @@ os_thread_create(
 #if !(defined(UNIV_HOTBACKUP) && defined(UNIV_HPUX10))
 	pthread_attr_destroy(&attr);
 #endif
+
 	if (thread_id) {
 		*thread_id = pthread;
 	}

=== modified file 'storage/innobase/row/row0sel.c'
--- a/storage/innobase/row/row0sel.c	2009-01-26 16:03:39 +0000
+++ b/storage/innobase/row/row0sel.c	2009-02-14 23:34:00 +0000
@@ -2588,8 +2588,8 @@ row_sel_store_mysql_rec(
 					template */
 	const ulint*	offsets, 	/* in: array returned by
 					rec_get_offsets() */
-        ulint start_field_no,
-        ulint end_field_no)
+	ulint		start_field_no,	/* in: start from this field */
+	ulint		end_field_no)	/* in: end at this field */
 {
 	mysql_row_templ_t*	templ;
 	mem_heap_t*		extern_field_heap	= NULL;
@@ -3043,8 +3043,9 @@ row_sel_push_cache_row_for_mysql(
 	row_prebuilt_t*	prebuilt,	/* in: prebuilt struct */
 	rec_t*		rec,		/* in: record to push */
 	const ulint*	offsets,	/* in: rec_get_offsets() */
-        ulint           start_field_no, /* psergey: start from this field */
-        byte*           remainder_buf)  /* if above !=0 -> where to take prev fields */
+	ulint		start_field_no,	/* in: start from this field */
+	byte*		remainder_buf)	/* in: if start_field_no !=0,
+					where to take prev fields */
 {
 	byte*	buf;
 	ulint	i;
@@ -3075,29 +3076,40 @@ row_sel_push_cache_row_for_mysql(
 	ut_ad(prebuilt->fetch_cache_first == 0);
 
 	if (UNIV_UNLIKELY(!row_sel_store_mysql_rec(
-				  prebuilt->fetch_cache[
+				prebuilt->fetch_cache[
 					  prebuilt->n_fetch_cached],
-				  prebuilt, rec, offsets, start_field_no,
-                                  prebuilt->n_template))) {
+				prebuilt,
+				rec,
+				offsets,
+				start_field_no,
+				prebuilt->n_template))) {
 		ut_error;
 	}
-        if (start_field_no) {
-          for (i=0; i < start_field_no; i++) {
-            register ulint offs;
-	    mysql_row_templ_t* templ;
-            templ = prebuilt->mysql_template + i;
-
-            if (templ->mysql_null_bit_mask) {
-              offs= templ->mysql_null_byte_offset;
-              *(prebuilt->fetch_cache[prebuilt->n_fetch_cached] + offs) ^= 
-                (*(remainder_buf + offs) & templ->mysql_null_bit_mask);
-            }
-            offs= templ->mysql_col_offset;
-            memcpy(prebuilt->fetch_cache[prebuilt->n_fetch_cached] + offs,
-                   remainder_buf + offs,
-                   templ->mysql_col_len);
-          }
-        }
+
+	if (start_field_no) {
+
+		for (i=0; i < start_field_no; i++) {
+			register		ulint offs;
+			mysql_row_templ_t*	templ;
+
+			templ = prebuilt->mysql_template + i;
+
+			if (templ->mysql_null_bit_mask) {
+				offs = templ->mysql_null_byte_offset;
+
+				*(prebuilt->fetch_cache[
+					  prebuilt->n_fetch_cached] + offs) ^=
+				(*(remainder_buf + offs)
+				& templ->mysql_null_bit_mask);
+			}
+
+			offs = templ->mysql_col_offset;
+			memcpy(prebuilt->fetch_cache[prebuilt->n_fetch_cached]
+			       + offs,
+			       remainder_buf + offs,
+			       templ->mysql_col_len);
+		}
+	}
 
 	prebuilt->n_fetch_cached++;
 }
@@ -3237,8 +3249,8 @@ row_search_for_mysql(
 	mem_heap_t*	heap				= NULL;
 	ulint		offsets_[REC_OFFS_NORMAL_SIZE];
 	ulint*		offsets				= offsets_;
-        ibool           some_fields_in_buffer;
-        ibool           get_clust_rec= 0;
+	ibool		some_fields_in_buffer;
+	ibool		get_clust_rec			= 0;
 
 	*offsets_ = (sizeof offsets_) / sizeof *offsets_;
 
@@ -3491,8 +3503,9 @@ row_search_for_mysql(
 							 rec, offsets));
 #endif
 				if (!row_sel_store_mysql_rec(buf, prebuilt,
-							     rec, offsets, 0, 
-                                                             prebuilt->n_template)) {
+						rec, offsets, 0,
+						prebuilt->n_template)) {
+
 					err = DB_TOO_BIG_RECORD;
 
 					/* We let the main loop to do the
@@ -4086,7 +4099,7 @@ no_gap_lock:
 			information via the clustered index record. */
 
 			ut_ad(index != clust_index);
-                        get_clust_rec= TRUE;
+			get_clust_rec = TRUE;
 			goto idx_cond_check;
 		}
 	}
@@ -4152,15 +4165,15 @@ idx_cond_check:
 
 	/* Get the clustered index record if needed, if we did not do the
 	search using the clustered index. */
-	if (get_clust_rec || (index != clust_index &&
-            prebuilt->need_to_access_clustered)) {
+	if (get_clust_rec || (index != clust_index
+			      && prebuilt->need_to_access_clustered)) {
 
 		/* We use a 'goto' to the preceding label if a consistent
 		read of a secondary index record requires us to look up old
 		versions of the associated clustered index record. */
 
 		ut_ad(rec_offs_validate(rec, index, offsets));
-                
+
 		/* It was a non-clustered index and we must fetch also the
 		clustered index record */
 
@@ -4244,14 +4257,15 @@ idx_cond_check:
 		are BLOBs in the fields to be fetched. In HANDLER we do
 		not cache rows because there the cursor is a scrollable
 		cursor. */
-                some_fields_in_buffer= (index != clust_index &&
-                                        prebuilt->idx_cond_func);
+		some_fields_in_buffer = (index != clust_index
+					 && prebuilt->idx_cond_func);
 
-		row_sel_push_cache_row_for_mysql(prebuilt, result_rec,
-						 offsets, 
-                                                 some_fields_in_buffer? 
-                                                 prebuilt->n_index_fields: 0,
-                                                 buf);
+		row_sel_push_cache_row_for_mysql(prebuilt,
+						 result_rec,
+						 offsets,
+						 some_fields_in_buffer?
+						 prebuilt->n_index_fields: 0,
+						 buf);
 		if (prebuilt->n_fetch_cached == MYSQL_FETCH_CACHE_SIZE) {
 
 			goto got_row;
@@ -4267,10 +4281,10 @@ idx_cond_check:
 					rec_offs_extra_size(offsets) + 4);
 		} else {
 			if (!row_sel_store_mysql_rec(buf, prebuilt,
-						     result_rec, offsets,
-                                                     prebuilt->idx_cond_func? 
-                                                     prebuilt->n_index_fields: 0,
-                                                     prebuilt->n_template)) {
+						   result_rec, offsets,
+						   prebuilt->idx_cond_func?
+						   prebuilt->n_index_fields: 0,
+						   prebuilt->n_template)) {
 				err = DB_TOO_BIG_RECORD;
 
 				goto lock_wait_or_error;
@@ -4314,7 +4328,7 @@ idx_cond_failed:
 
 next_rec:
 	/* Reset the old and new "did semi-consistent read" flags. */
-        get_clust_rec= FALSE;
+	get_clust_rec = FALSE;
 	if (UNIV_UNLIKELY(prebuilt->row_read_type
 			  == ROW_READ_DID_SEMI_CONSISTENT)) {
 		prebuilt->row_read_type = ROW_READ_TRY_SEMI_CONSISTENT;

=== modified file 'storage/innobase/trx/trx0roll.c'
--- a/storage/innobase/trx/trx0roll.c	2007-03-22 21:59:35 +0000
+++ b/storage/innobase/trx/trx0roll.c	2009-03-03 01:06:44 +0000
@@ -185,7 +185,25 @@ trx_rollback_last_sql_stat_for_mysql(
 }
 
 /***********************************************************************
-Frees savepoint structs. */
+Frees a single savepoint struct. */
+
+void
+trx_roll_savepoint_free(
+/*=====================*/
+	trx_t*			trx,	/* in: transaction handle */
+	trx_named_savept_t*	savep)	/* in: savepoint to free */
+{
+	ut_a(savep != NULL);
+	ut_a(UT_LIST_GET_LEN(trx->trx_savepoints) > 0);
+
+	UT_LIST_REMOVE(trx_savepoints, trx->trx_savepoints, savep);
+	mem_free(savep->name);
+	mem_free(savep);
+}
+
+/***********************************************************************
+Frees savepoint structs starting from savep, if savep == NULL then
+free all savepoints. */
 
 void
 trx_roll_savepoints_free(
@@ -206,9 +224,7 @@ trx_roll_savepoints_free(
 	while (savep != NULL) {
 		next_savep = UT_LIST_GET_NEXT(trx_savepoints, savep);
 
-		UT_LIST_REMOVE(trx_savepoints, trx->trx_savepoints, savep);
-		mem_free(savep->name);
-		mem_free(savep);
+		trx_roll_savepoint_free(trx, savep);
 
 		savep = next_savep;
 	}
@@ -343,8 +359,8 @@ trx_savepoint_for_mysql(
 }
 
 /***********************************************************************
-Releases a named savepoint. Savepoints which
-were set after this savepoint are deleted. */
+Releases only the named savepoint. Savepoints which were set after this
+savepoint are left as is. */
 
 ulint
 trx_release_savepoint_for_mysql(
@@ -360,31 +376,16 @@ trx_release_savepoint_for_mysql(
 
 	savep = UT_LIST_GET_FIRST(trx->trx_savepoints);
 
+	/* Search for the savepoint by name and free if found. */
 	while (savep != NULL) {
 		if (0 == ut_strcmp(savep->name, savepoint_name)) {
-			/* Found */
-			break;
+			trx_roll_savepoint_free(trx, savep);
+			return(DB_SUCCESS);
 		}
 		savep = UT_LIST_GET_NEXT(trx_savepoints, savep);
 	}
 
-	if (savep == NULL) {
-
-		return(DB_NO_SAVEPOINT);
-	}
-
-	/* We can now free all savepoints strictly later than this one */
-
-	trx_roll_savepoints_free(trx, savep);
-
-	/* Now we can free this savepoint too */
-
-	UT_LIST_REMOVE(trx_savepoints, trx->trx_savepoints, savep);
-
-	mem_free(savep->name);
-	mem_free(savep);
-
-	return(DB_SUCCESS);
+	return(DB_NO_SAVEPOINT);
 }
 
 /***********************************************************************

=== modified file 'storage/innobase/trx/trx0trx.c'
--- a/storage/innobase/trx/trx0trx.c	2009-01-26 16:03:39 +0000
+++ b/storage/innobase/trx/trx0trx.c	2009-03-03 06:05:05 +0000
@@ -930,8 +930,8 @@ trx_commit_off_kernel(
 		mutex_enter(&kernel_mutex);
 	}
 
-	/* Free savepoints */
-	trx_roll_savepoints_free(trx, NULL);
+	/* Free all savepoints */
+	trx_roll_free_all_savepoints(trx);
 
 	trx->conc_state = TRX_NOT_STARTED;
 	trx->rseg = NULL;

Attachment: [text/bzr-bundle] bzr/azundris@mysql.com-20090306152840-u1ioavdgzg0hukjx.bundle
Thread
bzr commit into mysql-6.0-bugteam branch (azundris:3088) Tatiana A. Nurnberg6 Mar