mariadb/storage/innobase/include
Jan Lindström f448a800e1 MDEV-9422: Checksum errors on restart when killing busy instance that uses encrypted XtraDB tables
Analysis:

-- InnoDB has n (>0) redo-log files.
-- In the first page of redo-log there is 2 checkpoint records on fixed location (checkpoint is not encrypted)
-- On every checkpoint record there is up to 5 crypt_keys containing the keys used for encryption/decryption
-- On crash recovery we read all checkpoints on every file
-- Recovery starts by reading from the latest checkpoint forward
-- Problem is that latest checkpoint might not always contain the key we need to decrypt all the
   redo-log blocks (see MDEV-9422 for one example)
-- Furthermore, there is no way to identify is the log block corrupted or encrypted

For example checkpoint can contain following keys :

write chk: 4 [ chk key ]: [ 5 1 ] [ 4 1 ] [ 3 1 ] [ 2 1 ] [ 1 1 ]

so over time we could have a checkpoint

write chk: 13 [ chk key ]: [ 14 1 ] [ 13 1 ] [ 12 1 ] [ 11 1 ] [ 10 1 ]

killall -9 mysqld causes crash recovery and on crash recovery we read as
many checkpoints as there is log files, e.g.

read [ chk key ]: [ 13 1 ] [ 12 1 ] [ 11 1 ] [ 10 1 ] [ 9 1 ]
read [ chk key ]: [ 14 1 ] [ 13 1 ] [ 12 1 ] [ 11 1 ] [ 10 1 ] [ 9 1 ]

This is problematic, as we could still scan log blocks e.g. from checkpoint 4 and we do
not know anymore the correct key.

CRYPT INFO: for checkpoint 14 search 4
CRYPT INFO: for checkpoint 13 search 4
CRYPT INFO: for checkpoint 12 search 4
CRYPT INFO: for checkpoint 11 search 4
CRYPT INFO: for checkpoint 10 search 4
CRYPT INFO: for checkpoint 9 search 4 (NOTE: NOT FOUND)

For every checkpoint, code generated a new encrypted key based on key
from encryption plugin and random numbers. Only random numbers are
stored on checkpoint.

Fix: Generate only one key for every log file. If checkpoint contains only
one key, use that key to encrypt/decrypt all log blocks. If checkpoint
contains more than one key (this is case for databases created
using MariaDB server version 10.1.0 - 10.1.12 if log encryption was
used). If looked checkpoint_no is found from keys on checkpoint we use
that key to decrypt the log block. For encryption we use always the
first key. If the looked checkpoint_no is not found from keys on checkpoint
we use the first key.

Modified code also so that if log is not encrypted, we do not generate
any empty keys. If we have a log block and no keys is found from
checkpoint we assume that log block is unencrypted. Log corruption or
missing keys is found by comparing log block checksums. If we have
a keys but current log block checksum is correct we again assume
log block to be unencrypted. This is because current implementation
stores checksum only before encryption and new checksum after
encryption but before disk write is not stored anywhere.
2016-03-18 07:58:04 +02:00
..
api0api.h 5.6.25 2015-06-16 10:57:05 +02:00
api0misc.h move to storage/innobase 2015-05-04 19:17:21 +02:00
btr0btr.h Fix release build compile failure. 2015-09-14 16:28:16 +03:00
btr0btr.ic MDEV-8769: Server crash at file btr0btr.ic line 122 when defragmenting encrypted table using incorrect keys 2015-09-14 12:15:27 +03:00
btr0cur.h MDEV-8588: Assertion failure in file ha_innodb.cc line 21140 if at least one encrypted table exists and encryption service is not available 2015-09-04 20:19:45 +03:00
btr0cur.ic move to storage/innobase 2015-05-04 19:17:21 +02:00
btr0defragment.h MDEV-8769: Server crash at file btr0btr.ic line 122 when defragmenting encrypted table using incorrect keys 2015-09-14 12:15:27 +03:00
btr0pcur.h MDEV-8588: Assertion failure in file ha_innodb.cc line 21140 if at least one encrypted table exists and encryption service is not available 2015-09-04 20:19:45 +03:00
btr0pcur.ic MDEV-8588: Assertion failure in file ha_innodb.cc line 21140 if at least one encrypted table exists and encryption service is not available 2015-09-04 20:19:45 +03:00
btr0scrub.h Push for testing of encryption 2015-02-10 10:21:17 +01:00
btr0sea.h move to storage/innobase 2015-05-04 19:17:21 +02:00
btr0sea.ic move to storage/innobase 2015-05-04 19:17:21 +02:00
btr0types.h move to storage/innobase 2015-05-04 19:17:21 +02:00
buf0buddy.h move to storage/innobase 2015-05-04 19:17:21 +02:00
buf0buddy.ic move to storage/innobase 2015-05-04 19:17:21 +02:00
buf0buf.h MDEV-9236: Dramatically overallocation of InnoDB buffer pool leads to crash 2015-12-17 19:45:42 +02:00
buf0buf.ic MDEV-9236: Dramatically overallocation of InnoDB buffer pool leads to crash 2015-12-17 19:45:42 +02:00
buf0checksum.h move to storage/innobase 2015-05-04 19:17:21 +02:00
buf0dblwr.h move to storage/innobase 2015-05-04 19:17:21 +02:00
buf0dump.h move to storage/innobase 2015-05-04 19:17:21 +02:00
buf0flu.h move to storage/innobase 2015-05-04 19:17:21 +02:00
buf0flu.ic move to storage/innobase 2015-05-04 19:17:21 +02:00
buf0lru.h move to storage/innobase 2015-05-04 19:17:21 +02:00
buf0lru.ic move to storage/innobase 2015-05-04 19:17:21 +02:00
buf0mtflu.h Moved mt-flush code to buf0mtflu.[cc|h] and cleaned it up. This is for 2014-02-06 17:25:26 +02:00
buf0rea.h MDEV-8588: Assertion failure in file ha_innodb.cc line 21140 if at least one encrypted table exists and encryption service is not available 2015-09-04 20:19:45 +03:00
buf0types.h move to storage/innobase 2015-05-04 19:17:21 +02:00
data0data.h move to storage/innobase 2015-05-04 19:17:21 +02:00
data0data.ic move to storage/innobase 2015-05-04 19:17:21 +02:00
data0type.h move to storage/innobase 2015-05-04 19:17:21 +02:00
data0type.ic move to storage/innobase 2015-05-04 19:17:21 +02:00
data0types.h move to storage/innobase 2015-05-04 19:17:21 +02:00
db0err.h MDEV-8764: Wrong error when encrypted table can't be decrypted. 2015-09-14 08:27:36 +03:00
dict0boot.h move to storage/innobase 2015-05-04 19:17:21 +02:00
dict0boot.ic move to storage/innobase 2015-05-04 19:17:21 +02:00
dict0crea.h Merge branch '10.0' into 10.1 2015-09-03 12:58:41 +02:00
dict0crea.ic move to storage/innobase 2015-05-04 19:17:21 +02:00
dict0dict.h Merge branch '10.0' into 10.1 2015-12-21 21:24:22 +01:00
dict0dict.ic Merge branch '10.0' into 10.1 2015-09-03 12:58:41 +02:00
dict0load.h move to storage/innobase 2015-05-04 19:17:21 +02:00
dict0load.ic move to storage/innobase 2015-05-04 19:17:21 +02:00
dict0mem.h MDEV-8588: Assertion failure in file ha_innodb.cc line 21140 if at least one encrypted table exists and encryption service is not available 2015-09-04 20:19:45 +03:00
dict0mem.ic move to storage/innobase 2015-05-04 19:17:21 +02:00
dict0pagecompress.h Enhancement: Change atomic_writes table option to enum type. Now every file can either use atomic writes, not use it or use default. 2014-01-10 12:11:36 +02:00
dict0pagecompress.ic InnoDB/XtraDB Encryption cleanup. 2015-04-07 23:44:56 +02:00
dict0priv.h move to storage/innobase 2015-05-04 19:17:21 +02:00
dict0priv.ic move to storage/innobase 2015-05-04 19:17:21 +02:00
dict0stats.h move to storage/innobase 2015-05-04 19:17:21 +02:00
dict0stats.ic move to storage/innobase 2015-05-04 19:17:21 +02:00
dict0stats_bg.h move to storage/innobase 2015-05-04 19:17:21 +02:00
dict0stats_bg.ic move to storage/innobase 2015-05-04 19:17:21 +02:00
dict0types.h move to storage/innobase 2015-05-04 19:17:21 +02:00
dyn0dyn.h move to storage/innobase 2015-05-04 19:17:21 +02:00
dyn0dyn.ic move to storage/innobase 2015-05-04 19:17:21 +02:00
eval0eval.h move to storage/innobase 2015-05-04 19:17:21 +02:00
eval0eval.ic move to storage/innobase 2015-05-04 19:17:21 +02:00
eval0proc.h move to storage/innobase 2015-05-04 19:17:21 +02:00
eval0proc.ic move to storage/innobase 2015-05-04 19:17:21 +02:00
fil0crypt.h MDEV-9559: Server without encryption configs crashes if selecting from an implicitly encrypted table 2016-02-17 12:32:07 +02:00
fil0crypt.ic Add encryption key id to the API as a distinct concept 2015-04-09 19:35:40 +02:00
fil0fil.h Merge branch '10.0' into 10.1 2015-12-21 21:24:22 +01:00
fil0fil.ic compiler warnings 2016-01-27 16:40:15 +01:00
fil0pagecompress.h MDEV-8250: InnoDB: Page compressed tables are not compressed and compressed+encrypted tables cause crash 2015-06-04 09:47:06 +03:00
fsp0fsp.h move to storage/innobase 2015-05-04 19:17:21 +02:00
fsp0fsp.ic move to storage/innobase 2015-05-04 19:17:21 +02:00
fsp0pagecompress.h Merged from 10.0-FusionIO: 2015-02-19 17:42:18 +02:00
fsp0pagecompress.ic MDEV-8770: Incorrect error message when importing page compressed tablespace 2015-09-22 07:35:00 +03:00
fsp0types.h MDEV-9040: 10.1.8 fails after upgrade from 10.0.21 2015-11-05 10:30:48 +02:00
fts0ast.h move to storage/innobase 2015-05-04 19:17:21 +02:00
fts0blex.h move to storage/innobase 2015-05-04 19:17:21 +02:00
fts0fts.h 5.6.26 2015-08-03 13:03:47 +02:00
fts0opt.h move to storage/innobase 2015-05-04 19:17:21 +02:00
fts0pars.h move to storage/innobase 2015-05-04 19:17:21 +02:00
fts0priv.h move to storage/innobase 2015-05-04 19:17:21 +02:00
fts0priv.ic move to storage/innobase 2015-05-04 19:17:21 +02:00
fts0tlex.h move to storage/innobase 2015-05-04 19:17:21 +02:00
fts0types.h move to storage/innobase 2015-05-04 19:17:21 +02:00
fts0types.ic move to storage/innobase 2015-05-04 19:17:21 +02:00
fts0vlc.ic move to storage/innobase 2015-05-04 19:17:21 +02:00
fut0fut.h move to storage/innobase 2015-05-04 19:17:21 +02:00
fut0fut.ic move to storage/innobase 2015-05-04 19:17:21 +02:00
fut0lst.h move to storage/innobase 2015-05-04 19:17:21 +02:00
fut0lst.ic move to storage/innobase 2015-05-04 19:17:21 +02:00
ha0ha.h move to storage/innobase 2015-05-04 19:17:21 +02:00
ha0ha.ic move to storage/innobase 2015-05-04 19:17:21 +02:00
ha0storage.h move to storage/innobase 2015-05-04 19:17:21 +02:00
ha0storage.ic move to storage/innobase 2015-05-04 19:17:21 +02:00
ha_prototypes.h Merge branch '10.0' into 10.1 2016-02-23 21:35:05 +01:00
handler0alter.h move to storage/innobase 2015-05-04 19:17:21 +02:00
hash0hash.h move to storage/innobase 2015-05-04 19:17:21 +02:00
hash0hash.ic move to storage/innobase 2015-05-04 19:17:21 +02:00
ibuf0ibuf.h MDEV-9559: Server without encryption configs crashes if selecting from an implicitly encrypted table 2016-02-17 12:32:07 +02:00
ibuf0ibuf.ic 5.6.27 2015-10-09 17:21:46 +02:00
ibuf0types.h move to storage/innobase 2015-05-04 19:17:21 +02:00
lock0iter.h move to storage/innobase 2015-05-04 19:17:21 +02:00
lock0lock.h Merge branch 'github/10.0-galera' into 10.1 2015-12-22 10:32:33 +01:00
lock0lock.ic move to storage/innobase 2015-05-04 19:17:21 +02:00
lock0priv.h move to storage/innobase 2015-05-04 19:17:21 +02:00
lock0priv.ic move to storage/innobase 2015-05-04 19:17:21 +02:00
lock0types.h move to storage/innobase 2015-05-04 19:17:21 +02:00
log0crypt.h MDEV-8410: Changing file-key-management to example-key-management causes crash and no real error 2015-08-08 09:56:07 +03:00
log0log.h MDEV-8041: InnoDB redo log encryption 2015-05-09 11:13:00 +03:00
log0log.ic move to storage/innobase 2015-05-04 19:17:21 +02:00
log0recv.h MDEV-9422: Checksum errors on restart when killing busy instance that uses encrypted XtraDB tables 2016-03-18 07:58:04 +02:00
log0recv.ic move to storage/innobase 2015-05-04 19:17:21 +02:00
mach0data.h move to storage/innobase 2015-05-04 19:17:21 +02:00
mach0data.ic move to storage/innobase 2015-05-04 19:17:21 +02:00
mem0dbg.h move to storage/innobase 2015-05-04 19:17:21 +02:00
mem0dbg.ic move to storage/innobase 2015-05-04 19:17:21 +02:00
mem0mem.h move to storage/innobase 2015-05-04 19:17:21 +02:00
mem0mem.ic move to storage/innobase 2015-05-04 19:17:21 +02:00
mem0pool.h move to storage/innobase 2015-05-04 19:17:21 +02:00
mem0pool.ic move to storage/innobase 2015-05-04 19:17:21 +02:00
mtr0log.h move to storage/innobase 2015-05-04 19:17:21 +02:00
mtr0log.ic move to storage/innobase 2015-05-04 19:17:21 +02:00
mtr0mtr.h move to storage/innobase 2015-05-04 19:17:21 +02:00
mtr0mtr.ic move to storage/innobase 2015-05-04 19:17:21 +02:00
mtr0types.h move to storage/innobase 2015-05-04 19:17:21 +02:00
os0file.h Merge branch '10.0' into 10.1 2016-02-23 21:35:05 +01:00
os0file.ic MDEV-8901: InnoDB: Punch hole is incorrecty done also to log files causing assertion and database corruption 2015-10-06 15:40:26 +03:00
os0once.h move to storage/innobase 2015-05-04 19:17:21 +02:00
os0proc.h move to storage/innobase 2015-05-04 19:17:21 +02:00
os0proc.ic move to storage/innobase 2015-05-04 19:17:21 +02:00
os0sync.h MDEV-9128 - Compiling on IBM System Z fails 2015-12-29 14:24:53 +04:00
os0sync.ic move to storage/innobase 2015-05-04 19:17:21 +02:00
os0thread.h move to storage/innobase 2015-05-04 19:17:21 +02:00
os0thread.ic move to storage/innobase 2015-05-04 19:17:21 +02:00
page0cur.h move to storage/innobase 2015-05-04 19:17:21 +02:00
page0cur.ic MDEV-8588: Assertion failure in file ha_innodb.cc line 21140 if at least one encrypted table exists and encryption service is not available 2015-09-04 20:19:45 +03:00
page0page.h Merge tag 'mariadb-10.0.20' into 10.1 2015-06-27 20:35:26 +02:00
page0page.ic move to storage/innobase 2015-05-04 19:17:21 +02:00
page0types.h move to storage/innobase 2015-05-04 19:17:21 +02:00
page0zip.h Fix innochecksum build failure. 2015-06-16 14:55:21 +03:00
page0zip.ic move to storage/innobase 2015-05-04 19:17:21 +02:00
pars0grm.h move to storage/innobase 2015-05-04 19:17:21 +02:00
pars0opt.h move to storage/innobase 2015-05-04 19:17:21 +02:00
pars0opt.ic move to storage/innobase 2015-05-04 19:17:21 +02:00
pars0pars.h move to storage/innobase 2015-05-04 19:17:21 +02:00
pars0pars.ic move to storage/innobase 2015-05-04 19:17:21 +02:00
pars0sym.h move to storage/innobase 2015-05-04 19:17:21 +02:00
pars0sym.ic move to storage/innobase 2015-05-04 19:17:21 +02:00
pars0types.h move to storage/innobase 2015-05-04 19:17:21 +02:00
que0que.h move to storage/innobase 2015-05-04 19:17:21 +02:00
que0que.ic move to storage/innobase 2015-05-04 19:17:21 +02:00
que0types.h move to storage/innobase 2015-05-04 19:17:21 +02:00
read0read.h move to storage/innobase 2015-05-04 19:17:21 +02:00
read0read.ic move to storage/innobase 2015-05-04 19:17:21 +02:00
read0types.h move to storage/innobase 2015-05-04 19:17:21 +02:00
rem0cmp.h move to storage/innobase 2015-05-04 19:17:21 +02:00
rem0cmp.ic move to storage/innobase 2015-05-04 19:17:21 +02:00
rem0rec.h MDEV-9040: 10.1.8 fails after upgrade from 10.0.21 2015-11-05 10:30:48 +02:00
rem0rec.ic move to storage/innobase 2015-05-04 19:17:21 +02:00
rem0types.h move to storage/innobase 2015-05-04 19:17:21 +02:00
row0ext.h move to storage/innobase 2015-05-04 19:17:21 +02:00
row0ext.ic move to storage/innobase 2015-05-04 19:17:21 +02:00
row0ftsort.h MDEV-8708: InnoDB temp file encryption 2015-09-08 08:38:12 +03:00
row0import.h move to storage/innobase 2015-05-04 19:17:21 +02:00
row0import.ic move to storage/innobase 2015-05-04 19:17:21 +02:00
row0ins.h move to storage/innobase 2015-05-04 19:17:21 +02:00
row0ins.ic move to storage/innobase 2015-05-04 19:17:21 +02:00
row0log.h Merge branch '10.0' into 10.1 2016-02-23 21:35:05 +01:00
row0log.ic move to storage/innobase 2015-05-04 19:17:21 +02:00
row0merge.h Merge branch '10.0' into 10.1 2016-02-23 21:35:05 +01:00
row0mysql.h MDEV-8589: Non-default ENCRYPTION_KEY_ID is ignored upon reading a table 2015-08-14 16:25:18 +03:00
row0mysql.ic move to storage/innobase 2015-05-04 19:17:21 +02:00
row0purge.h 5.6.26 2015-08-03 13:03:47 +02:00
row0purge.ic move to storage/innobase 2015-05-04 19:17:21 +02:00
row0quiesce.h move to storage/innobase 2015-05-04 19:17:21 +02:00
row0quiesce.ic move to storage/innobase 2015-05-04 19:17:21 +02:00
row0row.h move to storage/innobase 2015-05-04 19:17:21 +02:00
row0row.ic move to storage/innobase 2015-05-04 19:17:21 +02:00
row0sel.h move to storage/innobase 2015-05-04 19:17:21 +02:00
row0sel.ic move to storage/innobase 2015-05-04 19:17:21 +02:00
row0types.h move to storage/innobase 2015-05-04 19:17:21 +02:00
row0uins.h move to storage/innobase 2015-05-04 19:17:21 +02:00
row0uins.ic move to storage/innobase 2015-05-04 19:17:21 +02:00
row0umod.h move to storage/innobase 2015-05-04 19:17:21 +02:00
row0umod.ic move to storage/innobase 2015-05-04 19:17:21 +02:00
row0undo.h move to storage/innobase 2015-05-04 19:17:21 +02:00
row0undo.ic move to storage/innobase 2015-05-04 19:17:21 +02:00
row0upd.h move to storage/innobase 2015-05-04 19:17:21 +02:00
row0upd.ic move to storage/innobase 2015-05-04 19:17:21 +02:00
row0vers.h move to storage/innobase 2015-05-04 19:17:21 +02:00
row0vers.ic move to storage/innobase 2015-05-04 19:17:21 +02:00
srv0conc.h move to storage/innobase 2015-05-04 19:17:21 +02:00
srv0mon.h Merge branch '10.0' into 10.1 2016-02-23 21:35:05 +01:00
srv0mon.ic move to storage/innobase 2015-05-04 19:17:21 +02:00
srv0srv.h Merge branch '10.0' into 10.1 2016-02-23 21:35:05 +01:00
srv0srv.ic move to storage/innobase 2015-05-04 19:17:21 +02:00
srv0start.h move to storage/innobase 2015-05-04 19:17:21 +02:00
sync0arr.h move to storage/innobase 2015-05-04 19:17:21 +02:00
sync0arr.ic move to storage/innobase 2015-05-04 19:17:21 +02:00
sync0rw.h MDEV-8324 - MariaDB fails to build with performance schema disabled 2015-06-19 15:06:33 +04:00
sync0rw.ic move to storage/innobase 2015-05-04 19:17:21 +02:00
sync0sync.h Merge branch '10.0' into 10.1 2015-10-12 00:37:58 +02:00
sync0sync.ic Merge tag 'mariadb-10.0.22' into 10.0-galera 2015-10-31 18:07:02 -04:00
sync0types.h move to storage/innobase 2015-05-04 19:17:21 +02:00
trx0i_s.h move to storage/innobase 2015-05-04 19:17:21 +02:00
trx0purge.h move to storage/innobase 2015-05-04 19:17:21 +02:00
trx0purge.ic move to storage/innobase 2015-05-04 19:17:21 +02:00
trx0rec.h move to storage/innobase 2015-05-04 19:17:21 +02:00
trx0rec.ic move to storage/innobase 2015-05-04 19:17:21 +02:00
trx0roll.h move to storage/innobase 2015-05-04 19:17:21 +02:00
trx0roll.ic move to storage/innobase 2015-05-04 19:17:21 +02:00
trx0rseg.h move to storage/innobase 2015-05-04 19:17:21 +02:00
trx0rseg.ic move to storage/innobase 2015-05-04 19:17:21 +02:00
trx0sys.h move to storage/innobase 2015-05-04 19:17:21 +02:00
trx0sys.ic move to storage/innobase 2015-05-04 19:17:21 +02:00
trx0trx.h Merge branch 'github/10.0-galera' into 10.1 2015-12-22 10:32:33 +01:00
trx0trx.ic move to storage/innobase 2015-05-04 19:17:21 +02:00
trx0types.h move to storage/innobase 2015-05-04 19:17:21 +02:00
trx0undo.h move to storage/innobase 2015-05-04 19:17:21 +02:00
trx0undo.ic move to storage/innobase 2015-05-04 19:17:21 +02:00
trx0xa.h move to storage/innobase 2015-05-04 19:17:21 +02:00
univ.i Merge branch '10.0' into 10.1 2016-02-23 21:35:05 +01:00
usr0sess.h move to storage/innobase 2015-05-04 19:17:21 +02:00
usr0sess.ic move to storage/innobase 2015-05-04 19:17:21 +02:00
usr0types.h move to storage/innobase 2015-05-04 19:17:21 +02:00
ut0bh.h move to storage/innobase 2015-05-04 19:17:21 +02:00
ut0bh.ic move to storage/innobase 2015-05-04 19:17:21 +02:00
ut0byte.h move to storage/innobase 2015-05-04 19:17:21 +02:00
ut0byte.ic move to storage/innobase 2015-05-04 19:17:21 +02:00
ut0counter.h move to storage/innobase 2015-05-04 19:17:21 +02:00
ut0crc32.h Use POWER8 accelerated crc32 2015-12-15 15:11:17 +11:00
ut0dbg.h move to storage/innobase 2015-05-04 19:17:21 +02:00
ut0list.h move to storage/innobase 2015-05-04 19:17:21 +02:00
ut0list.ic move to storage/innobase 2015-05-04 19:17:21 +02:00
ut0lst.h move to storage/innobase 2015-05-04 19:17:21 +02:00
ut0mem.h move to storage/innobase 2015-05-04 19:17:21 +02:00
ut0mem.ic move to storage/innobase 2015-05-04 19:17:21 +02:00
ut0rbt.h move to storage/innobase 2015-05-04 19:17:21 +02:00
ut0rnd.h move to storage/innobase 2015-05-04 19:17:21 +02:00
ut0rnd.ic move to storage/innobase 2015-05-04 19:17:21 +02:00
ut0sort.h move to storage/innobase 2015-05-04 19:17:21 +02:00
ut0timer.h MDEV-5834: Merge Kakao Defragmentation implementation to MariaDB 10.1 2014-08-06 15:28:58 +03:00
ut0timer.ic MDEV-5834: Merge Kakao Defragmentation implementation to MariaDB 10.1 2014-08-06 15:28:58 +03:00
ut0ut.h Merge branch '10.0' into 10.1 2015-12-21 21:24:22 +01:00
ut0ut.ic move to storage/innobase 2015-05-04 19:17:21 +02:00
ut0vec.h move to storage/innobase 2015-05-04 19:17:21 +02:00
ut0vec.ic move to storage/innobase 2015-05-04 19:17:21 +02:00
ut0wqueue.h move to storage/innobase 2015-05-04 19:17:21 +02:00