maria:bb-11.0-tmp

Last commit made on 2023-02-21
Get this branch:
git clone -b bb-11.0-tmp https://git.launchpad.net/maria

Branch merges

Branch information

Name:
bb-11.0-tmp
Repository:
lp:maria

Recent commits

01310fe... by Michael Widenius <email address hidden>

Added mysql-log-rotate to .gitignore

997cbba... by Monty <email address hidden>

Updated prev_record_reads() to be more exact

The old code in prev_record_reads() did give wrong estimates when a
join_buffer was used or if the table was depending on more than one
other tables. When join_cache is used, it will cause a re-order of row
combinations, which causes more calls to the engine for tables that
are depending on tables before the join_cached one.

The new prev_records_read() code provides more exact estimates and
should never give a 'too low estimate', assuming that the data to the
function is correct

The definition of prev_record_read() is also updated.
The new definition is:
  "Estimate the number of engine ha_index_read_calls for EQ_REF tables
  when taking into account the one-row-cache in join_read_always_key()"

The cost of using prev_record_reads() value is changed. The value is
now used similar as before to calculate the cost of the storage engine
calls. However the cost of the WHERE cost is changed to take into
account the total number of row combinations as the WHERE has to be
checked even if the one-row-cache is used. This makes the cost
slightly higher than before (for the same prev_record_reads() value).

Other things:
- Cached return value of prev_record_read() in best_access_path() to
  avoid some function calls.
- Fixed bug where position[].use_join_buffer was set in
  best_acess_path() when join buffer was not used. This confused the
  semi join optimizer to try to reoptimize plans that did not need to be
  reoptimized.
  The effect of the bug fix is that we avoid doing some re-optimziations
  with semi-joins when join_buffer is not used. In these cases the value
  shown for the 'Filtering' column in EXPLAIN EXTENDED may change.
- Added 'prev_record.cc' that was used to verify the logic in
  prev_record_reads().

Changes in test suite:
- EQ_REF tables are moved up to be earlier. This is because either the
  higher WHERE cost when EQ_REF is used with more row combination or
  change of cost when using join_cache.
- Filtered has changed (to the better) for some cases using semi-joins
  subselect_sj.test subselect_sj_jcl6.test

80bd26c... by Monty <email address hidden>

Added r_table_looks to ANALYZE TABLE

Author: Sergei Petrunia <email address hidden>

7b75872... by Monty <email address hidden>

Adjust costs for rowid filter

- Use log2() insted of log()
- Added missing ''+' when calculating rowid setup cost
- Adjusted ROWID_FILTER_PER_ELEMENT_MODIFIER (from 3 to 1)

Other things:
- Adjusted cost for index_merge where rows_out < 1.0

The effects of the changes:
- rowid filter will have higher setup cost
- rowid filter will have slightly less costs per row

This can be seen in mtr where some tests, with 'small tables or
that uses rowid filters with many rows, will not use rowid filter anymore.

10945d2... by Sergey Petrunia

MDEV-30525: Assertion `ranges > 0' fails in IO_AND_CPU_COST

Part #2: fix the case where table->stat_records()=1 (due to EITS
statistics), but the range returns rows=0.

799f759... by Sergei Golubchik

bump the maturity

f2dc4d4... by THIRUNARAYANAN BALATHANDAYUTHAPANI

MDEV-30673 InnoDB recovery hangs when buf_LRU_get_free_block
   is being called

- Recovery fails to release log_sys.latch for non-last batch
before preallocates the block in recv_read_in_area().

da114c7... by Sergei Golubchik

fix for --view-protocol

a687434... by Marko Mäkelä

MDEV-22570 fixup: Silence clang -Wunneeded-internal-declaration

2e431ff... by Marko Mäkelä

Merge 10.11 into 11.0