Description:
MySQL-5.7 compiled with debug
git log -n 1
commit 6a258298b478784cbdc0e6fdda603981d86bc067
...
Date: Mon Mar 2 15:43:53 2015 +0100
CREATE TABLE test . p7 ENGINE = InnoDB PARTITION BY KEY (pk) AS
SELECT 1 AS pk;
CREATE TABLE p8 (col1 INT) ENGINE = InnoDB;
REPAIR TABLE test . p7 , test . p8 QUICK;
# REPAIR TABLE test . p7 , test . p8;
#3 <signal handler called>
#4 raise () from /lib64/libc.so.6
#5 abort () from /lib64/libc.so.6
#6 DbugExit (why=0x7fa94006b350 "missing DBUG_RETURN or DBUG_VOID_RETURN macro in function \"ha_innopart::repair\"\n")
at dbug/dbug.c:2228
#7 _db_return_ (_line_=1029, _stack_frame_=0x7fa94006b5a0)
at dbug/dbug.c:1291
#8 mysql_admin_table(THD *, TABLE_LIST *, HA_CHECK_OPT *, const char *, thr_lock_type, bool, bool, uint, int (*)(THD *, TABLE_LIST *, HA_CHECK_OPT *), struct {...}, int (*)(THD *, TABLE_LIST *)) (thd=0x7fa8f8011fe0, tables=0x7fa8f80eacd0, check_opt=0x7fa8f8014528, operator_name=0x1bc2955 "repair", lock_type=TL_WRITE, open_for_modify=false, repair_table_use_frm=false, extra_open_options=32, prepare_func=0x13881e1 <prepare_for_repair(THD*, TABLE_LIST*, HA_CHECK_OPT*)>, operator_func=(int (handler::*)(handler * const, THD *, HA_CHECK_OPT *)) 0xcd5bde <handler::ha_repair(THD*, st_ha_check_opt*)>, view_operator_func=0x0)
at sql/sql_admin.cc:1029
#9 Sql_cmd_repair_table::execute (this=0x7fa8f80eb800, thd=0x7fa8f8011fe0)
at sql/sql_admin.cc:1217
#10 mysql_execute_command (thd=0x7fa8f8011fe0)
at sql/sql_parse.cc:4477
#11 mysql_parse (thd=0x7fa8f8011fe0, parser_state=0x7fa94006de40)
at sql/sql_parse.cc:5154
#12 dispatch_command (command=COM_QUERY, thd=0x7fa8f8011fe0, packet=0x7fa8f8007781 "", packet_length=40)
at sql/sql_parse.cc:1249
#13 do_command (thd=0x7fa8f8011fe0)
at sql/sql_parse.cc:835
#14 handle_connection (arg=0x3b72e30)
at sql/conn_handler/connection_handler_per_thread.cc:298
#15 pfs_spawn_thread (arg=0x3c1c3f0)
at storage/perfschema/pfs.cc:2147
#16 start_thread () from /lib64/libpthread.so.0
In case the last statement is modified towards
REPAIR TABLE test . p7 , test . p8;
than we get
REPAIR TABLE test . p7 , test . p8;
Table Op Msg_type Msg_text
test.p7 repair status OK
test.p8 repair note The storage engine for the table doesn't support repair
Result for the same test in MySQL 5.6.24 compiled with debug:
REPAIR TABLE test . p7 , test . p8 QUICK;
Table Op Msg_type Msg_text
test.p7 repair note The storage engine for the table doesn't support repair
test.p8 repair note The storage engine for the table doesn't support repair
Per manual for mysql-5.7
http://dev.mysql.com/doc/refman/5.7/en/repair-table.html
...
REPAIR TABLE only applies to MyISAM, ARCHIVE, and CSV tables. See Section 15.2,
“The MyISAM Storage Engine”, and Section 15.5, “The ARCHIVE Storage Engine”,
and Section 15.4, “The CSV Storage Engine”.
...
If you use the QUICK option, REPAIR TABLE tries to repair only the index file,
and not the data file. This type of repair is like that done by
myisamchk --recover --quick.
How to repeat:
See above