List:Commits« Previous MessageNext Message »
From:tim Date:August 2 2006 2:48am
Subject:bk commit into 5.1 tree (tsmith:1.2256)
View as plain text  
Below is the list of changes that have just been committed into a local
5.1 repository of tim. When tim does a push these changes will
be propagated to the main repository and, within 24 hours after the
push, to the public repository.
For information on how to access the public repository
see http://dev.mysql.com/doc/mysql/en/installing-source-tree.html

ChangeSet@stripped, 2006-08-01 20:48:35-06:00, tsmith@stripped +20 -0
  Manual merge: global 5.0 -> 5.1: part 1 of 2 (or more?)
  MERGE: 1.1810.1696.88

  client/mysql.cc@stripped, 2006-08-01 20:48:28-06:00, tsmith@stripped +0 -0
    Manual merge: global 5.0 -> 5.1: part 1 of 2 (or more?)
    MERGE: 1.199.1.10

  client/mysqldump.c@stripped, 2006-08-01 20:48:28-06:00, tsmith@stripped +0 -0
    Manual merge: global 5.0 -> 5.1: part 1 of 2 (or more?)
    MERGE: 1.214.1.21

  mysql-test/r/date_formats.result@stripped, 2006-08-01 20:48:28-06:00, tsmith@stripped +1 -1
    Manual merge: global 5.0 -> 5.1: part 1 of 2 (or more?)
    MERGE: 1.18.1.6

  mysql-test/r/func_str.result@stripped, 2006-08-01 20:48:28-06:00, tsmith@stripped +0 -0
    Manual merge: global 5.0 -> 5.1: part 1 of 2 (or more?)
    MERGE: 1.110.1.7

  mysql-test/r/insert_select.result@stripped, 2006-08-01 20:48:28-06:00, tsmith@stripped +0 -0
    Manual merge: global 5.0 -> 5.1: part 1 of 2 (or more?)
    MERGE: 1.35.1.4

  mysql-test/r/mysqldump.result@stripped, 2006-08-01 20:48:28-06:00, tsmith@stripped +5 -91
    Manual merge: global 5.0 -> 5.1: part 1 of 2 (or more?)
    MERGE: 1.83.1.22

  mysql-test/r/warnings.result@stripped, 2006-08-01 20:48:28-06:00, tsmith@stripped +2 -2
    Manual merge: global 5.0 -> 5.1: part 1 of 2 (or more?)
    MERGE: 1.34.1.2

  mysql-test/t/date_formats.test@stripped, 2006-08-01 20:48:28-06:00, tsmith@stripped +0 -0
    Manual merge: global 5.0 -> 5.1: part 1 of 2 (or more?)
    MERGE: 1.14.1.7

  mysql-test/t/func_str.test@stripped, 2006-08-01 20:48:28-06:00, tsmith@stripped +0 -0
    Manual merge: global 5.0 -> 5.1: part 1 of 2 (or more?)
    MERGE: 1.90.1.2

  mysql-test/t/mysqldump.test@stripped, 2006-08-01 20:48:28-06:00, tsmith@stripped +1 -1
    Manual merge: global 5.0 -> 5.1: part 1 of 2 (or more?)
    MERGE: 1.76.1.21

  mysql-test/t/warnings.test@stripped, 2006-08-01 20:48:28-06:00, tsmith@stripped +2 -2
    Manual merge: global 5.0 -> 5.1: part 1 of 2 (or more?)
    MERGE: 1.22.1.2

  sql/handler.cc@stripped, 2006-08-01 20:48:28-06:00, tsmith@stripped +0 -3
    Manual merge: global 5.0 -> 5.1: part 1 of 2 (or more?)
    MERGE: 1.167.1.49

  sql/item_strfunc.cc@stripped, 2006-08-01 20:48:29-06:00, tsmith@stripped +0 -0
    Manual merge: global 5.0 -> 5.1: part 1 of 2 (or more?)
    MERGE: 1.261.1.15

  sql/mysql_priv.h@stripped, 2006-08-01 20:48:29-06:00, tsmith@stripped +3 -4
    Manual merge: global 5.0 -> 5.1: part 1 of 2 (or more?)
    MERGE: 1.290.1.110

  sql/mysqld.cc@stripped, 2006-08-01 20:48:29-06:00, tsmith@stripped +2 -3
    Manual merge: global 5.0 -> 5.1: part 1 of 2 (or more?)
    MERGE: 1.439.1.123

  sql/set_var.cc@stripped, 2006-08-01 20:48:29-06:00, tsmith@stripped +1 -1
    Manual merge: global 5.0 -> 5.1: part 1 of 2 (or more?)
    MERGE: 1.125.5.17

  sql/sql_class.cc@stripped, 2006-08-01 20:48:29-06:00, tsmith@stripped +0 -0
    Manual merge: global 5.0 -> 5.1: part 1 of 2 (or more?)
    MERGE: 1.223.1.19

  sql/sql_insert.cc@stripped, 2006-08-01 20:48:29-06:00, tsmith@stripped +0 -0
    Manual merge: global 5.0 -> 5.1: part 1 of 2 (or more?)
    MERGE: 1.146.1.51

  sql/time.cc@stripped, 2006-08-01 20:48:29-06:00, tsmith@stripped +0 -0
    Manual merge: global 5.0 -> 5.1: part 1 of 2 (or more?)
    MERGE: 1.57.1.2

  support-files/mysql.spec.sh@stripped, 2006-08-01 20:48:29-06:00, tsmith@stripped +0 -2
    Manual merge: global 5.0 -> 5.1: part 1 of 2 (or more?)
    MERGE: 1.99.1.51

# This is a BitKeeper patch.  What follows are the unified diffs for the
# set of deltas contained in the patch.  The rest of the patch, the part
# that BitKeeper cares about, is below these diffs.
# User:	tsmith
# Host:	siva.hindu.god
# Root:	/usr/home/tim/m/bk/g51/RESYNC

--- 1.242/client/mysqldump.c	2006-08-01 20:48:48 -06:00
+++ 1.243/client/mysqldump.c	2006-08-01 20:48:48 -06:00
@@ -2910,7 +2910,7 @@ static int init_dumping(char *database)
       /*
         length of table name * 2 (if name contains quotes), 2 quotes and 0
       */
-      char quoted_database_buf[64*2+3];
+      char quoted_database_buf[NAME_LEN*2+3];
       char *qdatabase= quote_name(database,quoted_database_buf,opt_quoted);
       if (opt_comments)
       {
@@ -3067,7 +3067,18 @@ static my_bool dump_all_views_in_db(char
     DB_error(sock, "when selecting the database");
     return 1;
   }
-
+  if (opt_databases || opt_alldbs)
+  {
+    char quoted_database_buf[NAME_LEN*2+3];
+    char *qdatabase= quote_name(database,quoted_database_buf,opt_quoted);
+    if (opt_comments)
+    {
+      fprintf(md_result_file,"\n--\n-- Current Database: %s\n--\n", qdatabase);
+      check_io(md_result_file);
+    }
+    fprintf(md_result_file,"\nUSE %s;\n", qdatabase);
+    check_io(md_result_file);
+  }
   if (opt_xml)
     print_xml_tag1(md_result_file, "", "database name=", database, "\n");
   if (lock_tables)
@@ -3526,7 +3537,7 @@ static char *primary_key_fields(const ch
   MYSQL_RES  *res = NULL;
   MYSQL_ROW  row;
   /* SHOW KEYS FROM + table name * 2 (escaped) + 2 quotes + \0 */
-  char show_keys_buff[15 + 64 * 2 + 3];
+  char show_keys_buff[15 + NAME_LEN * 2 + 3];
   uint result_length = 0;
   char *result = 0;
 

--- 1.423/sql/mysql_priv.h	2006-08-01 20:48:48 -06:00
+++ 1.424/sql/mysql_priv.h	2006-08-01 20:48:48 -06:00
@@ -1672,6 +1672,9 @@ extern SHOW_COMP_OPTION have_partition_d
 extern handlerton myisam_hton;
 extern handlerton myisammrg_hton;
 extern handlerton heap_hton;
+extern handlerton myisammrg_hton;
+/* MRG_MYISAM handler is always built, but may be skipped */
+#define have_merge_db myisammrg_hton.state
 
 extern SHOW_COMP_OPTION have_row_based_replication;
 extern SHOW_COMP_OPTION have_raid, have_openssl, have_symlink, have_dlopen;

--- 1.572/sql/mysqld.cc	2006-08-01 20:48:48 -06:00
+++ 1.573/sql/mysqld.cc	2006-08-01 20:48:48 -06:00
@@ -310,7 +310,7 @@ static bool lower_case_table_names_used=
 static bool volatile select_thread_in_use, signal_thread_in_use;
 static bool volatile ready_to_exit;
 static my_bool opt_debugging= 0, opt_external_locking= 0, opt_console= 0;
-static my_bool opt_bdb, opt_isam, opt_ndbcluster;
+static my_bool opt_bdb, opt_isam, opt_ndbcluster, opt_merge;
 static my_bool opt_short_log_format= 0;
 static uint kill_cached_threads, wake_thread;
 static ulong killed_threads, thread_created;
@@ -4838,7 +4838,8 @@ enum options_mysqld
   OPT_LOG_OUTPUT,
   OPT_PORT_OPEN_TIMEOUT,
   OPT_GENERAL_LOG,
-  OPT_SLOW_LOG
+  OPT_SLOW_LOG,
+  OPT_MERGE
 };
 
 
@@ -5346,6 +5347,9 @@ master-ssl",
 #endif /* HAVE_REPLICATION */
   {"memlock", OPT_MEMLOCK, "Lock mysqld in memory.", (gptr*) &locked_in_memory,
    (gptr*) &locked_in_memory, 0, GET_BOOL, NO_ARG, 0, 0, 0, 0, 0, 0},
+  {"merge", OPT_MERGE, "Enable Merge storage engine. Disable with \
+--skip-merge.",
+   (gptr*) &opt_merge, (gptr*) &opt_merge, 0, GET_BOOL, NO_ARG, 1, 0, 0, 0, 0},
   {"myisam-recover", OPT_MYISAM_RECOVER,
    "Syntax: myisam-recover[=option[,option...]], where option can be DEFAULT, BACKUP, FORCE or QUICK.",
    (gptr*) &myisam_recover_options_str, (gptr*) &myisam_recover_options_str, 0,
@@ -7556,6 +7560,11 @@ get_one_option(int optid, const struct m
     global_system_variables.tx_isolation= (type-1);
     break;
   }
+  case OPT_MERGE:
+    if (opt_merge)
+      have_merge_db= SHOW_OPTION_YES;
+    else
+      have_merge_db= SHOW_OPTION_DISABLED;
 #ifdef WITH_BERKELEY_STORAGE_ENGINE
   case OPT_BDB_NOSYNC:
     /* Deprecated option */

--- 1.216/sql/sql_insert.cc	2006-08-01 20:48:48 -06:00
+++ 1.217/sql/sql_insert.cc	2006-08-01 20:48:48 -06:00
@@ -810,11 +810,18 @@ static bool mysql_prepare_insert_check_t
   bool insert_into_view= (table_list->view != 0);
   DBUG_ENTER("mysql_prepare_insert_check_table");
 
+  /*
+     first table in list is the one we'll INSERT into, requires INSERT_ACL.
+     all others require SELECT_ACL only. the ACL requirement below is for
+     new leaves only anyway (view-constituents), so check for SELECT rather
+     than INSERT.
+  */
+
   if (setup_tables_and_check_access(thd, &thd->lex->select_lex.context,
                                     &thd->lex->select_lex.top_join_list,
                                     table_list,
                                     &thd->lex->select_lex.leaf_tables,
-                                    select_insert, INSERT_ACL))
+                                    select_insert, SELECT_ACL))
     DBUG_RETURN(TRUE);
 
   if (insert_into_view && !fields.elements)

--- 1.29/mysql-test/r/date_formats.result	2006-08-01 20:48:48 -06:00
+++ 1.30/mysql-test/r/date_formats.result	2006-08-01 20:48:48 -06:00
@@ -506,7 +506,7 @@ set lc_time_names=ru_RU;
 set names koi8r;
 select date_format('2004-01-01','%W (%a), %e %M (%b) %Y');
 date_format('2004-01-01','%W (%a), %e %M (%b) %Y')
+þÅÔ×ÅÒÇ (þÔ×), 1 ñÎ×ÁÒÑ (ñÎ×) 2004
 set lc_time_names=de_DE;
 set names latin1;
 select date_format('2004-01-01','%W (%a), %e %M (%b) %Y');

--- 1.39/mysql-test/r/insert_select.result	2006-08-01 20:48:48 -06:00
+++ 1.40/mysql-test/r/insert_select.result	2006-08-01 20:48:48 -06:00
@@ -695,3 +695,103 @@ CREATE TABLE t2 (z int, y int);
 CREATE TABLE t3 (a int, b int);
 INSERT INTO t3 (SELECT x, y FROM t1 JOIN t2 USING (y) WHERE z = 1);
 DROP TABLE IF EXISTS t1,t2,t3;
+CREATE DATABASE meow;
+CREATE TABLE table_target   ( mexs_id CHAR(8), messzeit TIMESTAMP, PRIMARY KEY (mexs_id));
+CREATE TABLE table_target2  ( mexs_id CHAR(8), messzeit TIMESTAMP, PRIMARY KEY (mexs_id));
+CREATE TABLE table_target3  ( mexs_id CHAR(8), messzeit TIMESTAMP, PRIMARY KEY (mexs_id));
+CREATE VIEW view_target2 AS SELECT mexs_id,messzeit FROM table_target2;
+CREATE SQL SECURITY INVOKER VIEW view_target3 AS SELECT mexs_id,messzeit FROM table_target3;
+CREATE TABLE table_stations ( mexs_id VARCHAR(8), icao VARCHAR(4), country CHAR(2), PRIMARY KEY (mexs_id), UNIQUE KEY icao (icao), KEY country (country), CONSTRAINT stations_ibfk_8 FOREIGN KEY (country) REFERENCES countries (country) ON UPDATE CASCADE);
+INSERT INTO table_stations VALUES ('87654321','XXXX','YY');
+CREATE TABLE table_countries ( country CHAR(2), iso_short_en VARCHAR(64), PRIMARY KEY (country));
+INSERT INTO table_countries VALUES ('YY','Entenhausen');
+CREATE ALGORITHM=MERGE SQL SECURITY INVOKER VIEW view_stations AS select table_stations.mexs_id AS mexs_id, table_stations.icao AS icao, table_stations.country AS landescode from (table_stations join table_countries on((table_stations.country = table_countries.country)));
+CREATE TABLE table_source ( id varchar(4), datetime TIMESTAMP, PRIMARY KEY (id));
+INSERT INTO  table_source VALUES ('XXXX','2006-07-12 07:50:00');
+GRANT  SELECT                ON table_source    TO   user20989@localhost;
+GRANT  SELECT                ON table_countries TO   user20989@localhost;
+GRANT  SELECT                ON table_stations  TO   user20989@localhost;
+GRANT  SELECT                ON view_stations   TO   user20989@localhost;
+GRANT  SELECT                ON table_target    TO   user20989@localhost;
+GRANT  SELECT                ON table_target2   TO   user20989@localhost;
+GRANT  INSERT,DELETE,SELECT  ON view_target3    TO   user20989@localhost;
+REPLACE INTO    table_target
+SELECT          stations.mexs_id AS mexs_id, datetime AS messzeit
+FROM            table_source
+INNER JOIN      view_stations AS stations
+ON              table_source.id = stations.icao
+LEFT JOIN       table_target AS old
+USING           (mexs_id);
+ERROR 42000: INSERT,DELETE command denied to user 'user20989'@'localhost' for table 'table_target'
+REPLACE INTO    view_target2
+SELECT          stations.mexs_id AS mexs_id, datetime AS messzeit
+FROM            table_source
+INNER JOIN      view_stations AS stations
+ON              table_source.id = stations.icao
+LEFT JOIN       view_target2 AS old
+USING           (mexs_id);
+ERROR 42000: INSERT,DELETE command denied to user 'user20989'@'localhost' for table 'view_target2'
+REPLACE INTO    view_target3
+SELECT          stations.mexs_id AS mexs_id, datetime AS messzeit
+FROM            table_source
+INNER JOIN      view_stations AS stations
+ON              table_source.id = stations.icao
+LEFT JOIN       view_target3 AS old
+USING           (mexs_id);
+ERROR HY000: View 'meow.view_target3' references invalid table(s) or column(s) or function(s) or definer/invoker of view lack rights to use them
+GRANT  INSERT,DELETE         ON table_target    TO   user20989@localhost;
+GRANT  INSERT,DELETE,SELECT  ON view_target2    TO   user20989@localhost;
+GRANT  INSERT,DELETE,SELECT  ON table_target3   TO   user20989@localhost;
+REPLACE INTO    table_target
+SELECT          stations.mexs_id AS mexs_id, datetime AS messzeit
+FROM            table_source
+INNER JOIN      view_stations AS stations
+ON              table_source.id = stations.icao
+LEFT JOIN       table_target AS old
+USING           (mexs_id);
+REPLACE INTO    table_target2 VALUES ('00X45Y78','2006-07-12 07:50:00');
+ERROR 42000: INSERT,DELETE command denied to user 'user20989'@'localhost' for table 'table_target2'
+REPLACE INTO    view_target2  VALUES ('12X45Y78','2006-07-12 07:50:00');
+SELECT          stations.mexs_id AS mexs_id, datetime AS messzeit
+FROM            table_source
+INNER JOIN      view_stations AS stations
+ON              table_source.id = stations.icao
+LEFT JOIN       view_target2 AS old
+USING           (mexs_id);
+mexs_id	messzeit
+87654321	2006-07-12 07:50:00
+REPLACE INTO    view_target2
+SELECT          stations.mexs_id AS mexs_id, datetime AS messzeit
+FROM            table_source
+INNER JOIN      view_stations AS stations
+ON              table_source.id = stations.icao
+LEFT JOIN       view_target2 AS old
+USING           (mexs_id);
+REPLACE INTO    view_target3
+SELECT          stations.mexs_id AS mexs_id, datetime AS messzeit
+FROM            table_source
+INNER JOIN      view_stations AS stations
+ON              table_source.id = stations.icao
+LEFT JOIN       view_target3 AS old
+USING           (mexs_id);
+SELECT * FROM table_target;
+mexs_id	messzeit
+87654321	2006-07-12 07:50:00
+SELECT * FROM view_target2;
+mexs_id	messzeit
+12X45Y78	2006-07-12 07:50:00
+87654321	2006-07-12 07:50:00
+SELECT * FROM view_target3;
+mexs_id	messzeit
+87654321	2006-07-12 07:50:00
+DROP VIEW  view_stations;
+DROP TABLE table_source;
+DROP TABLE table_countries;
+DROP TABLE table_stations;
+DROP TABLE table_target;
+DROP TABLE table_target2;
+DROP TABLE table_target3;
+DROP VIEW  view_target2;
+DROP VIEW  view_target3;
+DROP USER  user20989@localhost;
+DROP DATABASE meow;

--- 1.25/mysql-test/t/warnings.test	2006-08-01 20:48:48 -06:00
+++ 1.26/mysql-test/t/warnings.test	2006-08-01 20:48:48 -06:00
@@ -22,10 +22,10 @@ show count(*) errors;
 show errors;
 insert into t1 values (1);
 insert into t1 values ("hej");
+insert into t1 values ("hej"),("då");
 set SQL_WARNINGS=1;
 insert into t1 values ("hej");
+insert into t1 values ("hej"),("då");
 drop table t1;
 set SQL_WARNINGS=0;
 
@@ -116,6 +116,10 @@ drop table t1;
 #create table t1 (id int) engine=isam;
 #alter table t1 engine=isam;
 #drop table t1;
+
+create table t1 (id int) engine=merge;
+alter table t1 engine=merge;
+drop table t1;
 
 #
 # Test for deprecated table_type variable

--- 1.183/sql/set_var.cc	2006-08-01 20:48:48 -06:00
+++ 1.184/sql/set_var.cc	2006-08-01 20:48:48 -06:00
@@ -821,6 +821,7 @@ SHOW_VAR init_vars[]= {
   {sys_have_federated_db.name,(char*) &have_federated_db,           SHOW_HAVE},
   {sys_have_geometry.name,    (char*) &have_geometry,               SHOW_HAVE},
   {sys_have_innodb.name,      (char*) &have_innodb,                 SHOW_HAVE},
+  {sys_have_merge_db.name,    (char*) &have_merge_db,               SHOW_HAVE},
   {sys_have_ndbcluster.name,  (char*) &have_ndbcluster,             SHOW_HAVE},
   {sys_have_openssl.name,     (char*) &have_openssl,                SHOW_HAVE},
   {sys_have_partition_db.name,(char*) &have_partition_db,           SHOW_HAVE},

--- 1.91/mysql-test/t/func_str.test	2006-08-01 20:48:48 -06:00
+++ 1.92/mysql-test/t/func_str.test	2006-08-01 20:48:48 -06:00
@@ -706,6 +706,21 @@ SELECT a, CONCAT(a,' ',a) AS c FROM t1
                      INSTR(REVERSE(CONCAT(a,' ',a))," ")) = a;
 
 DROP TABLE t1;
+
+#
+# Bug#17526: WRONG PRINT for TRIM FUNCTION with two arguments
+#
+
+CREATE TABLE t1 (s varchar(10));
+INSERT INTO t1 VALUES ('yadda'), ('yaddy');
+
+EXPLAIN EXTENDED SELECT s FROM t1 WHERE TRIM(s) > 'ab';
+EXPLAIN EXTENDED SELECT s FROM t1 WHERE TRIM('y' FROM s) > 'ab';
+EXPLAIN EXTENDED SELECT s FROM t1 WHERE TRIM(LEADING 'y' FROM s) > 'ab';
+EXPLAIN EXTENDED SELECT s FROM t1 WHERE TRIM(TRAILING 'y' FROM s) > 'ab';
+EXPLAIN EXTENDED SELECT s FROM t1 WHERE TRIM(BOTH 'y' FROM s) > 'ab';
+
+DROP TABLE t1;
  
 --echo End of 4.1 tests
 

--- 1.114/mysql-test/r/mysqldump.result	2006-08-01 20:48:49 -06:00
+++ 1.115/mysql-test/r/mysqldump.result	2006-08-01 20:48:49 -06:00
@@ -434,7 +434,7 @@ USE `mysqldump_test_db`;
 
 drop database mysqldump_test_db;
 CREATE TABLE t1 (a  CHAR(10));
+INSERT INTO t1  VALUES (_latin1 'ÄÖÜß');
 
 /*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
 /*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
@@ -479,7 +479,7 @@ CREATE TABLE `t1` (
 
 LOCK TABLES `t1` WRITE;
 /*!40000 ALTER TABLE `t1` DISABLE KEYS */;
+INSERT INTO `t1` VALUES ('Ž™šá');
 /*!40000 ALTER TABLE `t1` ENABLE KEYS */;
 UNLOCK TABLES;
 /*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */;
@@ -502,7 +502,7 @@ CREATE TABLE `t1` (
 
 LOCK TABLES `t1` WRITE;
 /*!40000 ALTER TABLE `t1` DISABLE KEYS */;
+INSERT INTO `t1` VALUES ('Ž™šá');
 /*!40000 ALTER TABLE `t1` ENABLE KEYS */;
 UNLOCK TABLES;
 /*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */;
@@ -1676,11 +1676,11 @@ create table t1 (a text character set ut
 insert t1 values (0x4F736E616272C3BC636B, 0x4BF66C6E);
 select * from t1;
 a	b
+Osnabrück	Köln
 test.t1: Records: 1  Deleted: 0  Skipped: 0  Warnings: 0
 select * from t1;
 a	b
+Osnabrück	Köln
 drop table t1;
 create table `t1` (
 t1_name varchar(255) default null,
@@ -2574,6 +2574,8 @@ DROP TABLE IF EXISTS `v2`;
   `b` varchar(32),
   `c` varchar(32)
 ) */;
+
+USE `test`;
 /*!50001 DROP TABLE IF EXISTS `v0`*/;
 /*!50001 DROP VIEW IF EXISTS `v0`*/;
 /*!50001 CREATE ALGORITHM=UNDEFINED */
@@ -2827,84 +2829,6 @@ DROP TABLE IF EXISTS `v1`;
 /*!50001 CREATE TABLE `v1` (
   `id` int(11)
 ) */;
-/*!50001 DROP TABLE IF EXISTS `v1`*/;
-/*!50001 DROP VIEW IF EXISTS `v1`*/;
-/*!50001 CREATE ALGORITHM=UNDEFINED */
-/*!50013 DEFINER=`root`@`localhost` SQL SECURITY DEFINER */
-/*!50001 VIEW `v1` AS select `t1`.`id` AS `id` from `t1` */;
-/*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */;
-
-/*!40101 SET SQL_MODE=@OLD_SQL_MODE */;
-/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */;
-/*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */;
-/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
-/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
-/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
-/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;
-
-drop view v1;
-drop table t1;
-drop database mysqldump_test_db;
-create database mysqldump_tables;
-use mysqldump_tables;
-create table basetable ( id serial, tag varchar(64) );
-create database mysqldump_views;
-use mysqldump_views;
-create view nasishnasifu as select mysqldump_tables.basetable.id from mysqldump_tables.basetable;
-
-/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
-/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
-/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
-/*!40101 SET NAMES utf8 */;
-/*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */;
-/*!40103 SET TIME_ZONE='+00:00' */;
-/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;
-/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
-/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;
-/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;
-
-CREATE DATABASE /*!32312 IF NOT EXISTS*/ `mysqldump_tables` /*!40100 DEFAULT CHARACTER SET latin1 */;
-
-USE `mysqldump_tables`;
-DROP TABLE IF EXISTS `basetable`;
-CREATE TABLE `basetable` (
-  `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
-  `tag` varchar(64) DEFAULT NULL,
-  UNIQUE KEY `id` (`id`)
-) ENGINE=MyISAM DEFAULT CHARSET=latin1;
-
-LOCK TABLES `basetable` WRITE;
-/*!40000 ALTER TABLE `basetable` DISABLE KEYS */;
-/*!40000 ALTER TABLE `basetable` ENABLE KEYS */;
-UNLOCK TABLES;
-
-CREATE DATABASE /*!32312 IF NOT EXISTS*/ `mysqldump_views` /*!40100 DEFAULT CHARACTER SET latin1 */;
-
-USE `mysqldump_views`;
-DROP TABLE IF EXISTS `nasishnasifu`;
-/*!50001 DROP VIEW IF EXISTS `nasishnasifu`*/;
-/*!50001 CREATE TABLE `nasishnasifu` (
-  `id` bigint(20) unsigned
-) */;
-/*!50001 DROP TABLE IF EXISTS `nasishnasifu`*/;
-/*!50001 DROP VIEW IF EXISTS `nasishnasifu`*/;
-/*!50001 CREATE ALGORITHM=UNDEFINED */
-/*!50013 DEFINER=`root`@`localhost` SQL SECURITY DEFINER */
-/*!50001 VIEW `mysqldump_views`.`nasishnasifu` AS select `mysqldump_tables`.`basetable`.`id` AS `id` from `mysqldump_tables`.`basetable` */;
-/*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */;
-
-/*!40101 SET SQL_MODE=@OLD_SQL_MODE */;
-/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */;
-/*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */;
-/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
-/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
-/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
-/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;
-
-drop view nasishnasifu;
-drop database mysqldump_views;
-drop table mysqldump_tables.basetable;
-drop database mysqldump_tables;
 use test;
 End of 5.0 tests
 create table t1 (a text , b text);

--- 1.108/mysql-test/t/mysqldump.test	2006-08-01 20:48:49 -06:00
+++ 1.109/mysql-test/t/mysqldump.test	2006-08-01 20:48:49 -06:00
@@ -153,7 +153,7 @@ drop database mysqldump_test_db;
 # if it is explicitely set.
 
 CREATE TABLE t1 (a  CHAR(10));
+INSERT INTO t1  VALUES (_latin1 'ÄÖÜß');
 --exec $MYSQL_DUMP --character-sets-dir=$CHARSETSDIR --skip-comments test t1
 #
 # Bug#8063: make test mysqldump [ fail ]
@@ -610,7 +610,7 @@ drop database db1;
 # BUG#15328 Segmentation fault occured if my.cnf is invalid for escape sequence
 #
 
---exec $MYSQL_MY_PRINT_DEFAULTS --defaults-file=$MYSQL_TEST_DIR/std_data/bug15328.cnf mysqldump
+--exec $MYSQL_MY_PRINT_DEFAULTS --config-file=$MYSQL_TEST_DIR/std_data/bug15328.cnf mysqldump
 
 
 #
@@ -1235,12 +1235,50 @@ create database mysqldump_views;
 use mysqldump_views;
 create view nasishnasifu as select mysqldump_tables.basetable.id from mysqldump_tables.basetable;
 
---exec $MYSQL_DUMP --skip-comments --databases mysqldump_tables mysqldump_views;
+--exec $MYSQL_DUMP --skip-comments --compact --databases mysqldump_tables mysqldump_views;
 
 drop view nasishnasifu;
 drop database mysqldump_views;
 drop table mysqldump_tables.basetable;
 drop database mysqldump_tables;
+
+# Bug20221 Dumping of multiple databases containing view(s) yields maleformed dumps
+
+create database mysqldump_dba;
+use mysqldump_dba;
+create table t1 (f1 int, f2 int);
+insert into t1 values (1,1);
+create view v1 as select f1, f2 from t1;
+
+create database mysqldump_dbb;
+use mysqldump_dbb;
+create table t1 (f1 int, f2 int);
+insert into t1 values (2,2);
+create view v1 as select f1, f2 from t1;
+
+--exec $MYSQL_DUMP --skip-comments --add-drop-database --databases mysqldump_dba mysqldump_dbb > $MYSQLTEST_VARDIR/tmp/bug20221_backup;
+
+drop view v1;
+drop table t1;
+drop database mysqldump_dbb;
+use mysqldump_dba;
+drop view v1;
+drop table t1;
+drop database mysqldump_dba;
+
+--exec $MYSQL < $MYSQLTEST_VARDIR/tmp/bug20221_backup;
+
+select * from mysqldump_dba.v1;
+select * from mysqldump_dbb.v1;
+
+use mysqldump_dba;
+drop view v1;
+drop table t1;
+drop database mysqldump_dba;
+use mysqldump_dbb;
+drop view v1;
+drop table t1;
+drop database mysqldump_dbb;
 use test;
 
 --echo End of 5.0 tests

--- 1.41/mysql-test/r/warnings.result	2006-08-01 20:48:49 -06:00
+++ 1.42/mysql-test/r/warnings.result	2006-08-01 20:48:49 -06:00
@@ -32,7 +32,7 @@ insert into t1 values (1);
 insert into t1 values ("hej");
 Warnings:
 Warning	1264	Out of range value for column 'a' at row 1
+insert into t1 values ("hej"),("då");
 Warnings:
 Warning	1264	Out of range value for column 'a' at row 1
 Warning	1264	Out of range value for column 'a' at row 2
@@ -40,7 +40,7 @@ set SQL_WARNINGS=1;
 insert into t1 values ("hej");
 Warnings:
 Warning	1264	Out of range value for column 'a' at row 1
+insert into t1 values ("hej"),("då");
 Warnings:
 Warning	1264	Out of range value for column 'a' at row 1
 Warning	1264	Out of range value for column 'a' at row 2
@@ -165,6 +165,13 @@ set max_error_count=10;
 show variables like 'max_error_count';
 Variable_name	Value
 max_error_count	10
+drop table t1;
+create table t1 (id int) engine=merge;
+Warnings:
+Warning	1266	Using storage engine MyISAM for table 't1'
+alter table t1 engine=merge;
+Warnings:
+Warning	1266	Using storage engine MyISAM for table 't1'
 drop table t1;
 set table_type=MYISAM;
 Warnings:
Thread
bk commit into 5.1 tree (tsmith:1.2256)tim2 Aug