maria:bb-11.0-MDEV-30318

Last commit made on 2023-01-03
Get this branch:
git clone -b bb-11.0-MDEV-30318 https://git.launchpad.net/maria

Branch merges

Branch information

Name:
bb-11.0-MDEV-30318
Repository:
lp:maria

Recent commits

daabb72... by Jan Lindström

MDEV-30318 : galera error messages in mariadb log without galera enabled

Do not compile wsrep_provider plugin if WITH_WSREP is not enabled.
We should not enable wsrep_provider plugin if WSREP_ON=OFF and
at that case we can only print information that Plugin
'wsrep-provider' is disabled.

Make sure tests require Galera library 26.4.14 if needed.

1cb0835... by Sergei Golubchik

cherry-pick from 10.6: sporadic failures of perfschema.statement_program_concurrency

wait until all three concurrent statements are truly completely
finished before quering P_S.

In particular "Logging slow query" stage happens after sending the
OK packet but before the statement appears in events_statements_history

7d7d2b0... by Sergei Golubchik

cherry-pick from 10.4: disable hanging test

de43d53... by Sergei Golubchik

cherry-pick from 10.4: galera.galera_wsrep_new_cluster: fix bad merge

f9ed4bb... by Sergei Golubchik

cherry-pick from 10.10: fix failing galera test

75b9aac... by Sergei Golubchik

ColumnStore still needs mysql* aliases

9f95e77... by Monty <email address hidden>

Fixed wrong selectivity calculation in table_after_join_selectivity()

The old code counted selectivity double in case of queries like:
WHERE key_part1=1 and key_part2 < 100
if the optimizer would decide to use a REF access on key_part1.

The new code in best_access_path() that changes REF access to RANGE
if the RANGE key is longer makes this issue less likely to happen.

I was not able to create a test case for 11.0, however if one ports this
patch to a MariaDB version without the change of REF to RANGE, the
selectivity will be counted double.

e8c3b6a... by Monty <email address hidden>

Cache file->index_flags(index, 0, 1) in table->key_info[index].index_flags

The reason for this is that we call file->index_flags(index, 0, 1)
multiple times in best_access_patch()when optimizing a table.
For example, in InnoDB, the calls is not trivial (4 if's and 2 assignments)
Now the function is inlined and is just a memory reference.

Other things:
- handler::is_clustering_key() and pk_is_clustering_key() are now inline.
- Added TABLE::can_use_rowid_filter() to simplify some code.
- Test if we should use a rowid_filter only if can_use_rowid_filter() is
  true.
- Added TABLE::is_clustering_key() to avoid a memory reference.
- Simplify some code using the fact that HA_KEYREAD_ONLY is true implies
  that HA_CLUSTERED_INDEX is false.
- Added DBUG_ASSERT to TABLE::best_range_rowid_filter() to ensure we
  do not call it with a clustering key.
- Reorginized elements in struct st_key to get better memory alignment.
- Updated ha_innobase::index_flags() to not have
  HA_DO_RANGE_FILTER_PUSHDOWN for clustered index

abe6fb6... by Monty <email address hidden>

Updated some tests for --valgrind

- Increased timeout for binlog_mysqlbinlog_raw_flush.test.
  The old timeout was not enough when running with --valgrind
- Disabled ssl_timeout for --valgrind as it times out
- Disabled binlog_truncate_multi_engine for --valgrind as it does restarts

471098d... by Monty <email address hidden>

Fixed 'undefined variable' error in mtr

This could happen if mtr_grab_file() returned empty (happened to me)