[MCOL-4684] Collation aggregation Created: 2021-04-20 Updated: 2023-07-01 |
|
| Status: | Open |
| Project: | MariaDB ColumnStore |
| Component/s: | PrimProc |
| Affects Version/s: | 5.6.1, 6.1.1 |
| Fix Version/s: | 23.10 |
| Type: | Task | Priority: | Major |
| Reporter: | Alexander Barkov | Assignee: | Unassigned |
| Resolution: | Unresolved | Votes: | 0 |
| Labels: | None | ||
| Description |
|
When some operation arguments have different collations, MariaDB uses so called collation aggregation. For example:
Suppose that collations of "a" and "b" are different. Collation aggregation allows to determine:
Collation aggregation is based on the collation strength of the arguments. The collation strength is called "collation derivation" (in early SQL standard version it was called "collation coercibility"). For more information about collation strength, see here: Some details on how collation aggregation works can be found in MySQL user manual: Collation aggregation is used at least in:
For MariaDB compatibility, we should implement collation aggregation in MCS. |
| Comments |
| Comment by Alexander Barkov [ 2021-04-23 ] | |||||||
|
MariaDB also performs collation aggregation for a number of functions with a single formal argument of a string data type. That's needed to convert actual numeric arguments (passed to formal string arguments) to character_set_connection. For compatibility, ColumnStore should probably do the same thing:
Example:
|