mariadb/storage
Marko Mäkelä d0ef1aaf61 MDEV-12123 Page contains nonzero PAGE_MAX_TRX_ID
When MDEV-6076 repurposed the field PAGE_MAX_TRX_ID, it was assumed
that the field always was 0 in the clustered index of old data files.
This was not the case in IMPORT TABLESPACE (introduced in MySQL 5.6
and MariaDB 10.0), which is writing the transaction ID to all index
pages, including clustered index pages.

This means that on a data file that was at some point of its life
IMPORTed to an InnoDB instance, MariaDB 10.2.4 or later could interpret
the transaction ID as a persistent AUTO_INCREMENT value.

This also means that future changes that repurpose PAGE_MAX_TRX_ID
in the clustered index may cause trouble with files that were imported
at some point of their life.

There is a separate minor issue that InnoDB is writing PAGE_MAX_TRX_ID
to every secondary index page, even though it is only needed on leaf
pages. From now on we will write PAGE_MAX_TRX_ID as 0 to non-leaf pages,
just to be able to keep stricter debug assertions.

btr_root_raise_and_insert(): Reset the PAGE_MAX_TRX_ID field on non-root
pages of the clustered index, and on the no-longer-leaf root page of
secondary indexes.

AbstractCallback::is_root_page(): Remove. Use page_is_root() instead.

PageConverter::update_index_page(): Reset the PAGE_MAX_TRX_ID to 0
on other pages than the clustered index root page or secondary index
leaf pages.
2017-04-19 07:59:24 +03:00
..
archive MDEV-11645: archive.archive fails in buildbot with valgrind (Use of uninitialised value) 2017-03-15 21:26:39 +05:30
blackhole
cassandra Merge branch '10.1' into 10.2 2017-03-30 12:48:42 +02:00
connect Merge branch '10.1' into 10.2 2017-03-30 12:48:42 +02:00
csv Merge branch '10.0' into 10.1 2016-03-21 13:02:53 +01:00
example
federated MDEV-11597 Assertion when doing select from virtual column with impossible value 2017-01-11 09:19:45 +02:00
federatedx MDEV-11597 Assertion when doing select from virtual column with impossible value 2017-01-11 09:19:45 +02:00
heap MDEV-8360 Clean-up CHARSET_INFO: strnncollsp: diff_if_only_endspace_difference 2016-03-31 11:04:48 +04:00
innobase MDEV-12123 Page contains nonzero PAGE_MAX_TRX_ID 2017-04-19 07:59:24 +03:00
maria Merge branch '10.1' into 10.2 2017-03-30 12:48:42 +02:00
mroonga Merge branch '10.1' into 10.2 2017-03-30 12:48:42 +02:00
myisam Merge branch '10.1' into 10.2 2017-03-30 12:48:42 +02:00
myisammrg cleanup: remove Item::intro_version 2016-12-12 20:27:25 +01:00
oqgraph Merge branch '10.1' into 10.2 2017-03-30 12:48:42 +02:00
perfschema Fix several compile warnings on Windows 2017-03-10 19:07:07 +00:00
rocksdb Rocksdb - disable tests that fail regularly on buildbot (MDEV-12474) 2017-04-07 17:00:51 +00:00
sequence Fix several compile warnings on Windows 2017-03-17 08:56:57 +00:00
sphinx mtr: make sphinx skipping a bit less verbose 2017-02-13 18:12:15 +01:00
spider Merge branch '10.1' into 10.2 2017-03-30 12:48:42 +02:00
test_sql_discovery store/show vcols as item->print() 2016-12-12 20:35:41 +01:00
tokudb Merge branch '10.1' into 10.2 2017-03-30 12:48:42 +02:00
xtradb Merge 10.1 into 10.2 2017-04-06 09:52:25 +03:00