[MDEV-27690] Crash on `CHARACTER SET csname COLLATE DEFAULT` in column definition Created: 2022-01-31  Updated: 2022-04-25  Resolved: 2022-04-25

Status: Closed
Project: MariaDB Server
Component/s: Character Sets
Affects Version/s: 10.2, 10.3, 10.4, 10.5, 10.6, 10.7, 10.8
Fix Version/s: 10.2.44, 10.3.35, 10.5.16, 10.6.8, 10.7.4, 10.8.3

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

Issue Links:
Relates
relates to MDEV-27009 Add UCA-14.0.0 collations Closed
relates to MDEV-27782 Wrong columns when using table level ... Closed
relates to MDEV-27743 Remove Lex::charset Closed
relates to MDEV-27853 Wrong data type on column `COLLATE DE... Closed
relates to MDEV-28067 Multiple conflicting column COLLATE c... Closed

 Description   

These statements crash the server:

CREATE OR REPLACE TABLE t1 (a CHAR(10) CHARACTER SET latin1 COLLATE DEFAULT);
CREATE OR REPLACE TABLE t1 (a CHAR(10) CHARACTER SET utf8mb4 COLLATE DEFAULT);

Note, this statements do not:

CREATE OR REPLACE TABLE t1 (a CHAR(10)) CHARACTER SET utf8mb4 COLLATE DEFAULT;
CREATE OR REPLACE TABLE t1 (a CHAR(10)) CHARACTER SET latin1 COLLATE DEFAULT;

But they can produce a wrong table. See MDEV-27782.



 Comments   
Comment by Alexander Barkov [ 2022-02-08 ]

These statements also crash the server:

SELECT CAST('a' AS CHAR(10) CHARACTER SET latin1 COLLATE DEFAULT);
SELECT CAST('a' AS CHAR(10) CHARACTER SET utf8mb4 COLLATE DEFAULT);

So does this:

SELECT * FROM json_table('[{"name":"Jeans"}]', '$[*]' 
  COLUMNS(
    name  VARCHAR(10) CHARACTER SET latin1 COLLATE DEFAULT PATH '$.name'
  )
) AS jt;

So does this:

SELECT COLUMN_GET(COLUMN_CREATE(0, 'string'),0 AS CHAR CHARACTER SET latin1 COLLATE DEFAULT) AS c1;

Comment by Alexander Barkov [ 2022-04-10 ]

This problem was permanently fixed in 10.9 by MDEV-27743.

Now need to provide a light 10.2 specific fix.

Comment by Alexander Barkov [ 2022-04-14 ]

Merged to 10.3. Added a fix for sql_yacc_ora.yy.
Now need to merge up to 10.6 and add JSON_TABLE related tests.

Comment by Alexander Barkov [ 2022-04-25 ]

added a 10.6 specific tests

Generated at Thu Feb 08 09:54:50 UTC 2024 using Jira 8.20.16#820016-sha1:9d11dbea5f4be3d4cc21f03a88dd11d8c8687422.