maria:bb-10.9-MDEV-32008

Last commit made on 2023-08-25
Get this branch:
git clone -b bb-10.9-MDEV-32008 https://git.launchpad.net/maria

Branch merges

Branch information

Name:
bb-10.9-MDEV-32008
Repository:
lp:maria

Recent commits

c75bd0b... by THIRUNARAYANAN BALATHANDAYUTHAPANI

MDEV-32008 auto_increment value on table increments by one after restart

- Update the current auto increment value rather than
next auto increment value.

3e0009d... by Oleksandr "Sanja" Byelkin

Merge branch '10.6' into 10.9

0d16eb3... by Oleksandr "Sanja" Byelkin

Merge branch '10.5' into 10.6

7e65025... by Oleksandr "Sanja" Byelkin

Merge branch '10.4' into 10.5

2aea938... by Monty <email address hidden>

MDEV-31893 Valgrind reports issues in main.join_cache_notasan

This is also related to
MDEV-31348 Assertion `last_key_entry >= end_pos' failed in virtual bool
           JOIN_CACHE_HASHED::put_record()

Valgrind exposed a problem with the join_cache for hash joins:
=25636== Conditional jump or move depends on uninitialised value(s)
==25636== at 0xA8FF4E: JOIN_CACHE_HASHED::init_hash_table()
          (sql_join_cache.cc:2901)

The reason for this was that avg_record_length contained a random value
if one had used SET optimizer_switch='optimize_join_buffer_size=off'.

This causes either 'random size' memory to be allocated (up to
join_buffer_size) which can increase memory usage or, if avg_record_length
is less than the row size, memory overwrites in thd->mem_root, which is
bad.

Fixed by setting avg_record_length in JOIN_CACHE_HASHED::init()
before it's used.

There is no test case for MDEV-31893 as valgrind of join_cache_notasan
checks that.
I added a test case for MDEV-31348.

f692b2b... by Oleksandr "Sanja" Byelkin

Merge branch '10.6' into 10.9

# Conflicts:
# mysql-test/main/sp.result
# mysql-test/main/sp.test

8d210fc... by Sergey Petrunia

MDEV-31877: ASAN errors in Exec_time_tracker::get_cycles with innodb slow log verbosity

Remove redundant delete_explain_query() calls in

sp_instr_set::exec_core(), sp_instr_set_row_field::exec_core(),
sp_instr_set_row_field_by_name::exec_core().

These calls are made before the SP instruction's tables are
"closed" by close_thread_tables() call.

When we call close_thread_tables() after that, we no longer
can collect engine's counter variables, as they use the data
structures that are located in the Explain Data Structures.

Also, these delete_explain_query() calls are redundant, as
sp_lex_keeper::reset_lex_and_exec_core() has another
delete_explain_query() call, which is located in the right
location after the close_thread_tables() call.

27dc4cd... by Oleksandr "Sanja" Byelkin

Merge branch '10.6' into 10.9

d28d636... by Oleksandr "Sanja" Byelkin

Merge branch '10.5' into 10.6

8852afe... by Oleksandr "Sanja" Byelkin

Merge branch '10.4' into 10.5