diff options
author | unknown <monty@mysql.com> | 2004-10-29 19:26:52 +0300 |
---|---|---|
committer | unknown <monty@mysql.com> | 2004-10-29 19:26:52 +0300 |
commit | f095274fe8c3d3394d6c0ce0a68f4bea04311999 (patch) | |
tree | 23bcc9a71fe7237887a111b158e30f5a6bb665d3 /innobase/btr | |
parent | f41bba8c6156a7adf4c67dfa75e16112767a5d3c (diff) | |
parent | 5be6c328f5a9f78f37176bbbd88a538fa3b65fe9 (diff) | |
download | mariadb-git-f095274fe8c3d3394d6c0ce0a68f4bea04311999.tar.gz |
merge with 4.1
BitKeeper/etc/ignore:
auto-union
BitKeeper/etc/logging_ok:
auto-union
BitKeeper/triggers/post-commit:
Auto merged
Docs/Support/texi2html:
Auto merged
Makefile.am:
Auto merged
client/Makefile.am:
Auto merged
client/mysql.cc:
Auto merged
client/mysqldump.c:
Auto merged
include/my_base.h:
Auto merged
include/my_global.h:
Auto merged
include/my_pthread.h:
Auto merged
include/my_sys.h:
Auto merged
include/my_time.h:
Auto merged
include/mysql.h:
Auto merged
include/mysql_com.h:
Auto merged
innobase/buf/buf0buf.c:
Auto merged
innobase/include/row0mysql.h:
Auto merged
innobase/row/row0sel.c:
Auto merged
libmysql/libmysql.c:
Auto merged
libmysqld/examples/Makefile.am:
Auto merged
myisam/mi_check.c:
Auto merged
mysql-test/include/ps_modify.inc:
Auto merged
mysql-test/install_test_db.sh:
Auto merged
mysql-test/r/alter_table.result:
Auto merged
mysql-test/r/auto_increment.result:
Auto merged
mysql-test/r/bdb.result:
Auto merged
mysql-test/r/ctype_latin1_de.result:
Auto merged
mysql-test/r/ctype_recoding.result:
Auto merged
mysql-test/r/fulltext.result:
Auto merged
mysql-test/r/func_gconcat.result:
Auto merged
mysql-test/r/func_group.result:
Auto merged
mysql-test/r/func_if.result:
Auto merged
mysql-test/t/derived.test:
Auto merged
mysql-test/t/insert.test:
merge with 4.1
Fixed test case to not use 'if exists' when it shouldn't
mysql-test/t/range.test:
merge with 4.1
Added missing drop table
sql/ha_ndbcluster.cc:
merge with 4.1
Simple optimization: use max() instead of ? :
sql/item_func.cc:
merge with 4.1
(Added back old variable names for easier merges)
sql/opt_range.cc:
merge with 4.1
Removed argument 'parent_alloc' from QUICK_RANGE_SELECT as this was not used
Added assert if using QUICK_GROUP_MIN_MAX_SELECT with parent_alloc as the init() function can't handle this
Changed back get_quick_select_for_ref() to use it's own alloc root becasue this function may be called several times for one query
sql/sql_handler.cc:
merge with 4.1
change variable 'err' to 'error' as same function had a label named 'err'
sql/sql_update.cc:
Use multi-update code from 5.0 instead of 4.1
We will fix the locking code shortly in 5.0 to be faster than in 4.1
Diffstat (limited to 'innobase/btr')
-rw-r--r-- | innobase/btr/btr0btr.c | 23 | ||||
-rw-r--r-- | innobase/btr/btr0cur.c | 8 |
2 files changed, 17 insertions, 14 deletions
diff --git a/innobase/btr/btr0btr.c b/innobase/btr/btr0btr.c index 27d798f925a..ae967e0525e 100644 --- a/innobase/btr/btr0btr.c +++ b/innobase/btr/btr0btr.c @@ -595,10 +595,10 @@ btr_page_get_father_for_rec( buf_page_print(buf_frame_align(node_ptr)); fputs("InnoDB: Corruption of an index tree: table ", stderr); - ut_print_name(stderr, + ut_print_name(stderr, NULL, UT_LIST_GET_FIRST(tree->tree_indexes)->table_name); fputs(", index ", stderr); - ut_print_name(stderr, + ut_print_name(stderr, NULL, UT_LIST_GET_FIRST(tree->tree_indexes)->name); fprintf(stderr, ",\n" "InnoDB: father ptr page no %lu, child page no %lu\n", @@ -610,8 +610,8 @@ btr_page_get_father_for_rec( fputs( "InnoDB: You should dump + drop + reimport the table to fix the\n" "InnoDB: corruption. If the crash happens at the database startup, see\n" -"InnoDB: section 6.1 of http://www.innodb.com/ibman.php about forcing\n" -"InnoDB: recovery. Then dump + drop + reimport.\n", stderr); +"InnoDB: http://dev.mysql.com/doc/mysql/en/Forcing_recovery.html about\n" +"InnoDB: forcing recovery. Then dump + drop + reimport.\n", stderr); } ut_a(btr_node_ptr_get_child_page_no(node_ptr) == @@ -2341,7 +2341,7 @@ btr_index_rec_validate_report( dict_index_t* index) /* in: index */ { fputs("InnoDB: Record in ", stderr); - dict_index_name_print(stderr, index); + dict_index_name_print(stderr, NULL, index); fprintf(stderr, ", page %lu, at offset %lu\n", buf_frame_get_page_no(page), (ulint)(rec - page)); } @@ -2400,14 +2400,17 @@ btr_index_rec_validate( dtype_t* type = dict_index_get_nth_type(index, i); rec_get_nth_field(rec, i, &len); - + + /* Note that prefix indexes are not fixed size even when + their type is CHAR. */ + if ((dict_index_get_nth_field(index, i)->prefix_len == 0 && len != UNIV_SQL_NULL && dtype_is_fixed_size(type) && len != dtype_get_fixed_size(type)) || (dict_index_get_nth_field(index, i)->prefix_len > 0 - && len != UNIV_SQL_NULL && dtype_is_fixed_size(type) - && len != + && len != UNIV_SQL_NULL + && len > dict_index_get_nth_field(index, i)->prefix_len)) { btr_index_rec_validate_report(page, rec, index); @@ -2479,7 +2482,7 @@ btr_validate_report1( { fprintf(stderr, "InnoDB: Error in page %lu of ", buf_frame_get_page_no(page)); - dict_index_name_print(stderr, index); + dict_index_name_print(stderr, NULL, index); if (level) { fprintf(stderr, ", index tree level %lu", level); } @@ -2500,7 +2503,7 @@ btr_validate_report2( fprintf(stderr, "InnoDB: Error in pages %lu and %lu of ", buf_frame_get_page_no(page1), buf_frame_get_page_no(page2)); - dict_index_name_print(stderr, index); + dict_index_name_print(stderr, NULL, index); if (level) { fprintf(stderr, ", index tree level %lu", level); } diff --git a/innobase/btr/btr0cur.c b/innobase/btr/btr0cur.c index be201da4510..48de5644908 100644 --- a/innobase/btr/btr0cur.c +++ b/innobase/btr/btr0cur.c @@ -839,7 +839,7 @@ static void btr_cur_trx_report( /*===============*/ - const trx_t* trx, /* in: transaction */ + trx_t* trx, /* in: transaction */ const dict_index_t* index, /* in: index */ const char* op) /* in: operation */ { @@ -847,7 +847,7 @@ btr_cur_trx_report( ut_dulint_get_high(trx->id), ut_dulint_get_low(trx->id)); fputs(op, stderr); - dict_index_name_print(stderr, index); + dict_index_name_print(stderr, trx, index); putc('\n', stderr); } @@ -899,7 +899,7 @@ btr_cur_optimistic_insert( if (!dtuple_check_typed_no_assert(entry)) { fputs("InnoDB: Error in a tuple to insert into ", stderr); - dict_index_name_print(stderr, index); + dict_index_name_print(stderr, thr_get_trx(thr), index); } if (btr_cur_print_record_ops && thr) { @@ -1001,7 +1001,7 @@ calculate_sizes_again: fputs("InnoDB: Error: cannot insert tuple ", stderr); dtuple_print(stderr, entry); fputs(" into ", stderr); - dict_index_name_print(stderr, index); + dict_index_name_print(stderr, thr_get_trx(thr), index); fprintf(stderr, "\nInnoDB: max insert size %lu\n", (ulong) max_size); ut_error; |