Reproduce
--source include/have_innodb.inc
|
--source include/not_windows.inc
|
--source include/not_embedded.inc
|
|
let $d255=###################################################;
|
let $d250=##################################################;
|
let $d245=#################################################;
|
--replace_result $d255 d255
|
eval create database `$d255`;
|
eval create table `$d255`.`$d245` (x int) engine innodb;
|
|
# CREATE TABLE works
|
eval create table `$d255`.`$d250` (x int) engine innodb;
|
eval drop table `$d255`.`$d250`;
|
|
# RENAME TABLE doesn't work
|
--error ER_IDENT_CAUSES_TOO_LONG_PATH
|
eval rename table `$d255`.`$d245` to `$d255`.`$d250`;
|
|
# and even assertion-fails!
|
eval rename table `$d255`.`$d245` to a;
|
|
eval drop database `$d255`;
|
drop table t;
|
Result
RENAME TABLE fails to rename to `$d255`.`$d250` while CREATE TABLE succeeds. RENAME TABLE from `$d255`.`$d245` fails with assertion.
#12 0x00007f77f8622e96 in __GI___assert_fail (assertion=0x55cdf1186df3 "len <= (64*3) * 2 + 1", file=0x55cdf11860d0 "../src/storage/innobase/trx/trx0rec.cc", line=1862, function=0x55cdf1186d77 "uint16_t trx_undo_page_report_rename(trx_t *, const dict_table_t *, buf_block_t *, mtr_t *)") at ./assert/assert.c:101
|
#13 0x000055cdf0a42d21 in trx_undo_page_report_rename (trx=0x7f77eec61680, table=0x7f77b8216ce8, block=0x7f77eeb616c0, mtr=0x7f77ec3b6100) at ../src/storage/innobase/trx/trx0rec.cc:1862
|
#14 0x000055cdf0a42920 in trx_undo_report_rename (trx=0x7f77eec61680, table=0x7f77b8216ce8) at ../src/storage/innobase/trx/trx0rec.cc:1909
|
#15 0x000055cdf09aec34 in row_rename_table_for_mysql (old_name=0x7f77ec3b7720 "@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023/@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023", new_name=0x7f77ec3b7920 "test/a", trx=0x7f77eec61680, use_fk=true) at ../src/storage/innobase/row/row0mysql.cc:2655
|