maria:bb-10.1-anel-MDEV-19761

Last commit made on 2019-07-25
Get this branch:
git clone -b bb-10.1-anel-MDEV-19761 https://git.launchpad.net/maria

Branch merges

Branch information

Name:
bb-10.1-anel-MDEV-19761
Repository:
lp:maria

Recent commits

96569b7... by Anel Husakovic <email address hidden> on 2019-06-25

MDEV-19761 - Before Trigger not processed for Not Null Column

e32f29b... by Sujatha <email address hidden> on 2019-07-23

MDEV-20091 DROP TEMPORARY table is logged despite no CREATE was logged

MDEV-5589 commit set up a policy to skip DROP TEMPORARY TABLE binary logging
in case the target table has not been "CREATEed" in binlog (no CREATE
Query-log-event was logged into the binary log).

It turns out that

1. the rule did not cover non-existing table DROPped with IF-EXISTS clause.
   The logged-create knowledge for the non-existing one does not even need
   MDEV-5589 patch, and

2. connection close disobeys it to trigger automatic DROP-IF-EXISTS
   binlogging.

Either 1 or 2 or even both is/are also responsible for unexpected binlog
records observed in MDEV-17863, actually rendering a referred
@@global.read_only irrelevant as far as the described stored procedure
definition *and* the ROW binlog-format are concerned.

0c7c610... by Marko Mäkelä on 2019-07-24

Remove the wrappers ut_time(), ut_difftime(), ib_time_t

c663a94... by Marko Mäkelä on 2019-07-24

MDEV-14154: Failing assertion: slot->last_run <= current_time in fts0opt.cc

The FTS optimizer thread made a false assumption that time(NULL)
is monotonic. The system clock can be adjusted to the past,
for example if the hardware clock was drifting to the future,
and it was adjusted by NTP.

fts_slot_t::interval_time: Replace with the constant
FTS_OPTIMIZE_INTERVAL_IN_SECS.

fts_slot_t::last_run, fts_slot_t::completed: Clarify the
documentation.

fts_optimize_get_time_limit(): Remove a type cast, and
add a FIXME comment about domain mismatch.

fts_optimize_compact(), fts_optimize_words(): Limit the time
also when the current time has been moved to the past.

fts_optimize_table_bk(): Check for wrap-around.

fts_optimize_how_many(): Check for wrap-around, and remove the
failing assertions.

fts_is_sync_needed(): Remove a redundant call to time(NULL).

9e5df96... by Marko Mäkelä on 2019-07-24

Reduce the amount of time(NULL) calls for lock processing

lock_t::requested_time: Document what the field is used for.

lock_t::wait_time: Document that the field is only used for
diagnostics and may be garbage if the system time is being adjusted.

srv_slot_t::suspend_time: Document that this is duplicating
trx_lock_t::wait_started.

lock_table_print(), lock_rec_print(): Declare in static scope.
Add a parameter for the current time.

lock_deadlock_check_and_resolve(), lock_deadlock_lock_print(),
lock_deadlock_joining_trx_print():
Add a parameter for the current time.

2b5bc76... by Marko Mäkelä on 2019-07-24

MDEV-14154: Document some time_t fields better

srv_slot_t::suspend_time, os_aio_slot_t::reservation_time,
sync_cell_t::reservation_time: Explain what could happen
if the system time has is being adjusted.

fts_sync_t::start_time: Document that the field is mostly unused.

10727b6... by Marko Mäkelä on 2019-07-24

Always initialize trx_t::start_time_micro

This affects the function has_higher_priority() for internal or
recovered transactions.

10ee1b9... by Marko Mäkelä on 2019-07-24

Remove ut_usectime(), ut_gettimeofday()

Replace ut_usectime() with my_interval_timer(),
which is equivalent, but monotonically counting nanoseconds
instead of counting the microseconds of real time.

os_event_wait_time_low(): Use my_hrtime() instead of ut_usectime().

FIXME: Set a clock attribute on the condition variable that allows
a monotonic clock to be chosen as the time base, so that the wait
is immune to adjustments of the system clock.

e764d5b... by Marko Mäkelä on 2019-07-24

Correct the type of a parameter

ab6dd77... by Marko Mäkelä on 2019-07-24

MDEV-14154: Remove ut_time_us()

Use microsecond_interval_timer()
or my_interval_timer() [in nanoseconds] instead.