mariadb/storage/innobase/include
Jan Lindström f7002c05ae MDEV-8250: InnoDB: Page compressed tables are not compressed and compressed+encrypted tables cause crash
Analysis: Problem is that both encrypted tables and compressed tables use
FIL header offset FIL_PAGE_FILE_FLUSH_LSN_OR_KEY_VERSION to store
required metadata. Furhermore, for only compressed tables currently
code skips compression.

Fixes:
- Only encrypted pages store key_version to FIL header offset FIL_PAGE_FILE_FLUSH_LSN_OR_KEY_VERSION,
  no need to fix
- Only compressed pages store compression algorithm to FIL header offset FIL_PAGE_FILE_FLUSH_LSN_OR_KEY_VERSION,
  no need to fix as they have different page type FIL_PAGE_PAGE_COMPRESSED
- Compressed and encrypted pages now use a new page type FIL_PAGE_PAGE_COMPRESSED_ENCRYPTED and
  key_version is stored on FIL header offset FIL_PAGE_FILE_FLUSH_LSN_OR_KEY_VERSION and compression
  method is stored after FIL header similar way as compressed size, so that first
  FIL_PAGE_COMPRESSED_SIZE is stored followed by FIL_PAGE_COMPRESSION_METHOD
- Fix buf_page_encrypt_before_write function to really compress pages if compression is enabled
- Fix buf_page_decrypt_after_read function to really decompress pages if compression is used
- Small style fixes
2015-06-04 09:47:06 +03:00
..
api0api.h move to storage/innobase 2015-05-04 19:17:21 +02:00
api0misc.h move to storage/innobase 2015-05-04 19:17:21 +02:00
btr0btr.h move to storage/innobase 2015-05-04 19:17:21 +02:00
btr0btr.ic move to storage/innobase 2015-05-04 19:17:21 +02:00
btr0cur.h move to storage/innobase 2015-05-04 19:17:21 +02:00
btr0cur.ic move to storage/innobase 2015-05-04 19:17:21 +02:00
btr0defragment.h MDEV-5834: Merge Kakao Defragmentation implementation to MariaDB 10.1 2014-08-06 15:28:58 +03:00
btr0pcur.h move to storage/innobase 2015-05-04 19:17:21 +02:00
btr0pcur.ic move to storage/innobase 2015-05-04 19:17:21 +02: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-8250: InnoDB: Page compressed tables are not compressed and compressed+encrypted tables cause crash 2015-06-04 09:47:06 +03:00
buf0buf.ic MDEV-8250: InnoDB: Page compressed tables are not compressed and compressed+encrypted tables cause crash 2015-06-04 09:47:06 +03: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 move to storage/innobase 2015-05-04 19:17:21 +02: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 move to storage/innobase 2015-05-04 19:17:21 +02: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 move to storage/innobase 2015-05-04 19:17:21 +02:00
dict0crea.ic move to storage/innobase 2015-05-04 19:17:21 +02:00
dict0dict.h move to storage/innobase 2015-05-04 19:17:21 +02:00
dict0dict.ic move to storage/innobase 2015-05-04 19:17:21 +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 Merge tag 'mariadb-10.0.19' into 10.1 2015-06-01 15:51:25 +02: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 just like tempfiles: use key id 2 for temp Aria tables 2015-06-02 18:53:37 +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 MDEV-8250: InnoDB: Page compressed tables are not compressed and compressed+encrypted tables cause crash 2015-06-04 09:47:06 +03:00
fil0fil.ic MDEV-8250: InnoDB: Page compressed tables are not compressed and compressed+encrypted tables cause crash 2015-06-04 09:47:06 +03: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-8250: InnoDB: Page compressed tables are not compressed and compressed+encrypted tables cause crash 2015-06-04 09:47:06 +03:00
fsp0types.h move to storage/innobase 2015-05-04 19:17:21 +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 move to storage/innobase 2015-05-04 19:17:21 +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 move to storage/innobase 2015-05-04 19:17:21 +02: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 move to storage/innobase 2015-05-04 19:17:21 +02:00
ibuf0ibuf.ic move to storage/innobase 2015-05-04 19:17:21 +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 move to storage/innobase 2015-05-04 19:17:21 +02: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-8041: InnoDB redo log encryption 2015-05-09 11:13:00 +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-8041: InnoDB redo log encryption 2015-05-09 11:13:00 +03: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 move to storage/innobase 2015-05-04 19:17:21 +02:00
os0file.ic move to storage/innobase 2015-05-04 19:17:21 +02: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 move to storage/innobase 2015-05-04 19:17:21 +02: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 move to storage/innobase 2015-05-04 19:17:21 +02:00
page0page.h move to storage/innobase 2015-05-04 19:17:21 +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 move to storage/innobase 2015-05-04 19:17:21 +02: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 move to storage/innobase 2015-05-04 19:17:21 +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 move to storage/innobase 2015-05-04 19:17:21 +02: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 move to storage/innobase 2015-05-04 19:17:21 +02:00
row0log.ic move to storage/innobase 2015-05-04 19:17:21 +02:00
row0merge.h move to storage/innobase 2015-05-04 19:17:21 +02:00
row0mysql.h move to storage/innobase 2015-05-04 19:17:21 +02:00
row0mysql.ic move to storage/innobase 2015-05-04 19:17:21 +02:00
row0purge.h move to storage/innobase 2015-05-04 19:17:21 +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 move to storage/innobase 2015-05-04 19:17:21 +02:00
srv0mon.ic move to storage/innobase 2015-05-04 19:17:21 +02:00
srv0srv.h move to storage/innobase 2015-05-04 19:17:21 +02: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 move to storage/innobase 2015-05-04 19:17:21 +02:00
sync0rw.ic move to storage/innobase 2015-05-04 19:17:21 +02:00
sync0sync.h move to storage/innobase 2015-05-04 19:17:21 +02:00
sync0sync.ic move to storage/innobase 2015-05-04 19:17:21 +02: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 move to storage/innobase 2015-05-04 19:17:21 +02: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 tag 'mariadb-10.0.19' into 10.1 2015-06-01 15:51:25 +02: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 move to storage/innobase 2015-05-04 19:17:21 +02: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 move to storage/innobase 2015-05-04 19:17:21 +02: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