Commit 507ffd4a authored by Marko Mäkelä's avatar Marko Mäkelä

Backport from 5.6: Bug#14769820 ASSERT FLEN == LEN

IN ALTER TABLE ... ADD UNIQUE KEY

A bogus debug assertion failure occurred when reporting a duplicate
key on a column prefix of a CHAR column.

This is a regression from Bug#14729221 IN-PLACE ALTER TABLE REPORTS ''
INSTEAD OF REAL DUPLICATE VALUE FOR PREFIX KEYS. The assertion is only
present when UNIV_DEBUG is defined (which it is in debug builds
starting from MySQL 5.5). It is a case of overasserting.

Fix approved by Inaam Rana on IM.
parent 03572c5b
...@@ -108,13 +108,17 @@ innobase_col_to_mysql( ...@@ -108,13 +108,17 @@ innobase_col_to_mysql(
/* These column types should never be shipped to MySQL. */ /* These column types should never be shipped to MySQL. */
ut_ad(0); ut_ad(0);
case DATA_CHAR:
case DATA_FIXBINARY: case DATA_FIXBINARY:
case DATA_FLOAT: case DATA_FLOAT:
case DATA_DOUBLE: case DATA_DOUBLE:
case DATA_DECIMAL: case DATA_DECIMAL:
/* Above are the valid column types for MySQL data. */ /* Above are the valid column types for MySQL data. */
ut_ad(flen == len); ut_ad(flen == len);
/* fall through */
case DATA_CHAR:
/* We may have flen > len when there is a shorter
prefix on a CHAR column. */
ut_ad(flen >= len);
#else /* UNIV_DEBUG */ #else /* UNIV_DEBUG */
default: default:
#endif /* UNIV_DEBUG */ #endif /* UNIV_DEBUG */
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment