summaryrefslogtreecommitdiff
path: root/mysql-test/t/mysqldump.test
diff options
context:
space:
mode:
authorunknown <tnurnberg@mysql.com>2006-05-31 13:36:28 +0200
committerunknown <tnurnberg@mysql.com>2006-05-31 13:36:28 +0200
commitc69ba2559bd1b866895186d7e41d0a1e17e25714 (patch)
treefa70a8b7e428338d25cc0677bf0be4d778caed8a /mysql-test/t/mysqldump.test
parent967c9739be6404941d9c0c03d7569e424fa27eab (diff)
downloadmariadb-git-c69ba2559bd1b866895186d7e41d0a1e17e25714.tar.gz
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). client/mysqldump.c: Added missing fclose(). Before, a view's stand-in table would get dumped in get_table_structure(), and the file would remain open. get_view_structure() would re-open the same file and write to it, resulting in garbage. The way we handle it now, the table-struct gets closed, then the opening of the view-struct (same name) overwrites it. (The SQL for the view drop-if-exists the table, anyway.) If this were not desired and we wanted SQL for the views that contains the create for the stand-in table, we'd hand a mode to open_sql_file_for_table(), which would feature O_APPEND in get_view_structure(), but not in get_table_structure(). mysql-test/r/mysqldump.result: prove mysqldump -T (each item gets its own file) dumps views correctly mysql-test/t/mysqldump.test: prove mysqldump -T (each item gets its own file) dumps views correctly
Diffstat (limited to 'mysql-test/t/mysqldump.test')
-rw-r--r--mysql-test/t/mysqldump.test21
1 files changed, 21 insertions, 0 deletions
diff --git a/mysql-test/t/mysqldump.test b/mysql-test/t/mysqldump.test
index 4076fd258e9..f88b0f7cd2b 100644
--- a/mysql-test/t/mysqldump.test
+++ b/mysql-test/t/mysqldump.test
@@ -1128,6 +1128,27 @@ 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
#