MDEV-30430: Enabling system versioning on tables without primary key breaks replication
When replicating MDL events for a table that uses system versioning
without primary keys, ensure that for data sets with duplicate
records, the updates to these records with duplicates are enacted on
the correct row. That is, there was a bug (reported in MDEV-30430)
such that the function to find the row to update would stop after
finding the first matching record. However, in the absence of
primary keys, the version of the record is needed to compare the row
to ensure we are updating the correct one.
The fix, therefore, updates the record comparison functionality to
use system version columns when there are no primary keys on the
table.
Reviewed By:
============
Andrei Elkin <email address hidden>
MDEV-31018 Replica of 10.3, 10.4, <10.5.19 and <10.6.12 to 10.11 will not work when using non-default charset
MDEV-28769 earlier disabled the use if IDs with non-default collations
in statements like:
SET character_set_results=2/*latin2_czech_cs*/;
SET character_set_client=2/*latin2_czech_cs*/;
SET character_set_server=2/*latin2_czech_cs*/;
SET character_set_connection=2/*latin2_czech_cs*/;
MDEV-30824 later fixed "mysqlbinlog" to dump character set names
instead of IDs in these statements:
< SET @@session.character_set_client=33, ... /*!*/;
> SET @@session.character_set_client=utf8mb3, ... /*!*/;
However, mysqlbinlog from old (pre MDEV-30824) distributions can
still produce incorrect statements with numeric non-default
collation IDs.
New servers should still be able to load old dumps.
Allowing the use of "SET @@character_set_xxx=ID" with numeric
non-default collation IDs but only if:
- the current THD is a true slave thread or
- the current THD a pseudo slave thread
(loading a mysqlbinlog output).
f2fde3f...
by
Tuukka Pasanen <email address hidden>
MDEV-30687: Make small facelifting to autobake-debs.sh
Currently autobake-debs.sh does not pass shellcheck
it fails making errors:
* SC1091 when using shellcheck -x it needs to know where to
find ./VERSION. As this is not needed we just specify it
as /dev/null as mentioned in shellcheck documentation: https://www.shellcheck.net/wiki/SC1091
* SC2086 make sure that there is no globbing or word splitting
in dpkg-buidpackage string. This not big problem or about to happen
but now extra parameter parsing is more Bash compliant with
using array.
Change BUILDPACKAGE_PREPEND to BUILDPACKAGE_DPKGCMD which holds
'eatmydata' if it's available and needed 'dpkg-buildpackage' https://www.shellcheck.net/wiki/SC2086
Fix small script indentation problem.
1e4eef5...
by
Tuukka Pasanen <email address hidden>
MDEV-31045: Fix regression building on Ubuntu 18.04
Github PR #2424 regressed Ubuntu 18.04 building
other than x86_64 machines. Architecture that are
impacted are PPC64 and ARM64.
This was because of changes in debian/rules file
which caused removing dependency to package 'libpmem-dev'
and CMake which '-DWITH_PMEM' removing not working
correctly. Package libpmem-dev was removed but
it still required to have PMEM with CMake which.
Commit make change that -DWITH_PMEM is correctly removed
if it's not wanted.
MDEV-31048 PERFORMANCE_SCHEMA lakcs InnoDB read_slots and write_slots
tpool::cache::m_mtx: Add PERFORMANCE_SCHEMA instrumentation
(wait/synch/mutex/innodb/tpool_cache_mutex). This covers the
InnoDB read_slots and write_slots for asynchronous data page I/O.