[MDEV-17502] Change Unicode xxx_general_ci and xxx_bin collation implementation to "inline" style Created: 2018-10-19 Updated: 2018-10-30 Resolved: 2018-10-19 |
|
| Status: | Closed |
| Project: | MariaDB Server |
| Component/s: | Character Sets |
| Fix Version/s: | 10.4.0 |
| Type: | Task | Priority: | Major |
| Reporter: | Alexander Barkov | Assignee: | Alexander Barkov |
| Resolution: | Fixed | Votes: | 0 |
| Labels: | None | ||
| Issue Links: |
|
||||||||||||||||
| Description |
|
This task is similar to The current implementation my_strnxfrm_unicode_internal() has some bottlenecks:
We'll change the code by adding new strnxfrm-family function templates into strings/strcoll.ic. Every collation will include strings/strcoll.ic and pass specific parameters, such as mb_wc() and UNICASE data related. Additionally, we'll add fast paths for ASCII data. After these changes, the template instantiation (e.g. for utf8_general_ci) will look like this:
The template included in this example will:
|
| Comments |
| Comment by Alexander Barkov [ 2018-10-19 ] | ||||||||||||||||||||||||||||||||
|
Performance statistics: Short range searches with ORDER BY
Micro benchmark for WEIGHT_STRING() for utf8_general_ci
Micro benchmark for WEIGHT_STRING() for utf8_bin
|