/buildbot/amd64-ubuntu-2004-msan/build/storage/innobase/include/buf0types.h:149:23: error: 'constexpr' non-static member function will not be implicitly 'const' in C++14; add 'const' to avoid a change in behavior [-Werror,-Wconstexpr-not-const]
constexpr ulonglong raw() { return m_id; } ^ const
MDEV-28478: INSERT into SPATIAL INDEX in TEMPORARY table writes log
This is based on commit 20ae4816bba712a3faa0110c973e197d92f43b42
with some adjustments for MDEV-12353.
row_ins_sec_index_entry_low(): If a separate mini-transaction is
needed to adjust the minimum bounding rectangle (MBR) in the parent
page, we must disable redo logging if the table is a temporary table.
For temporary tables, no log is supposed to be written, because
the temporary tablespace will be reinitialized on server restart.
rtr_update_mbr_field(), rtr_merge_and_update_mbr(): Changed the return
type to void and removed unreachable code. In older versions, these
used to return a different value for temporary tables.
page_id_t: Add constexpr to most member functions.
mtr_t::log_write(): Catch log writes to invalid tablespaces
so that the test case would crash without the fix to
row_ins_sec_index_entry_low().
06a4193...
by
Anel Husakovic <email address hidden>
MDEV-28391: table_exists procedure fails when arguments contain escaped backticks as an quoted identifiers
- When arguments to the procedure contain quote in the name, procedure fails with parsing error.
The reason was because additional quoting is done when testing TEMPORARY table with the same name.
- Reviewed by: <email address hidden>
MDEV-28465 Some calls to btr_pcur_close() are unnecessary
The function btr_pcur_close() is being invoked on local variables
even when no cleanup needs to be done. In particular, for B-tree
indexes (not SPATIAL INDEX), unless btr_pcur_store_position()
was invoked in the past, there is no need to invoke btr_pcur_close().
On purge and rollback, we will retain btr_pcur_close(&pcur)
because otherwise some ./mtr --suite=innodb_gis tests would leak memory.
MDEV-28454 Latching order violation (and hang) in ibuf_insert_low
Since commit 2ca112346438611ab7800b70bea6af1fd1169308 (MDEV-26217)
the function trx_t::commit(std::vector<pfs_os_file_t>&)
holds exclusive lock_sys.latch while invoking fil_delete_tablespace(),
which in turn may wait for change buffer tree latches in
ibuf_delete_for_discarded_space().
ibuf_insert_low(): If a shared lock_sys.latch cannot be acquired
without waiting, refuse to buffer the insert. In this way, a
deadlock with a DDL operation will be avoided.
ibuf_insert_to_index_page(), ibuf_delete(): Remove redundant calls to
record locking. In ibuf_insert_low() we already ensured that no record
locks existed on the page. No locks can be added before the buffered
changes have been merged.