mariadb/storage/innobase/trx
Eugene Kosov f0aa073f2b MDEV-20950 Reduce size of record offsets
offset_t: this is a type which represents one record offset.
It's unsigned short int.

a lot of functions: replace ulint with offset_t

btr_pcur_restore_position_func(),
page_validate(),
row_ins_scan_sec_index_for_duplicate(),
row_upd_clust_rec_by_insert_inherit_func(),
row_vers_impl_x_locked_low(),
trx_undo_prev_version_build():
  allocate record offsets on the stack instead of waiting for rec_get_offsets()
  to allocate it from mem_heap_t. So, reducing  memory allocations.

RECORD_OFFSET, INDEX_OFFSET:
  now it's less convenient to store pointers in offset_t*
  array. One pointer occupies now several offset_t. And those constant are start
  indexes into array to places where to store pointer values

REC_OFFS_HEADER_SIZE: adjusted for the new reality

REC_OFFS_NORMAL_SIZE:
  increase size from 100 to 300 which means less heap allocations.
  And sizeof(offset_t[REC_OFFS_NORMAL_SIZE]) now is 600 bytes which
  is smaller than previous 800 bytes.

REC_OFFS_SEC_INDEX_SIZE: adjusted for the new reality

rem0rec.h, rem0rec.ic, rem0rec.cc:
  various arguments, return values and local variables types were changed to
  fix numerous integer conversions issues.

enum field_type_t:
  offset types concept was introduces which replaces old offset flags stuff.
  Like in earlier version, 2 upper bits are used to store offset type.
  And this enum represents those types.

REC_OFFS_SQL_NULL, REC_OFFS_MASK: removed

get_type(), set_type(), get_value(), combine():
  these are convenience functions to work with offsets and it's types

rec_offs_base()[0]:
  still uses an old scheme with flags REC_OFFS_COMPACT and REC_OFFS_EXTERNAL

rec_offs_base()[i]:
  these have type offset_t now. Two upper bits contains type.
2019-12-13 00:26:50 +07:00
..
trx0i_s.cc MDEV-20950 Reduce size of record offsets 2019-12-13 00:26:50 +07:00
trx0purge.cc add innodb_debug_sync var to support DEBUG_SYNC from purge threads 2019-10-11 17:02:39 +10:00
trx0rec.cc MDEV-20950 Reduce size of record offsets 2019-12-13 00:26:50 +07:00
trx0roll.cc MDEV-15326: InnoDB: Failing assertion: !other_lock 2019-09-04 09:42:38 +03:00
trx0rseg.cc Merge 10.1 into 10.2 2019-05-13 17:54:04 +03:00
trx0sys.cc MDEV-15326 preparation: Remove trx_sys_t::n_prepared_trx 2019-09-04 09:42:38 +03:00
trx0trx.cc Clean up ut_strlcpy(), ut_strlcpy_rev() 2019-10-30 06:42:51 +02:00
trx0undo.cc MDEV-15326: InnoDB: Failing assertion: !other_lock 2019-09-04 09:42:38 +03:00