Commit 0901cb0b authored by unknown's avatar unknown
Browse files

5.0 -> 5.1 manual merge, part 1 of 3 (or more?)

parents 237d867f 846a99dc
Loading
Loading
Loading
Loading
+14 −3
Original line number Diff line number Diff line
@@ -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 *database)
    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 char *table_name)
  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;

+44 −0
Original line number Diff line number Diff line
@@ -1235,6 +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 --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;
--exec $MYSQL_DUMP --skip-comments --databases mysqldump_tables mysqldump_views;

drop view nasishnasifu;