mariadb/storage/innobase/include
Marko Mäkelä 82187a1221 MDEV-21429 TRUNCATE and OPTIMIZE are being refused due to "row size too large"
By default (innodb_strict_mode=ON), InnoDB attempts to guarantee
at DDL time that any INSERT to the table can succeed.
MDEV-19292 recently revised the "row size too large" check in InnoDB.
The check still is somewhat inaccurate;
that should be addressed in MDEV-20194.

Note: If a table contains multiple long string columns so that each column
is part of a column prefix index, then an UPDATE that attempts to modify
all those columns at once may fail, because the undo log record might
not fit in a single undo log page (of innodb_page_size). In the worst case,
the undo log record would grow by about 3KiB of for each updated column.

The DDL-time check (since the InnoDB Plugin for MySQL 5.1) is optional
in the sense that when the maximum B-tree record size or undo log
record size would be exceeded, the DML operation will fail and the
transaction will be properly rolled back.

create_table_info_t::row_size_is_acceptable(): Add the parameter
'bool strict' so that innodb_strict_mode=ON can be overridden during
TRUNCATE, OPTIMIZE and ALTER TABLE...FORCE (when the storage format
is not changing).

create_table_info_t::create_table(): Perform a sloppy check for
TRUNCATE TABLE (create_fk=false).

prepare_inplace_alter_table_dict(): Perform a sloppy check for
simple operations.

trx_is_strict(): Remove. The function became unused in
commit 98694ab0cb (MDEV-20949).
2020-01-07 11:02:12 +02:00
..
btr0btr.h MDEV-20950 Reduce size of record offsets 2019-12-13 00:26:50 +07:00
btr0btr.ic MDEV-20950 Reduce size of record offsets 2019-12-13 00:26:50 +07:00
btr0bulk.h MDEV-20950 Reduce size of record offsets 2019-12-13 00:26:50 +07:00
btr0cur.h MDEV-20950 Reduce size of record offsets 2019-12-13 00:26:50 +07:00
btr0cur.ic Add page_has_prev(), page_has_next(), page_has_siblings() 2019-10-09 08:29:26 +03:00
btr0defragment.h Merge 10.1 into 10.2 2019-05-13 17:54:04 +03:00
btr0pcur.h Remove UT_NOT_USED 2019-05-20 17:09:50 +03:00
btr0pcur.ic Add page_has_prev(), page_has_next(), page_has_siblings() 2019-10-09 08:29:26 +03:00
btr0scrub.h
btr0sea.h Merge 10.1 into 10.2 2019-05-13 17:54:04 +03:00
btr0sea.ic Merge 10.1 into 10.2 2019-05-13 17:54:04 +03:00
btr0types.h Merge 10.1 into 10.2 2019-05-13 17:54:04 +03:00
buf0buddy.h Merge 10.1 into 10.2 2019-05-13 17:54:04 +03:00
buf0buddy.ic Merge 10.1 into 10.2 2019-05-13 17:54:04 +03:00
buf0buf.h Merge 10.1 into 10.2 2019-12-23 07:14:51 +02:00
buf0buf.ic MDEV-19176 Reduce the memory usage during recovery 2019-12-23 15:56:57 +05:30
buf0checksum.h Merge 10.1 into 10.2 2019-05-13 17:54:04 +03:00
buf0dblwr.h Merge 10.1 into 10.2 2019-05-13 17:54:04 +03:00
buf0dump.h Merge 10.1 into 10.2 2019-05-13 17:54:04 +03:00
buf0flu.h Merge 10.1 into 10.2 2019-10-09 08:30:23 +03:00
buf0flu.ic Merge 10.1 into 10.2 2019-05-13 17:54:04 +03:00
buf0lru.h MDEV-19435 buf_fix_count > 0 for corrupted page when it exits the LRU list 2019-06-13 16:13:51 +03:00
buf0mtflu.h
buf0rea.h Merge 10.1 into 10.2 2019-05-13 17:54:04 +03:00
buf0types.h MDEV-19435 buf_fix_count > 0 for corrupted page when it exits the LRU list 2019-06-13 16:13:51 +03:00
data0data.h MDEV-20917 InnoDB is passing NULL to nonnull function parameters 2019-10-29 17:26:28 +02:00
data0data.ic MDEV-20917 InnoDB is passing NULL to nonnull function parameters 2019-10-29 17:26:28 +02:00
data0type.h Merge 10.1 into 10.2 2019-05-13 17:54:04 +03:00
data0type.ic Merge 10.1 into 10.2 2019-08-12 18:25:35 +03:00
data0types.h
db0err.h Merge 10.1 into 10.2 2019-05-13 17:54:04 +03:00
dict0boot.h Merge 10.1 into 10.2 2019-05-13 17:54:04 +03:00
dict0boot.ic Merge 10.1 into 10.2 2019-05-13 17:54:04 +03:00
dict0crea.h Cleanup: Remove dict_delete_tablespace_and_datafiles() 2019-12-27 11:23:28 +02:00
dict0crea.ic Merge 10.1 into 10.2 2019-05-13 17:54:04 +03:00
dict0defrag_bg.h Merge 10.1 into 10.2 2019-05-13 17:54:04 +03:00
dict0dict.h MDEV-20949 Stop issuing 'row size' error on DML 2019-11-13 22:00:55 +07:00
dict0dict.ic MDEV-17005 ASAN heap-use-after-free in innobase_get_computed_value 2019-07-22 20:29:42 +10:00
dict0load.h dict_load_table(): Remove constant parameter cached=true 2019-09-27 14:29:22 +03:00
dict0mem.h MDEV-20950 Reduce size of record offsets 2019-12-13 00:26:50 +07:00
dict0mem.ic Merge 10.1 into 10.2 2019-05-13 17:54:04 +03:00
dict0pagecompress.h Merge 10.1 into 10.2 2019-05-13 17:54:04 +03:00
dict0pagecompress.ic Merge 10.1 into 10.2 2019-05-13 17:54:04 +03:00
dict0priv.h Merge 10.1 into 10.2 2019-05-13 17:54:04 +03:00
dict0priv.ic dict_load_table(): Remove constant parameter cached=true 2019-09-27 14:29:22 +03:00
dict0stats.h Merge 10.1 into 10.2 2019-07-25 12:14:27 +03:00
dict0stats.ic Merge 10.1 into 10.2 2019-05-13 17:54:04 +03:00
dict0stats_bg.h Merge 10.1 into 10.2 2019-05-13 17:54:04 +03:00
dict0types.h MDEV-20864 Introduce debug option innodb_change_buffer_dump 2019-10-19 15:16:47 +03:00
dyn0buf.h Lets add another intrusive double linked list! 2020-01-04 13:39:14 +07:00
dyn0types.h Merge 10.1 into 10.2 2019-05-13 17:54:04 +03:00
eval0eval.h Merge 10.1 into 10.2 2019-05-13 17:54:04 +03:00
eval0eval.ic Merge 10.1 into 10.2 2019-05-13 17:54:04 +03:00
eval0proc.h Merge 10.1 into 10.2 2019-05-13 17:54:04 +03:00
eval0proc.ic Merge 10.1 into 10.2 2019-05-13 17:54:04 +03:00
fil0crypt.h MDEV-19335 Remove buf_page_t::encrypted 2019-10-09 13:13:12 +03:00
fil0crypt.ic Merge 10.1 into 10.2 2019-05-13 17:54:04 +03:00
fil0fil.h Lets add another intrusive double linked list! 2020-01-04 13:39:14 +07:00
fil0fil.ic Merge 10.1 into 10.2 2019-05-13 17:54:04 +03:00
fil0pagecompress.h Merge 10.1 into 10.2 2019-05-13 17:54:04 +03:00
fsp0file.h Merge 10.1 into 10.2 2019-05-13 17:54:04 +03:00
fsp0fsp.h Merge 10.1 into 10.2 2019-05-13 17:54:04 +03:00
fsp0fsp.ic Merge 10.1 into 10.2 2019-05-13 17:54:04 +03:00
fsp0pagecompress.h Merge 10.1 into 10.2 2019-05-13 17:54:04 +03:00
fsp0pagecompress.ic Merge 10.1 into 10.2 2019-05-13 17:54:04 +03:00
fsp0space.h Merge 10.1 into 10.2 2019-05-13 17:54:04 +03:00
fsp0sysspace.h Merge 10.1 into 10.2 2019-05-13 17:54:04 +03:00
fsp0types.h Merge 10.1 into 10.2 2019-05-13 17:54:04 +03:00
fts0ast.h Merge 10.1 into 10.2 2019-05-13 17:54:04 +03:00
fts0blex.h
fts0fts.h Merge 10.1 to 10.2 2019-10-25 17:33:39 +03:00
fts0opt.h Merge 10.1 to 10.2 2019-10-25 17:33:39 +03:00
fts0pars.h
fts0plugin.h Merge 10.1 into 10.2 2019-05-13 17:54:04 +03:00
fts0priv.h Merge 10.1 into 10.2 2019-09-18 16:24:48 +03:00
fts0priv.ic Merge 10.1 into 10.2 2019-05-13 17:54:04 +03:00
fts0tlex.h
fts0tokenize.h Merge 10.1 into 10.2 2019-05-13 17:54:04 +03:00
fts0types.h Merge 10.1 into 10.2 2019-07-25 12:14:27 +03:00
fts0types.ic Merge 10.1 into 10.2 2019-05-13 17:54:04 +03:00
fts0vlc.ic
fut0fut.h Merge 10.1 into 10.2 2019-05-13 17:54:04 +03:00
fut0fut.ic Merge 10.1 into 10.2 2019-05-13 17:54:04 +03:00
fut0lst.h Merge 10.1 into 10.2 2019-05-13 17:54:04 +03:00
fut0lst.ic Merge 10.1 into 10.2 2019-05-13 17:54:04 +03:00
gis0geo.h InnoDB: Remove unused get_wkb_of_default_point() 2019-12-03 07:45:04 +02:00
gis0rtree.h MDEV-20950 Reduce size of record offsets 2019-12-13 00:26:50 +07:00
gis0rtree.ic MDEV-20950 Reduce size of record offsets 2019-12-13 00:26:50 +07:00
gis0type.h Merge 10.1 into 10.2 2019-05-13 17:54:04 +03:00
ha0ha.h Merge 10.1 into 10.2 2019-05-13 17:54:04 +03:00
ha0ha.ic Merge 10.1 into 10.2 2019-05-13 17:54:04 +03:00
ha0storage.h Merge 10.1 into 10.2 2019-05-13 17:54:04 +03:00
ha0storage.ic Merge 10.1 into 10.2 2019-05-13 17:54:04 +03:00
ha_prototypes.h MDEV-17614: After-merge fix 2019-08-12 18:50:54 +03:00
handler0alter.h MDEV-20950 Reduce size of record offsets 2019-12-13 00:26:50 +07:00
hash0hash.h Merge 10.1 into 10.2 2019-05-13 17:54:04 +03:00
hash0hash.ic Merge 10.1 into 10.2 2019-05-13 17:54:04 +03:00
ib0mutex.h MDEV-14482 - Cache line contention on ut_rnd_interval() 2019-12-10 17:01:36 +02:00
ibuf0ibuf.h MDEV-21069 Crash on DROP TABLE if the data file is corrupted 2019-11-19 00:07:06 +02:00
ibuf0ibuf.ic Merge 10.1 into 10.2 2019-05-13 17:54:04 +03:00
ibuf0types.h
lock0iter.h Merge 10.1 into 10.2 2019-05-13 17:54:04 +03:00
lock0lock.h MDEV-20950 Reduce size of record offsets 2019-12-13 00:26:50 +07:00
lock0lock.ic Merge 10.1 into 10.2 2019-05-13 17:54:04 +03:00
lock0prdt.h Merge 10.1 into 10.2 2019-05-13 17:54:04 +03:00
lock0priv.h MDEV-20950 Reduce size of record offsets 2019-12-13 00:26:50 +07:00
lock0priv.ic MDEV-20950 Reduce size of record offsets 2019-12-13 00:26:50 +07:00
lock0types.h Merge 10.1 into 10.2 2019-07-25 12:14:27 +03:00
log0crypt.h MDEV-17228 Encrypted temporary tables are not encrypted 2019-06-28 19:07:59 +05:30
log0log.h Rename log_make_checkpoint_at() to log_make_checkpoint() 2019-10-09 18:47:14 +03:00
log0log.ic MDEV-20060: Failing assertion: srv_log_file_size <= 512ULL << 30 while preparing backup 2019-08-07 17:26:44 +03:00
log0recv.h MDEV-19176 Reduce the memory usage during recovery 2019-12-23 15:51:02 +05:30
log0types.h Merge 10.1 into 10.2 2019-05-13 17:54:04 +03:00
mach0data.h Merge 10.1 into 10.2 2019-05-13 17:54:04 +03:00
mach0data.ic Merge 10.1 into 10.2 2019-05-13 17:54:04 +03:00
mem0mem.h MDEV-20917 InnoDB is passing NULL to nonnull function parameters 2019-10-29 17:26:28 +02:00
mem0mem.ic MDEV-19471 Add ASAN-poisoned redzones for mem_heap_t 2019-07-19 13:28:03 +03:00
mtr0log.h Merge 10.1 into 10.2 2019-05-13 17:54:04 +03:00
mtr0log.ic Merge 10.1 into 10.2 2019-05-13 17:54:04 +03:00
mtr0mtr.h MDEV-12353 preparation: Clean up mtr_t 2019-11-12 15:46:57 +02:00
mtr0mtr.ic MDEV-12353 preparation: Clean up mtr_t 2019-11-12 15:46:57 +02:00
mtr0types.h MDEV-12353 preparation: Clean up mtr_t 2019-11-12 15:46:57 +02:00
os0api.h Merge 10.1 into 10.2 2019-05-13 17:54:04 +03:00
os0event.h Merge 10.1 into 10.2 2019-05-13 17:54:04 +03:00
os0file.h MDEV-19725 Incorrect error handling in ALTER TABLE 2019-06-10 18:15:25 +03:00
os0file.ic MDEV-19725 Incorrect error handling in ALTER TABLE 2019-06-10 18:15:25 +03:00
os0once.h Merge 10.1 into 10.2 2019-05-13 17:54:04 +03:00
os0proc.h Merge 10.1 into 10.2 2019-05-13 17:54:04 +03:00
os0thread.h Merge 10.1 into 10.2 2019-05-13 17:54:04 +03:00
page0cur.h MDEV-20950 Reduce size of record offsets 2019-12-13 00:26:50 +07:00
page0cur.ic MDEV-20950 Reduce size of record offsets 2019-12-13 00:26:50 +07:00
page0page.h MDEV-20950 Reduce size of record offsets 2019-12-13 00:26:50 +07:00
page0page.ic MDEV-21371 Assertion failure in page_rec_get_next_low() during innodb_gis.rtree_compress 2019-12-20 19:21:37 +02:00
page0size.h Merge 10.1 into 10.2 2019-05-13 17:54:04 +03:00
page0types.h MDEV-20950 Reduce size of record offsets 2019-12-13 00:26:50 +07:00
page0zip.h MDEV-20950 Reduce size of record offsets 2019-12-13 00:26:50 +07:00
page0zip.ic MDEV-20949 Stop issuing 'row size' error on DML 2019-11-13 22:00:55 +07:00
pars0grm.h MDEV-21254 Remove unused keywords from the InnoDB SQL parser 2019-12-09 12:32:04 +02:00
pars0opt.h Merge 10.1 into 10.2 2019-05-13 17:54:04 +03:00
pars0pars.h MDEV-21254 Remove unused keywords from the InnoDB SQL parser 2019-12-09 12:32:04 +02:00
pars0sym.h Merge 10.1 into 10.2 2019-05-13 17:54:04 +03:00
pars0types.h
que0que.h Fix CMAKE_BUILD_TYPE=Debug 2019-10-11 18:36:08 +03:00
que0que.ic Merge 10.1 into 10.2 2019-05-13 17:54:04 +03:00
que0types.h Merge 10.1 into 10.2 2019-05-13 17:54:04 +03:00
read0read.h MVCC::view_close(): Correct comments 2019-09-04 09:42:38 +03:00
read0types.h Merge 10.1 into 10.2 2019-05-13 17:54:04 +03:00
rem0cmp.h MDEV-20950 Reduce size of record offsets 2019-12-13 00:26:50 +07:00
rem0cmp.ic MDEV-20950 Reduce size of record offsets 2019-12-13 00:26:50 +07:00
rem0rec.h MDEV-20950: Fix 32-bit Windows build 2019-12-21 21:36:25 +02:00
rem0rec.ic MDEV-20950: Fix 32-bit Windows build 2019-12-21 21:36:25 +02:00
rem0types.h MDEV-20950 Reduce size of record offsets 2019-12-13 00:26:50 +07:00
row0ext.h Merge 10.1 into 10.2 2019-05-13 17:54:04 +03:00
row0ext.ic
row0ftsort.h MDEV-20950 Reduce size of record offsets 2019-12-13 00:26:50 +07:00
row0import.h Merge 10.1 into 10.2 2019-05-13 17:54:04 +03:00
row0ins.h MDEV-17614 post-fix: Remove dead dup_chk_only=true code. 2019-09-23 08:29:39 +03:00
row0log.h MDEV-20950 Reduce size of record offsets 2019-12-13 00:26:50 +07:00
row0log.ic Merge 10.1 into 10.2 2019-05-13 17:54:04 +03:00
row0merge.h MDEV-20950 Reduce size of record offsets 2019-12-13 00:26:50 +07:00
row0mysql.h MDEV-20102 Phantom InnoDB table remains after interrupted CREATE...SELECT 2019-07-22 14:55:46 +03:00
row0purge.h Merge 10.1 into 10.2 2019-05-13 17:54:04 +03:00
row0quiesce.h Merge 10.1 into 10.2 2019-05-13 17:54:04 +03:00
row0row.h MDEV-20950 Reduce size of record offsets 2019-12-13 00:26:50 +07:00
row0row.ic MDEV-20950 Reduce size of record offsets 2019-12-13 00:26:50 +07:00
row0sel.h Merge 10.1 into 10.2 2019-05-13 17:54:04 +03:00
row0sel.ic Merge 10.1 into 10.2 2019-05-13 17:54:04 +03:00
row0trunc.h Merge 10.1 into 10.2 2019-05-13 17:54:04 +03:00
row0types.h Merge 10.1 into 10.2 2019-05-13 17:54:04 +03:00
row0uins.h Merge 10.1 into 10.2 2019-05-13 17:54:04 +03:00
row0umod.h Merge 10.1 into 10.2 2019-05-13 17:54:04 +03:00
row0undo.h Merge 10.1 into 10.2 2019-05-13 17:54:04 +03:00
row0upd.h MDEV-20950 Reduce size of record offsets 2019-12-13 00:26:50 +07:00
row0upd.ic MDEV-20950 Reduce size of record offsets 2019-12-13 00:26:50 +07:00
row0vers.h MDEV-20950 Reduce size of record offsets 2019-12-13 00:26:50 +07:00
span.h fix build (-Werror + -Wignored-qualifiers) 2019-08-06 12:56:16 +03:00
srv0conc.h Merge 10.1 into 10.2 2019-05-13 17:54:04 +03:00
srv0mon.h Merge 10.1 into 10.2 2019-07-25 12:14:27 +03:00
srv0mon.ic Merge 10.1 into 10.2 2019-05-13 17:54:04 +03:00
srv0srv.h Fix -std=c++98 -Wzero-length-array 2019-10-11 21:26:16 +03:00
srv0start.h Merge 10.1 into 10.2 2019-05-13 17:54:04 +03:00
sync0arr.h Merge 10.1 into 10.2 2019-05-13 17:54:04 +03:00
sync0arr.ic Merge 10.1 into 10.2 2019-05-13 17:54:04 +03:00
sync0debug.h Merge 10.1 into 10.2 2019-05-13 17:54:04 +03:00
sync0policy.h Merge 10.1 into 10.2 2019-05-13 17:54:04 +03:00
sync0policy.ic Merge 10.1 into 10.2 2019-05-13 17:54:04 +03:00
sync0rw.h Remove unnecessary pointer indirection for rw_lock_t 2019-05-13 18:46:12 +03:00
sync0rw.ic Merge 10.1 into 10.2 2019-05-13 17:54:04 +03:00
sync0sync.h Merge 10.1 into 10.2 2019-05-13 17:54:04 +03:00
sync0types.h Merge 10.1 into 10.2 2019-05-13 17:54:04 +03:00
trx0i_s.h Merge 10.1 into 10.2 2019-07-25 12:14:27 +03:00
trx0purge.h add innodb_debug_sync var to support DEBUG_SYNC from purge threads 2019-10-11 17:02:39 +10:00
trx0purge.ic Merge 10.1 into 10.2 2019-05-13 17:54:04 +03:00
trx0rec.h MDEV-20950 Reduce size of record offsets 2019-12-13 00:26:50 +07:00
trx0rec.ic Merge 10.1 into 10.2 2019-05-13 17:54:04 +03:00
trx0roll.h Merge 10.1 into 10.2 2019-05-13 17:54:04 +03:00
trx0roll.ic Merge 10.1 into 10.2 2019-05-13 17:54:04 +03:00
trx0rseg.h Merge 10.1 into 10.2 2019-05-13 17:54:04 +03:00
trx0rseg.ic Merge 10.1 into 10.2 2019-05-13 17:54:04 +03:00
trx0sys.h MDEV-15326: InnoDB: Failing assertion: !other_lock 2019-09-04 09:42:38 +03:00
trx0sys.ic MDEV-15326: Backport trx_t::is_referenced() 2019-09-04 09:42:38 +03:00
trx0trx.h MDEV-21429 TRUNCATE and OPTIMIZE are being refused due to "row size too large" 2020-01-07 11:02:12 +02:00
trx0trx.ic MDEV-15326: Backport trx_t::is_referenced() 2019-09-04 09:42:38 +03:00
trx0types.h Merge 10.1 into 10.2 2019-05-13 17:54:04 +03:00
trx0undo.h Merge 10.1 into 10.2 2019-05-13 17:54:04 +03:00
trx0undo.ic Merge 10.1 into 10.2 2019-05-13 17:54:04 +03:00
trx0xa.h
univ.i MDEV-20850 Merge new release of InnoDB 5.7.28 to 10.2 2019-10-17 17:08:58 +03:00
ut0byte.h Merge 10.1 into 10.2 2019-05-13 17:54:04 +03:00
ut0byte.ic Merge 10.1 into 10.2 2019-05-13 17:54:04 +03:00
ut0counter.h Merge 10.1 into 10.2 2019-05-13 17:54:04 +03:00
ut0crc32.h Merge 10.1 into 10.2 2019-05-13 17:54:04 +03:00
ut0dbg.h Remove UT_NOT_USED 2019-05-20 17:09:50 +03:00
ut0list.h Merge 10.1 into 10.2 2019-05-13 17:54:04 +03:00
ut0list.ic Merge 10.1 into 10.2 2019-05-13 17:54:04 +03:00
ut0lst.h Merge 10.1 into 10.2 2019-05-13 17:54:04 +03:00
ut0mem.h Clean up ut_strlcpy(), ut_strlcpy_rev() 2019-10-30 06:42:51 +02:00
ut0mem.ic Merge 10.1 into 10.2 2019-05-13 17:54:04 +03:00
ut0mutex.h Merge 10.1 into 10.2 2019-05-13 17:54:04 +03:00
ut0new.h Merge 10.1 into 10.2 2019-05-13 17:54:04 +03:00
ut0pool.h Merge 10.1 into 10.2 2019-05-13 17:54:04 +03:00
ut0rbt.h Merge 10.1 into 10.2 2019-05-13 17:54:04 +03:00
ut0rnd.h MDEV-21256: Replace the 64-bit LCG with a 32-bit Galois LFSR 2019-12-10 16:59:34 +02:00
ut0rnd.ic MDEV-21256: Simplify ut_rnd_interval() 2019-12-10 16:58:28 +02:00
ut0sort.h Merge 10.1 into 10.2 2019-05-13 17:54:04 +03:00
ut0stage.h Merge 10.1 into 10.2 2019-05-13 17:54:04 +03:00
ut0ut.h Merge 10.1 into 10.2 2019-07-25 12:14:27 +03:00
ut0ut.ic Merge 10.1 into 10.2 2019-05-13 17:54:04 +03:00
ut0vec.h Merge 10.1 into 10.2 2019-05-13 17:54:04 +03:00
ut0vec.ic Merge 10.1 into 10.2 2019-05-13 17:54:04 +03:00
ut0wqueue.h Merge 10.1 to 10.2 2019-10-25 17:33:39 +03:00