Commit 5d4a134f authored by svoj@mysql.com/june.mysql.com's avatar svoj@mysql.com/june.mysql.com
Browse files

BUG#26325 - TEMPORARY TABLE "corrupt" after first read, according

            to CHECK TABLE

CHECK/REPAIR TABLE reports "File not found" error when issued
against temporary table.

Fixed by disabling a brunch of code (in case it gets temporary table)
that is responsible for updating frm version as it is not needed
for temporary tables.
parent 62620ecb
Loading
Loading
Loading
Loading
+8 −0
Original line number Diff line number Diff line
@@ -14,3 +14,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;
+9 −0
Original line number Diff line number Diff line
@@ -36,3 +36,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;
+7 −1
Original line number Diff line number Diff line
@@ -1997,7 +1997,13 @@ static bool update_frm_version(TABLE *table, bool needs_lock)
  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);

  strxnmov(path, sizeof(path)-1, mysql_data_home, "/", table->s->db, "/",