summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--client/mysqlcheck.c7
-rw-r--r--mysql-test/r/mysqlcheck.result18
-rw-r--r--mysql-test/t/mysqlcheck.test13
3 files changed, 36 insertions, 2 deletions
diff --git a/client/mysqlcheck.c b/client/mysqlcheck.c
index fb2071ce10f..34f09f6ca92 100644
--- a/client/mysqlcheck.c
+++ b/client/mysqlcheck.c
@@ -533,8 +533,11 @@ static int process_all_tables_in_db(char *database)
else
{
while ((row = mysql_fetch_row(res)))
- /* Skip tables with an engine of NULL (probably a view). */
- if (row[1])
+ /*
+ Skip tables with an engine of NULL (probably a view)
+ if we don't perform renaming.
+ */
+ if (row[1] || what_to_do == DO_UPGRADE)
{
handle_request_for_tables(row[0], strlen(row[0]));
}
diff --git a/mysql-test/r/mysqlcheck.result b/mysql-test/r/mysqlcheck.result
index b8ada0adff9..ac21e0aeb6a 100644
--- a/mysql-test/r/mysqlcheck.result
+++ b/mysql-test/r/mysqlcheck.result
@@ -58,3 +58,21 @@ test.t1 OK
drop view v1;
drop table t1;
End of 5.0 tests
+create table t1(a int);
+create view v1 as select * from t1;
+show tables;
+Tables_in_test
+t1
+v1
+show tables;
+Tables_in_test
+t1
+#mysql50#v-1
+v1
+show tables;
+Tables_in_test
+t1
+v1
+v-1
+drop view v1, `v-1`;
+drop table t1;
diff --git a/mysql-test/t/mysqlcheck.test b/mysql-test/t/mysqlcheck.test
index d233546f9e3..b789e275ffe 100644
--- a/mysql-test/t/mysqlcheck.test
+++ b/mysql-test/t/mysqlcheck.test
@@ -38,3 +38,16 @@ drop view v1;
drop table t1;
--echo End of 5.0 tests
+
+#
+# Bug #30679: 5.1 name encoding not performed for views during upgrade
+#
+create table t1(a int);
+create view v1 as select * from t1;
+show tables;
+--copy_file $MYSQLTEST_VARDIR/master-data/test/v1.frm $MYSQLTEST_VARDIR/master-data/test/v-1.frm
+show tables;
+--exec $MYSQL_CHECK --check-upgrade --fix-table-names --databases test
+show tables;
+drop view v1, `v-1`;
+drop table t1;