mirror of
https://github.com/MariaDB/server.git
synced 2026-01-06 05:22:24 +03:00
Bug#18462: mysqldump does not dump view structures correctly
(The above problem only occurs with -T -- create a separate file for each table / view.) This ChangeSet results in correct output of view- information while omitting the information for the view's stand-in table. The rationale is that with -T, the user is likely interested in transferring part of a database, not the db in its entirety (that would be difficult as replay order is obscure, the files being named for the table/view they contain rather than getting a sequence number).
This commit is contained in:
@@ -1554,6 +1554,9 @@ static uint get_table_structure(char *table, char *db, char *table_type,
|
||||
}
|
||||
mysql_free_result(result);
|
||||
|
||||
if (path)
|
||||
my_fclose(sql_file, MYF(MY_WME));
|
||||
|
||||
was_views= 1;
|
||||
DBUG_RETURN(0);
|
||||
}
|
||||
|
||||
@@ -2717,6 +2717,25 @@ end AFTER # root@localhost
|
||||
drop trigger tr1;
|
||||
drop trigger tr2;
|
||||
drop table t1, t2;
|
||||
create table t (qty int, price int);
|
||||
insert into t values(3, 50);
|
||||
insert into t values(5, 51);
|
||||
create view v1 as select qty, price, qty*price as value from t;
|
||||
create view v2 as select qty from v1;
|
||||
mysqldump {
|
||||
/*!50001 CREATE ALGORITHM=UNDEFINED */
|
||||
/*!50013 DEFINER=`root`@`localhost` SQL SECURITY DEFINER */
|
||||
/*!50001 VIEW `v1` AS select `t`.`qty` AS `qty`,`t`.`price` AS `price`,(`t`.`qty` * `t`.`price`) AS `value` from `t` */;
|
||||
|
||||
} mysqldump {
|
||||
/*!50001 CREATE ALGORITHM=UNDEFINED */
|
||||
/*!50013 DEFINER=`root`@`localhost` SQL SECURITY DEFINER */
|
||||
/*!50001 VIEW `v2` AS select `v1`.`qty` AS `qty` from `v1` */;
|
||||
|
||||
} mysqldump
|
||||
drop view v1;
|
||||
drop view v2;
|
||||
drop table t;
|
||||
/*!50003 CREATE FUNCTION `f`() RETURNS bigint(20)
|
||||
return 42 */|
|
||||
/*!50003 CREATE PROCEDURE `p`()
|
||||
|
||||
@@ -1127,6 +1127,27 @@ drop trigger tr2;
|
||||
drop table t1, t2;
|
||||
|
||||
|
||||
#
|
||||
# Bug#18462 mysqldump does not dump view structures correctly
|
||||
#
|
||||
#
|
||||
create table t (qty int, price int);
|
||||
insert into t values(3, 50);
|
||||
insert into t values(5, 51);
|
||||
create view v1 as select qty, price, qty*price as value from t;
|
||||
create view v2 as select qty from v1;
|
||||
--echo mysqldump {
|
||||
--exec $MYSQL_DUMP --compact -F --tab . test
|
||||
--exec cat v1.sql
|
||||
--echo } mysqldump {
|
||||
--exec cat v2.sql
|
||||
--echo } mysqldump
|
||||
--rm v.sql t.sql t.txt
|
||||
drop view v1;
|
||||
drop view v2;
|
||||
drop table t;
|
||||
|
||||
|
||||
#
|
||||
# Bug#14857 Reading dump files with single statement stored routines fails.
|
||||
# fixed by patch for bug#16878
|
||||
|
||||
Reference in New Issue
Block a user