diff options
-rw-r--r-- | client/mysqlcheck.c | 7 | ||||
-rw-r--r-- | mysql-test/r/mysqlcheck.result | 18 | ||||
-rw-r--r-- | mysql-test/t/mysqlcheck.test | 13 |
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; |