Home - Waterfall Grid T-Grid Console Builders Recent Builds Buildslaves Changesources - JSON API - About

Console View

Categories: connectors experimental galera main
Legend:   Passed Failed Warnings Failed Again Running Exception Offline No data

connectors experimental galera main
Alexander Barkov
MDEV-27266 Improve UCA collation performance for utf8mb3 and utf8mb4

Adding two levels of optimization:

1. For every bytes pair [00..FF][00..FF] which:
  a. consists of two ASCII characters or makes a well-formed two-byte character
  b. whose total weight string fits into 4 weights
    (concatenated weight string in case of two ASCII characters,
    or a single weight string in case of a two-byte character)
  c. whose weight is context independent (i.e. does not depend on contractions
    or previous context pairs)
  store weights in a separate array of MY_UCA_2BYTES_ITEM,
  so during scanner_next() we can scan two bytes at a time.
  Byte pairs that do not match the conditions a-c are marked in this array
  as not applicable for optimization and scanned as before.

2. For every byte pair which is applicable for optimization in #1,
  and which produces only one or two weights, store
  weights in one more array of MY_UCA_WEIGHT2. So in the beginning
  of strnncoll*() we can skip equal prefixes using an even more efficient
  loop. This loop consumes two bytes at a time. The loop scans while the
  two bytes on both sides produce weight strings of equal length
  (i.e. one weight on both sides, or two weight on both sides).
  This allows to compare efficiently:
  - Context independent sequences consisting of two ASCII characters
  - Context independent 2-byte characters
  - Contractions consisting of two ASCII characters, e.g. Czech "ch".
  - Some tricky cases: "ss" vs "SHARP S"
    ("ss" produces two weights, 0xC39F also produces two weights)
Thirunarayanan Balathandayuthapani
MDEV-28400      Leak in trx_mod_time_t::start_bulk_insert()

- Skip the undo logging only for the newly added partition.
Fix typos in the codebase.
Nikita Malyavin
MDEV-29181 Potential corruption on FK update on a table with vcol index
Oleksandr Byelkin
Merge branch '10.8' into 10.9
Nikita Malyavin
fix error handling
MDEV-24660 MYSQL_BIN_LOG::cleanup(): Assertion `b->xid_count == 0'

The assert fired at shutdown time to indicate a missed decrement to
the count. The counter could not have been decremented because
the binlog background thread had already gone.

Fixed with relocation the binlog background thread exit in the server
shutdown module.
Alexander Barkov
MDEV-27009 Add UCA-14.0.0 collations - Adding implicit weight handling for Unicode-14.0.0

1. Adding separate functions for different Unicode versions
  - my_uca_520_implicit_weight_primary()
  It calculates implicit weights according to the old algorithm
  that we used to dump Unicode-5.2.0 weights.

  - my_uca_1400_implicit_weight_primary()
    It calculates implicit weights according to
    as of November 2021, Unicode version 14.0.0.

2. Adding the "@version" line recognition when dumping allkeys.txt.
  Implicit weights are dumped according to @version.

3. Dumping the scanned version as a "#define"

  as they are defined in ctype-uca.c. Removing dumping of "main()", it's not
  needed. The intent is to generate an *.h file which can be put directly
  to the MariaDB source tree.

5. Adding a structure MY_DUCET. It now contains weights for single
  characters and version related members. Later we'll add contractions
  and logical positions in here.
Sergei Golubchik
my_safe_process: try to kill the process softly first

first SIGTERM and if the process didn't die in 10 seconds, SIGKILL it.

This allows various tools like `rr`, `gcov`, `gprof`, etc to flush
their data to disk properly
Sergei Golubchik
take into account C/C specific CR_ERR_NET_WRITE error