From fb2a2d25625f54eab60ff902ab667efbd7891ee5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marko=20M=C3=A4kel=C3=A4?= Date: Fri, 16 Aug 2013 15:45:41 +0300 Subject: Bug#17312846 CHECK TABLE ASSERTION FAILURE DICT_TABLE_GET_FORMAT(CLUST_INDEX->TABLE) >= 1 The function row_sel_sec_rec_is_for_clust_rec() was incorrectly preparing to compare a NULL column prefix in a secondary index with a non-NULL column in a clustered index. This can trigger an assertion failure in 5.1 plugin and later. In the built-in InnoDB of MySQL 5.1 and earlier, we would apparently only do some extra work, by trimming the clustered index field for the comparison. The code might actually have worked properly apart from this debug assertion failure. It is merely doing some extra work in fetching a BLOB column, and then comparing it to NULL (which would return the same result, no matter what the BLOB contents is). While the test case involves CHECK TABLE, this could theoretically occur during any read that uses a secondary index on a column prefix of a column that can be NULL. rb#3101 approved by Mattias Jonsson --- storage/innodb_plugin/ChangeLog | 6 ++++++ 1 file changed, 6 insertions(+) (limited to 'storage/innodb_plugin/ChangeLog') diff --git a/storage/innodb_plugin/ChangeLog b/storage/innodb_plugin/ChangeLog index b37697397ac..719bb89c865 100644 --- a/storage/innodb_plugin/ChangeLog +++ b/storage/innodb_plugin/ChangeLog @@ -1,3 +1,9 @@ +2013-08-16 The InnoDB Team + + * row/row0sel.c: + Fix Bug#17312846 CHECK TABLE ASSERTION FAILURE + DICT_TABLE_GET_FORMAT(CLUST_INDEX->TABLE) >= 1 + 2013-08-15 The InnoDB Team * row/row0umod.c: -- cgit v1.2.1