maria:bb-10.2-MDEV-22543

Last commit made on 2020-08-11
Get this branch:
git clone -b bb-10.2-MDEV-22543 https://git.launchpad.net/maria

Branch merges

Branch information

Name:
bb-10.2-MDEV-22543
Repository:
lp:maria

Recent commits

eea9f80... by Jan Lindström

Fix test.

76e94a4... by Jan Lindström

MDEV-22543 : Galera SST donation fails, FLUSH TABLES WITH READ LOCK times out

During SST we need to let FTWRL to use normal timeout method
even when client is disconnected.

845e3c9... by Jan Lindström

Replaced infinite loop in procedure with limited loop to avoid
hang.

1dec60c... by Jan Lindström

MDEV-22626: mysql_tzinfo_to_sql not replicates timezone to galeranodes if only 1 timezone will be loaded.

Move alter to InnoDB earlier to more correct place to handle
also if only a one timezone file is loaded.

caa474f... by varun

MDEV-15180: server crashed with NTH_VALUE()

fix_fields for the arguments of the NTH_VALUE function was updating the same reference,
so for the second argument (or after the first argument) the items were not resolved
to their corresponding field from the view as they were updating the reference to the
first argument.

1e31d74... by varun

MDEV-17066: Bytes lost or Assertion `status_var.local_memory_used == 0 after DELETE with subquery with ROLLUP

The issue here is when records are read from the temporary file
(filesort result in this case) via a cache(rr_from_cache).
The cache is initialized with init_rr_cache.
For correlated subquery the cache allocation is happening at each execution
of the subquery but the deallocation happens only once and that was
when the query execution was done.

So generally for subqueries we do two types of cleanup

1) Full cleanup: we should free all resources of the query(like temp tables).
   This is done generally when the query execution is complete or the subquery
   re-execution is not needed (case with uncorrelated subquery)

2) Partial cleanup: Minor cleanup that is required if
   the subquery needs recalculation. This is done for all the structures that
   need to be allocated for each execution (example SORT_INFO for filesort
   is allocated for each execution of the correlated subquery).

The fix here would be free the cache used by rr_from_cache in the partial
cleanup phase.

91caf13... by Marko Mäkelä

MDEV-23101 fixup: Remove redundant code

lock_rec_has_to_wait_in_queue(): Remove an obviously redundant assertion
that was added in commit a8ec45863b958757da61af3b2ce0a38b0a79d92c
and also enclose a Galera-specific condition in #ifdef WITH_WSREP.

5fb07d2... by Rucha Deodhar <email address hidden>

MDEV-23082: ER_TABLEACCESS_DENIED_ERROR error message is truncated,
and inaccurately

Analysis: The list of all privileges is 118 characters wide. However, the
format of error message was: "%-.32s command denied to user...". get_length()
sets the maximum width to 32 characters. As a result, only first 32
characters of list of privilege are stored.
Fix: Changing the format to "%-.100T..." so that get_length() sets width to
100. Hence, first 100 characters of the list of privilege are stored and the
type specifier 'T' appends '...' so that truncation can be seen.

745fa25... by Rucha Deodhar <email address hidden>

MDEV-14836: Assertion `m_status == DA_ERROR' failed in
Diagnostics_area::sql_errno upon query from I_S with LIMIT ROWS EXAMINED

open_normal_and_derived_table() fails because the query was already killed
as rows examined by the query are more than the limit. However, this isn't a
real error.
Fix: Check if there is actually an error before calling thd->sql_errno()
and later send a warning in handle_select() if no real error.

87b1625... by Jan Lindström

Test case MW-328A still fails, thus disable it until it is really
fixed.