diff options
-rw-r--r-- | mysql-test/r/check.result | 8 | ||||
-rw-r--r-- | mysql-test/t/check.test | 9 | ||||
-rw-r--r-- | sql/handler.cc | 8 |
3 files changed, 24 insertions, 1 deletions
diff --git a/mysql-test/r/check.result b/mysql-test/r/check.result index 739eab2ed76..0bff34dba20 100644 --- a/mysql-test/r/check.result +++ b/mysql-test/r/check.result @@ -15,3 +15,11 @@ test.v1 check status OK test.t2 check status OK drop view v1; drop table t1, t2; +CREATE TEMPORARY TABLE t1(a INT); +CHECK TABLE t1; +Table Op Msg_type Msg_text +test.t1 check status OK +REPAIR TABLE t1; +Table Op Msg_type Msg_text +test.t1 repair status OK +DROP TABLE t1; diff --git a/mysql-test/t/check.test b/mysql-test/t/check.test index eb72d75da3c..363f9d419d6 100644 --- a/mysql-test/t/check.test +++ b/mysql-test/t/check.test @@ -37,3 +37,12 @@ Create view v1 as Select * from t1; Check Table v1,t2; drop view v1; drop table t1, t2; + +# +# BUG#26325 - TEMPORARY TABLE "corrupt" after first read, according to CHECK +# TABLE +# +CREATE TEMPORARY TABLE t1(a INT); +CHECK TABLE t1; +REPAIR TABLE t1; +DROP TABLE t1; diff --git a/sql/handler.cc b/sql/handler.cc index 2d836b30862..55e2e478027 100644 --- a/sql/handler.cc +++ b/sql/handler.cc @@ -2355,7 +2355,13 @@ static bool update_frm_version(TABLE *table) int result= 1; DBUG_ENTER("update_frm_version"); - if (table->s->mysql_version != MYSQL_VERSION_ID) + /* + No need to update frm version in case table was created or checked + by server with the same version. This also ensures that we do not + update frm version for temporary tables as this code doesn't support + temporary tables. + */ + if (table->s->mysql_version == MYSQL_VERSION_ID) DBUG_RETURN(0); strxmov(path, table->s->normalized_path.str, reg_ext, NullS); |