3970 Marko Mäkelä 2012-06-13
WL#6255 assertion failure fix
innobase_rec_to_mysql(): In the assertion about n_fields, subtract
one from index->table->n_cols when the table contains a hidden
FTS_DOC_ID column.
modified:
storage/innobase/handler/handler0alter.cc
3969 Marko Mäkelä 2012-06-12
WL#6255 rb:1105 Problem 20,21 fix.
Check the maximum column prefix length when changing ROW_FORMAT or
KEY_BLOCK_SIZE.
innobase_check_column_length(): Replace table with max_col_len.
ha_innobase::prepare_inplace_alter_table(): Compute max_col_len
by invoking innobase_table_flags() when needed. Enforce the max_col_len
also in existing indexes of the table.
innobase_table_flags(): Remove the parameter name. Do not complain
about badly formed FTS_DOC_ID_INDEX, unless the table is also to have
FULLTEXT indexes. When complaining, use the dedicated error code
ER_INNODB_FT_WRONG_DOCID_INDEX instead of the generic and misleading
ER_WRONG_NAME_FOR_INDEX.
prepare_inplace_alter_table_dict(): Add the parameters flags, flags2,
so that innobase_table_flags() does not need to be invoked again. Its
outcome can change if innodb_file_format is changed between calls.
modified:
mysql-test/suite/innodb/r/innodb_prefix_index_liftedlimit.result
mysql-test/suite/innodb/t/innodb_prefix_index_liftedlimit.test
mysql-test/suite/innodb_fts/r/innodb-fts-ddl.result
mysql-test/suite/innodb_fts/t/innodb-fts-ddl.test
storage/innobase/handler/ha_innodb.cc
storage/innobase/handler/ha_innodb.h
storage/innobase/handler/handler0alter.cc
=== modified file 'storage/innobase/handler/handler0alter.cc'
--- a/storage/innobase/handler/handler0alter.cc revid:marko.makela@stripped7jczc2of5n0asg6d
+++ b/storage/innobase/handler/handler0alter.cc revid:marko.makela@strippedjbomeku2yq2d
@@ -1044,7 +1044,9 @@ innobase_rec_to_mysql(
uint n_fields = table->s->fields;
uint i;
- ut_ad(col_map || n_fields == dict_table_get_n_user_cols(index->table));
+ ut_ad(col_map || n_fields == dict_table_get_n_user_cols(index->table)
+ - !!(DICT_TF2_FLAG_IS_SET(index->table,
+ DICT_TF2_FTS_HAS_DOC_ID)));
for (i = 0; i < n_fields; i++) {
Field* field = table->field[i];
No bundle (reason: useless for push emails).| Thread |
|---|
| • bzr push into mysql-trunk-wl6255 branch (marko.makela:3969 to 3970) WL#6255 | marko.makela | 13 Jun |