Jon Olav Hauglid
f21fd6e40f
Bug#11853126 RE-ENABLE CONCURRENT READS WHILE CREATING
...
SECONDARY INDEX IN INNODB
The patches for Bug#11751388 and Bug#11784056 enabled concurrent
reads while creating secondary indexes in InnoDB. However, they
introduced a regression. This regression occured if ALTER TABLE
failed after the index had been added, for example during the
lock upgrade needed to update .FRM. If this happened, InnoDB
and the server got out of sync with regards to which indexes
actually existed. Therefore the patch for Bug#11815600 again
disabled concurrent reads.
This patch re-enables concurrent reads. The original regression
is fixed by splitting the ADD INDEX operation into two parts.
First the new index is created but not made active. This is
done while concurrent reads are allowed. The second part of
the operation makes the index active (or reverts the change).
This is done after lock upgrade, which prevents the original
regression.
In order to implement this change, the patch changes the storage
API for in-place index creation. handler::add_index() is split
into two functions, handler_add_index() and
handler::final_add_index(). The former for creating indexes without
making them visible and the latter for commiting (i.e. making
visible) new indexes or reverting the changes.
Large parts of this patch were written by Marko Mäkelä.
Test case added to innodb_mysql_lock.test.
2011-06-01 10:06:55 +02:00
Jimmy Yang
bd708b4240
Implement worklog #5743 InnoDB: Lift the limit of index key prefixes.
...
With this change, the index prefix column length lifted from 767 bytes
to 3072 bytes if "innodb_large_prefix" is set to "true".
rb://603 approved by Marko
2011-05-31 02:12:32 -07:00
Marko Mäkelä
cdba023d9a
Merge mysql-5.1-innodb to mysql-5.5-innodb.
2011-04-11 17:03:32 +03:00
Jimmy Yang
8586497e5d
Merge from mysql-5.1-innodb to mysql-5.5-innodb
2011-02-14 02:17:51 -08:00
Jimmy Yang
956ada2e2d
Merge from mysql-5.1-innodb to mysql-5.5-innodb
2010-11-10 21:51:00 -08:00
Marko Mäkelä
deaba603e4
Bug#52199 utf32: mbminlen=4, mbmaxlen=4, type->mbminlen=0, type->mbmaxlen=4
...
Merge and adjust a forgotten change to fix this bug.
rb://393 approved by Jimmy Yang
------------------------------------------------------------------------
r3794 | marko | 2009-01-07 14:14:53 +0000 (Wed, 07 Jan 2009) | 18 lines
branches/6.0: Allow the minimum length of a multi-byte character to be
up to 4 bytes. (Bug #35391 )
dtype_t, dict_col_t: Replace mbminlen:2, mbmaxlen:3 with mbminmaxlen:5.
In this way, the 5 bits can hold two values of 0..4, and the storage size
of the fields will not cross the 64-bit boundary. Encode the values as
DATA_MBMAX * mbmaxlen + mbminlen. Define the auxiliary macros
DB_MBMINLEN(mbminmaxlen), DB_MBMAXLEN(mbminmaxlen), and
DB_MINMAXLEN(mbminlen, mbmaxlen).
Try to trim and pad UTF-16 and UTF-32 with spaces as appropriate.
Alexander Barkov suggested the use of cs->cset->fill(cs, buff, len, 0x20).
ha_innobase::store_key_val_for_row() now does that, but the added function
row_mysql_pad_col() does not, because it doesn't have the MySQL TABLE object.
rb://49 approved by Heikki Tuuri
------------------------------------------------------------------------
2010-06-29 14:32:48 +03:00
Marko Mäkelä
9451ee4b2c
Merge from mysql-5.1-innodb:
...
------------------------------------------------------------
revno: 3462
revision-id: marko.makela@oracle.com-20100512104212-e2h9n1obxjb8tfg4
parent: marko.makela@oracle.com-20100512060922-oh716ugpukfakwvh
committer: Marko Mäkelä <marko.makela@oracle.com>
branch nick: mysql-5.1-innodb
timestamp: Wed 2010-05-12 13:42:12 +0300
message:
ha_innobase::add_index(): Reset trx->error_state in error handling.
(Bug #53591 )
2010-05-12 14:19:26 +03:00
Vasil Dimov
0ecec12df3
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
2010-04-22 14:24:42 +03:00
Vasil Dimov
ff03e2ffd0
Replay c2996 on top of the new storage/innobase
2010-04-13 18:26:27 +03:00
Vasil Dimov
5f9ba24f91
Import branches/innodb+ from SVN on top of storage/innobase.
2010-04-12 18:20:41 +03:00
Mats Kindahl
e409d6f69c
WL#5030: Split and remove mysql_priv.h
...
This patch:
- Moves all definitions from the mysql_priv.h file into
header files for the component where the variable is
defined
- Creates header files if the component lacks one
- Eliminates all include directives from mysql_priv.h
- Eliminates all circular include cycles
- Rename time.cc to sql_time.cc
- Rename mysql_priv.h to sql_priv.h
2010-03-31 16:05:33 +02:00
Satya B
57f7f1fdf3
Merge Innodb Plugin 1.0.6 from mysql-5.1-bugteam storage/innodb_plugin to mysql-trunk-merge.
...
Merging revisions 3221 to 3230 from mysql-5.1-bugteam
2009-12-02 19:30:50 +05:30
Sergey Vojtovich
21fad4ee1f
Merge of innodb-zip-ss6129 from 5.1 to mysql-trunk.
2009-11-05 16:29:58 +04:00
Satya B
a0e12ec269
Merging Innodb plugin 1.0.5 revisions from 5.1-main from revisions 3149 to 3163
...
also merged missing Innodb plugin revisions r5636,r5635 manually
2009-10-16 17:28:02 +05:30
Guilhem Bichot
27d142386c
Applying fix from Oracle (Marko) for Bug #46657 "InnoDB plugin: invalid read in index_merge_innodb test (Valgrind)"
2009-08-25 17:12:44 +02:00
Guilhem Bichot
29a46b4cf9
Renamed storage/innodb_plugin to storage/innobase, so that 1) it's the same
...
layout as we always had in trees containing only the builtin
2) win\configure.js WITH_INNOBASE_STORAGE_ENGINE still works.
2009-08-07 12:16:00 +02:00