Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
M
mariadb
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
Kirill Smelkov
mariadb
Commits
486ef1ba
Commit
486ef1ba
authored
May 13, 2008
by
gshchepa/uchum@host.loc
Browse files
Options
Browse Files
Download
Plain Diff
Merge host.loc:/work/bugs/5.0-bugteam-36055
into host.loc:/work/bk/5.0-bugteam
parents
1eb8991a
1e7be565
Changes
7
Hide whitespace changes
Inline
Side-by-side
Showing
7 changed files
with
75 additions
and
0 deletions
+75
-0
mysql-test/r/repair.result
mysql-test/r/repair.result
+36
-0
mysql-test/std_data/bug36055.MYD
mysql-test/std_data/bug36055.MYD
+0
-0
mysql-test/std_data/bug36055.MYI
mysql-test/std_data/bug36055.MYI
+0
-0
mysql-test/std_data/bug36055.frm
mysql-test/std_data/bug36055.frm
+0
-0
mysql-test/t/repair.test
mysql-test/t/repair.test
+30
-0
sql/handler.cc
sql/handler.cc
+2
-0
sql/sql_table.cc
sql/sql_table.cc
+7
-0
No files found.
mysql-test/r/repair.result
View file @
486ef1ba
...
...
@@ -115,3 +115,39 @@ SET myisam_repair_threads=@@global.myisam_repair_threads;
SET myisam_sort_buffer_size=@@global.myisam_sort_buffer_size;
DROP TABLE t1;
End of 4.1 tests
# Test with a saved table from 4.1
SHOW TABLE STATUS LIKE 't1';
Name Engine Version Row_format Rows Avg_row_length Data_length Max_data_length Index_length Data_free Auto_increment Create_time Update_time Check_time Collation Checksum Create_options Comment
t1 MyISAM 9 Fixed 2 5 10 21474836479 1024 0 NULL # # NULL latin1_swedish_ci NULL
SELECT * FROM t1;
id
1
2
# Run CHECK TABLE, it should indicate table need a REPAIR TABLE
CHECK TABLE t1 FOR UPGRADE;
Table Op Msg_type Msg_text
test.t1 check error Table upgrade required. Please do "REPAIR TABLE `t1`" to fix it!
# REPAIR old table USE_FRM should fail
REPAIR TABLE t1 USE_FRM;
Table Op Msg_type Msg_text
t1 repair error Failed reparing incompatible .FRM file
# Run REPAIR TABLE to upgrade .frm file
REPAIR TABLE t1;
Table Op Msg_type Msg_text
test.t1 repair status OK
SHOW TABLE STATUS LIKE 't1';
Name Engine Version Row_format Rows Avg_row_length Data_length Max_data_length Index_length Data_free Auto_increment Create_time Update_time Check_time Collation Checksum Create_options Comment
t1 MyISAM 10 Fixed 2 7 14 1970324836974591 1024 0 NULL # # NULL latin1_swedish_ci NULL
SELECT * FROM t1;
id
1
2
REPAIR TABLE t1 USE_FRM;
Table Op Msg_type Msg_text
test.t1 repair warning Number of rows changed from 0 to 2
test.t1 repair status OK
SELECT * FROM t1;
id
1
2
DROP TABLE t1;
mysql-test/std_data/bug36055.MYD
0 → 100644
View file @
486ef1ba
File added
mysql-test/std_data/bug36055.MYI
0 → 100644
View file @
486ef1ba
File added
mysql-test/std_data/bug36055.frm
0 → 100644
View file @
486ef1ba
File added
mysql-test/t/repair.test
View file @
486ef1ba
...
...
@@ -113,3 +113,33 @@ SET myisam_sort_buffer_size=@@global.myisam_sort_buffer_size;
DROP
TABLE
t1
;
--
echo
End
of
4.1
tests
#
# BUG#36055 - mysql_upgrade doesn't really 'upgrade' tables
#
--
echo
# Test with a saved table from 4.1
--
copy_file
std_data
/
bug36055
.
frm
$MYSQLTEST_VARDIR
/
master
-
data
/
test
/
t1
.
frm
--
copy_file
std_data
/
bug36055
.
MYD
$MYSQLTEST_VARDIR
/
master
-
data
/
test
/
t1
.
MYD
--
copy_file
std_data
/
bug36055
.
MYI
$MYSQLTEST_VARDIR
/
master
-
data
/
test
/
t1
.
MYI
--
replace_column
12
# 13 #
SHOW
TABLE
STATUS
LIKE
't1'
;
SELECT
*
FROM
t1
;
--
echo
# Run CHECK TABLE, it should indicate table need a REPAIR TABLE
CHECK
TABLE
t1
FOR
UPGRADE
;
--
echo
# REPAIR old table USE_FRM should fail
REPAIR
TABLE
t1
USE_FRM
;
--
echo
# Run REPAIR TABLE to upgrade .frm file
REPAIR
TABLE
t1
;
--
replace_column
12
# 13 #
SHOW
TABLE
STATUS
LIKE
't1'
;
SELECT
*
FROM
t1
;
REPAIR
TABLE
t1
USE_FRM
;
SELECT
*
FROM
t1
;
DROP
TABLE
t1
;
sql/handler.cc
View file @
486ef1ba
...
...
@@ -1980,6 +1980,8 @@ int handler::ha_check_for_upgrade(HA_CHECK_OPT *check_opt)
}
}
}
if
(
table
->
s
->
frm_version
!=
FRM_VER_TRUE_VARCHAR
)
return
HA_ADMIN_NEEDS_ALTER
;
return
check_for_upgrade
(
check_opt
);
}
...
...
sql/sql_table.cc
View file @
486ef1ba
...
...
@@ -2118,6 +2118,13 @@ static int prepare_for_repair(THD* thd, TABLE_LIST *table_list,
const
char
**
ext
=
table
->
file
->
bas_ext
();
MY_STAT
stat_info
;
if
(
table
->
s
->
frm_version
!=
FRM_VER_TRUE_VARCHAR
)
{
error
=
send_check_errmsg
(
thd
,
table_list
,
"repair"
,
"Failed reparing incompatible .FRM file"
);
goto
end
;
}
/*
Check if this is a table type that stores index and data separately,
like ISAM or MyISAM. We assume fixed order of engine file name
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment