[MDEV-31071] Refactor case folding data types in Unicode collations Created: 2023-04-18  Updated: 2023-04-18  Resolved: 2023-04-18

Status: Closed
Project: MariaDB Server
Component/s: Character Sets
Fix Version/s: 11.1.1, 10.11.3, 11.0.2, 10.10.4

Type: Task Priority: Critical
Reporter: Alexander Barkov Assignee: Alexander Barkov
Resolution: Fixed Votes: 0
Labels: None

Issue Links:
Blocks
blocks MDEV-30577 Case folding for uca1400 collations i... Closed

 Description   

This task is a continuation for MDEV-30695.
The intent is to remove joined tables storing casefolding+weight data using these C data types:

typedef struct unicase_info_char_st
{
  uint32 toupper;
  uint32 tolower;
  uint32 sort;
} MY_UNICASE_CHARACTER;
 
struct unicase_info_st
{
  my_wc_t maxchar;
  MY_UNICASE_CHARACTER **page;
};

and replace them to separate casefolding tables:

typedef struct casefold_info_char_t
{
  uint32 toupper;
  uint32 tolower;
} MY_CASEFOLD_CHARACTER;
 
struct casefold_info_st
{
  my_wc_t maxchar;
  MY_CASEFOLD_CHARACTER **page;
};

and separate weight tables:

  const uint16 * const *simple_weight; /* For general_ci-alike collations */

The intent for this refactoring is explained in MDEV-30695.


Generated at Thu Feb 08 10:21:03 UTC 2024 using Jira 8.20.16#820016-sha1:9d11dbea5f4be3d4cc21f03a88dd11d8c8687422.