Details
-
Task
-
Status: Closed (View Workflow)
-
Major
-
Resolution: Fixed
-
None
Description
We want to pass more structures through the Bison stack instead of using Lex members.
In particular, we want to get rid of Lex->charset.
Reasons:
- The current implementation is hard to follow and change. It has caused a few bugs already. Passing data through the bison stack is much easier to follow!
- We'll have contextually typed collations soon:
-- Use the xxx_uca1400_as_ci collation of the column implicit character set:
CREATE TABLE t1 (a CHAR(10) COLLATE uca1400_as_ci);
The above will resolve to:
- COLLATE utf8mb4_uca1400_as_ci (in case if the column character set is later resolved to utf8mb4)
- COLLATE utf16_uca1400_as_ci (in case if the column character set is later resolved to utf16
- and so on
So the code logic must be simlified before this change.
This change will also fix a few problems:
Attachments
Issue Links
- blocks
-
MDEV-27009 Add UCA-14.0.0 collations
- Closed
- causes
-
MDEV-30681 SIGFPE / UBSAN runtime error: division by zero in String::needs_conversion on ALTER
- Closed
-
MDEV-30805 SIGSEGV in my_convert and UBSAN: member access within null pointer of type 'const struct MY_CHARSET_HANDLER' in my_convert
- Closed
-
MDEV-34288 SET NAMES DEFAULT crashes `mariadbd --collation-server=utf8mb4_unicode_ci`
- Closed
- relates to
-
MDEV-27690 Crash on `CHARACTER SET csname COLLATE DEFAULT` in column definition
- Closed
-
MDEV-27782 Wrong columns when using table level `CHARACTER SET utf8mb4 COLLATE DEFAULT`
- Closed
-
MDEV-27853 Wrong data type on column `COLLATE DEFAULT` and table `COLLATE some_non_default_collation`
- Closed
-
MDEV-28067 Multiple conflicting column COLLATE clauses are not rejected
- Closed
-
MDEV-28118 Wrong collation of `CAST(.. AS CHAR COLLATE DEFAULT)`
- Closed
-
MDEV-28119 Wrong column collation on MODIFY + CONVERT
- Closed
-
MDEV-28117 Multiple conflicting table COLLATE clauses are not rejected
- Closed