diff options
author | Vasil Dimov <vasil.dimov@oracle.com> | 2010-04-22 14:24:42 +0300 |
---|---|---|
committer | Vasil Dimov <vasil.dimov@oracle.com> | 2010-04-22 14:24:42 +0300 |
commit | 66b4a1e6143cf89691615867671daf01021e0c76 (patch) | |
tree | 0a0fcd13a1b021fe7195b33cb476442ac7524dc3 /storage/innobase/dict | |
parent | d7ffd1a088bca4a5a70500772624692cb720e64c (diff) | |
download | mariadb-git-66b4a1e6143cf89691615867671daf01021e0c76.tar.gz |
Merge r3403..3414 from mysql-5.1-innodb:
------------------------------------------------------------
revno: 3414
revision-id: marko.makela@oracle.com-20100422093342-jf9ojlzdqsdebohn
parent: marko.makela@oracle.com-20100421185359-8qaxoa2yyrpzwdd7
committer: Marko M?kel? <marko.makela@oracle.com>
branch nick: 5.1-innodb
timestamp: Thu 2010-04-22 12:33:42 +0300
message:
Correct the definition of DICT_SYS_INDEXES_NAME_FIELD.
When row_merge_drop_temp_indexes() was reworked to drop the indexes
via the data dictionary cache, the code was broken because it would
read the index name from the wrong field.
modified:
storage/innodb_plugin/ChangeLog 2425@16c675df-0fcb-4bc9-8058-dcc011a37293:branches%2Fzip%2FChangeLog
storage/innodb_plugin/dict/dict0boot.c 2@16c675df-0fcb-4bc9-8058-dcc011a37293:trunk%2Fdict%2Fdict0boot.c
storage/innodb_plugin/include/dict0boot.h 2@16c675df-0fcb-4bc9-8058-dcc011a37293:trunk%2Finclude%2Fdict0boot.h
------------------------------------------------------------
revno: 3413
revision-id: marko.makela@oracle.com-20100421185359-8qaxoa2yyrpzwdd7
parent: marko.makela@oracle.com-20100421102723-0i80uezbyu0ekj5d
committer: Marko M?kel? <marko.makela@oracle.com>
branch nick: 5.1-innodb
timestamp: Wed 2010-04-21 21:53:59 +0300
message:
btr_page_split_and_insert(): Avoid an infinite loop. (Bug #52964)
btr_page_tuple_smaller(): New function, refactored from
btr_page_split_and_insert().
btr_page_get_split_rec(): Renamed from btr_page_get_sure_split_rec().
Note that a NULL return may mean that the tuple is to be inserted into
either the lower or upper page, to be determined by btr_page_tuple_smaller().
btr_page_split_and_insert(): When btr_page_get_split_rec() returns NULL,
invoke btr_page_tuple_smaller() to determine which half-page the tuple
belongs to.
Reviewed by Sunny Bains
modified:
storage/innodb_plugin/ChangeLog 2425@16c675df-0fcb-4bc9-8058-dcc011a37293:branches%2Fzip%2FChangeLog
storage/innodb_plugin/btr/btr0btr.c 2@16c675df-0fcb-4bc9-8058-dcc011a37293:trunk%2Fbtr%2Fbtr0btr.c
------------------------------------------------------------
revno: 3412
revision-id: marko.makela@oracle.com-20100421102723-0i80uezbyu0ekj5d
parent: marko.makela@oracle.com-20100421100029-mji6lmdgvuqh96qq
committer: Marko M?kel? <marko.makela@oracle.com>
branch nick: 5.1-innodb
timestamp: Wed 2010-04-21 13:27:23 +0300
message:
dict_create_index_step(): Be strict about DYNAMIC and COMPRESSED tables.
Bug #50495 is about REDUNDANT and COMPACT tables, after all.
modified:
mysql-test/suite/innodb_plugin/r/innodb-zip.result 2252@16c675df-0fcb-4bc9-8058-dcc011a37293:branches%2Fzip%2Fmysql-test%2Finnodb-zip.result
mysql-test/suite/innodb_plugin/t/innodb-zip.test 2252@16c675df-0fcb-4bc9-8058-dcc011a37293:branches%2Fzip%2Fmysql-test%2Finnodb-zip.test
storage/innodb_plugin/ChangeLog 2425@16c675df-0fcb-4bc9-8058-dcc011a37293:branches%2Fzip%2FChangeLog
storage/innodb_plugin/dict/dict0crea.c 2@16c675df-0fcb-4bc9-8058-dcc011a37293:trunk%2Fdict%2Fdict0crea.c
------------------------------------------------------------
revno: 3411
revision-id: marko.makela@oracle.com-20100421100029-mji6lmdgvuqh96qq
parent: marko.makela@oracle.com-20100421095033-0acvzxb8um8cms0a
committer: Marko M?kel? <marko.makela@oracle.com>
branch nick: 5.1-innodb
timestamp: Wed 2010-04-21 13:00:29 +0300
message:
ha_innobase::add_index(): Only check for duplicate indexes
when the data dictionary is locked.
This fixes a UNIV_DEBUG assertion failure in innodb-index.test.
modified:
storage/innodb_plugin/handler/handler0alter.cc 1845@16c675df-0fcb-4bc9-8058-dcc011a37293:branches%2Fzip%2Fhandler%2Fhandler0alter.cc
------------------------------------------------------------
revno: 3410
revision-id: marko.makela@oracle.com-20100421095033-0acvzxb8um8cms0a
parent: marko.makela@oracle.com-20100421094032-ir4glqk46qvg2ywn
committer: Marko M?kel? <marko.makela@oracle.com>
branch nick: 5.1-innodb
timestamp: Wed 2010-04-21 12:50:33 +0300
message:
dtuple_convert_big_rec(): Store locally any fields whose maximum length
is less than 256 bytes. (Bug #52745)
Add related comments and debug assertions to the "offsets"
functions in rem0rec.c.
Approved by Sunny Bains
modified:
storage/innodb_plugin/ChangeLog 2425@16c675df-0fcb-4bc9-8058-dcc011a37293:branches%2Fzip%2FChangeLog
storage/innodb_plugin/data/data0data.c 2@16c675df-0fcb-4bc9-8058-dcc011a37293:trunk%2Fdata%2Fdata0data.c
storage/innodb_plugin/rem/rem0rec.c 2@16c675df-0fcb-4bc9-8058-dcc011a37293:trunk%2Frem%2Frem0rec.c
------------------------------------------------------------
revno: 3409
revision-id: marko.makela@oracle.com-20100421094032-ir4glqk46qvg2ywn
parent: marko.makela@oracle.com-20100421091611-uu46iygmv5sizjru
committer: Marko M?kel? <marko.makela@oracle.com>
branch nick: 5.1-innodb
timestamp: Wed 2010-04-21 12:40:32 +0300
message:
Adjust tests for the Bug #50495 fix.
modified:
mysql-test/suite/innodb_plugin/r/innodb-zip.result 2252@16c675df-0fcb-4bc9-8058-dcc011a37293:branches%2Fzip%2Fmysql-test%2Finnodb-zip.result
mysql-test/suite/innodb_plugin/t/innodb-zip.test 2252@16c675df-0fcb-4bc9-8058-dcc011a37293:branches%2Fzip%2Fmysql-test%2Finnodb-zip.test
mysql-test/suite/innodb_plugin/t/innodb_bug36169.test 2418@16c675df-0fcb-4bc9-8058-dcc011a37293:branches%2Fzip%2Fmysql-test%2Finnodb_bug36169.test
------------------------------------------------------------
revno: 3408
revision-id: marko.makela@oracle.com-20100421091611-uu46iygmv5sizjru
parent: marko.makela@oracle.com-20100421063916-h3gwjea7jzjilyww
committer: Marko M?kel? <marko.makela@oracle.com>
branch nick: 5.1-innodb
timestamp: Wed 2010-04-21 12:16:11 +0300
message:
rec_convert_dtuple_to_rec(): Correct the debug check.
The "extern" accessor functions return zero or nonzero, not 0 or 1.
modified:
storage/innodb_plugin/rem/rem0rec.c 2@16c675df-0fcb-4bc9-8058-dcc011a37293:trunk%2Frem%2Frem0rec.c
------------------------------------------------------------
revno: 3407
revision-id: marko.makela@oracle.com-20100421063916-h3gwjea7jzjilyww
parent: marko.makela@oracle.com-20100420201550-cax1xywvlcdshgfg
committer: Marko M?kel? <marko.makela@oracle.com>
branch nick: 5.1-innodb
timestamp: Wed 2010-04-21 09:39:16 +0300
message:
rec_convert_dtuple_to_rec(): Add a debug check.
modified:
storage/innodb_plugin/rem/rem0rec.c 2@16c675df-0fcb-4bc9-8058-dcc011a37293:trunk%2Frem%2Frem0rec.c
------------------------------------------------------------
revno: 3406
revision-id: marko.makela@oracle.com-20100420201550-cax1xywvlcdshgfg
parent: marko.makela@oracle.com-20100420114222-diq7h2hiom9ww6me
committer: Marko Makela <marko.makela@oracle.com>
branch nick: 5.1-innodb
timestamp: Tue 2010-04-20 23:15:50 +0300
message:
btr_cur_optimistic_insert(): Remove unused variable "heap".
modified:
storage/innodb_plugin/btr/btr0cur.c 2@16c675df-0fcb-4bc9-8058-dcc011a37293:trunk%2Fbtr%2Fbtr0cur.c
------------------------------------------------------------
revno: 3405
revision-id: marko.makela@oracle.com-20100420114222-diq7h2hiom9ww6me
parent: marko.makela@oracle.com-20100420082908-tpako8jd4imkh1xb
committer: Marko Makela <marko.makela@oracle.com>
branch nick: 5.1-innodb
timestamp: Tue 2010-04-20 14:42:22 +0300
message:
dict_create_index_step(): Invoke dict_index_add_to_cache()
in strict mode only if innodb_strict_mode is set. (Bug #50495)
trx_is_strict(): New function, for checking innodb_strict_mode.
modified:
storage/innodb_plugin/ChangeLog 2425@16c675df-0fcb-4bc9-8058-dcc011a37293:branches%2Fzip%2FChangeLog
storage/innodb_plugin/dict/dict0crea.c 2@16c675df-0fcb-4bc9-8058-dcc011a37293:trunk%2Fdict%2Fdict0crea.c
storage/innodb_plugin/handler/ha_innodb.cc 2@16c675df-0fcb-4bc9-8058-dcc011a37293:trunk%2Fhandler%2Fha_innodb.cc
storage/innodb_plugin/include/trx0trx.h 2@16c675df-0fcb-4bc9-8058-dcc011a37293:trunk%2Finclude%2Ftrx0trx.h
------------------------------------------------------------
revno: 3404
revision-id: marko.makela@oracle.com-20100420082908-tpako8jd4imkh1xb
parent: marko.makela@oracle.com-20100419103603-u5pz4qc6hfhx4nua
committer: Marko M?kel? <marko.makela@oracle.com>
branch nick: 5.1-innodb
timestamp: Tue 2010-04-20 11:29:08 +0300
message:
Implement UNIV_BTR_AVOID_COPY, an optimization of page splits.
modified:
storage/innodb_plugin/ChangeLog 2425@16c675df-0fcb-4bc9-8058-dcc011a37293:branches%2Fzip%2FChangeLog
storage/innodb_plugin/btr/btr0btr.c 2@16c675df-0fcb-4bc9-8058-dcc011a37293:trunk%2Fbtr%2Fbtr0btr.c
storage/innodb_plugin/include/univ.i 2@16c675df-0fcb-4bc9-8058-dcc011a37293:trunk%2Finclude%2Funiv.i
------------------------------------------------------------
revno: 3403
revision-id: marko.makela@oracle.com-20100419103603-u5pz4qc6hfhx4nua
parent: marko.makela@oracle.com-20100419094405-fd3xwadullishv07
committer: Marko =?ISO-8859-1?Q?M=E4kel=E4?= <marko.makela@oracle.com>
branch nick: 5.1-innodb
timestamp: Mon 2010-04-19 13:36:03 +0300
message:
Enable UNIV_DEBUG_VALGRIND when HAVE_purify is set.
modified:
storage/innobase/include/univ.i 2@cee13dc7-1704-0410-992b-c9b4543f1246:trunk%2Finclude%2Funiv.i
storage/innodb_plugin/include/univ.i 2@16c675df-0fcb-4bc9-8058-dcc011a37293:trunk%2Finclude%2Funiv.i
Diffstat (limited to 'storage/innobase/dict')
-rw-r--r-- | storage/innobase/dict/dict0boot.c | 4 | ||||
-rw-r--r-- | storage/innobase/dict/dict0crea.c | 7 |
2 files changed, 7 insertions, 4 deletions
diff --git a/storage/innobase/dict/dict0boot.c b/storage/innobase/dict/dict0boot.c index 70b5bfa99f7..45d57b8c619 100644 --- a/storage/innobase/dict/dict0boot.c +++ b/storage/innobase/dict/dict0boot.c @@ -368,8 +368,8 @@ dict_boot(void) #if DICT_SYS_INDEXES_TYPE_FIELD != 4 + 2 #error "DICT_SYS_INDEXES_TYPE_FIELD != 4 + 2" #endif -#if DICT_SYS_INDEXES_NAME_FIELD != 1 + 2 -#error "DICT_SYS_INDEXES_NAME_FIELD != 1 + 2" +#if DICT_SYS_INDEXES_NAME_FIELD != 2 + 2 +#error "DICT_SYS_INDEXES_NAME_FIELD != 2 + 2" #endif table->id = DICT_INDEXES_ID; diff --git a/storage/innobase/dict/dict0crea.c b/storage/innobase/dict/dict0crea.c index 4ba7cd8a48c..653bff4bef6 100644 --- a/storage/innobase/dict/dict0crea.c +++ b/storage/innobase/dict/dict0crea.c @@ -1105,8 +1105,11 @@ dict_create_index_step( dulint index_id = node->index->id; - err = dict_index_add_to_cache(node->table, node->index, - FIL_NULL, TRUE); + err = dict_index_add_to_cache( + node->table, node->index, FIL_NULL, + trx_is_strict(trx) + || dict_table_get_format(node->table) + >= DICT_TF_FORMAT_ZIP); node->index = dict_index_get_if_in_cache_low(index_id); ut_a(!node->index == (err != DB_SUCCESS)); |