List:Commits« Previous MessageNext Message »
From:marko.makela Date:June 12 2012 9:05pm
Subject:bzr push into mysql-trunk-wl6255 branch (marko.makela:3969 to 3970) WL#6255
View as plain text  
 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#6255marko.makela13 Jun