maria:bb-10.4-MDEV-21335

Last commit made on 2019-12-18
Get this branch:
git clone -b bb-10.4-MDEV-21335 https://git.launchpad.net/maria

Branch merges

Branch information

Name:
bb-10.4-MDEV-21335
Repository:
lp:maria

Recent commits

088de81... by Jan Lindström

MDEV-21335 : Galera test failure on suite wsrep

Problem was that wsrep_on was OFF.

This is 10.4 version.

67e063e... by Teemu Ollakka <email address hidden>

Update wsrep-lib. (#1426)

This commit updates the wsrep-lib. The changes are a cleanup in
client_state TOI processing and stub methods for future extensions.

8fa759a... by Marko Mäkelä

Merge 10.3 into 10.4

We disable the MDEV-21189 test galera.galera_partition
because it times out.

3466b47... by Marko Mäkelä

Merge 10.2 into 10.3

f0aa073... by Eugene

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.

014e125... by Eugene

optimize crash recovery

recv_dblwr_t::list is used for appending to the beginning and iterating
through its elements. std::deque fits better for that purpose because
it does less allocations than std::forward_list and provides better memory
locality.

0a20e5a... by Marko Mäkelä

Merge 10.2 into 10.3

e0f9540... by Alexander Barkov

MDEV-20667 Server crash on pop_cursor

When backpatching a forward GOTO label, the old code erroneously
used CURSOR/HANDLER difference between context frames "c" and "a" to tune
a cpop/hpop command. So the cpop/hpop command later tried to pop
all cursors/handlers declared between "a" and "c", but those between
"b" and "c" were not cpushed/hpoped yet during the execution of "GOTO x".

Fixing the code to use the difference between frames "b" and "a" only.

BEGIN -- a
 ...
GOTO x; -- b
 ...
<<x>> -- c
 ...
END -- d

3304004... by Vladislav Vaintroub

MDEV-21260 Innodb/Wjndows do not report error when trying open volumes on UNC paths

fil_node_t::find_metadata() tries to find out whether file
is on an SSD, and the disk sector size.
On Windows, it opens the corresponding volume for finding this data.

This does not go well, if datadir is on network path/UNC. The volume name
is invalid, CreateFile() function fails, and a cryptic (from the end user
perspective) error is reported. Like this

[ERROR] InnoDB: File \\.\\\workpc\work: 'CreateFile()' returned OS error 203.

The fix is not to report error if open volume failed, and the path was not
on fixed disk, i.e not on HDD or SSD. This is not a fatal error, there is
a fallback anyway.

71e47f3... by Vladislav Vaintroub

git ignore generated stuff