1
0
mirror of https://github.com/MariaDB/server.git synced 2025-08-07 00:04:31 +03:00

MDEV-25353 JSON_TABLE: Illegal mix of collations upon executing PS once, or SP/function twice.

Do not adapt to the argument charset anymore. Just use the utf8mb4 as
the default cherset.
This commit is contained in:
Alexey Botchkov
2021-04-16 13:24:48 +04:00
parent 59f3399e29
commit 91cd3c8f5b
4 changed files with 30 additions and 40 deletions

View File

@@ -1081,7 +1081,7 @@ SELECT col_varchar_key FROM JSON_TABLE(
(col_varchar_key VARCHAR(10) PATH "$.col_key")) AS innr1);
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Using where
2 MATERIALIZED innr1 ALL NULL NULL NULL NULL 40 Table function: json_table
2 DEPENDENT SUBQUERY innr1 ALL NULL NULL NULL NULL 40 Table function: json_table; Using where
SELECT * FROM t1 WHERE col_varchar_key IN (
SELECT col_varchar_key FROM JSON_TABLE(
'[{"col_key": 1},{"col_key": 2}]', "$[*]" COLUMNS
@@ -1094,8 +1094,7 @@ SELECT col_varchar_key FROM JSON_TABLE(
(col_varchar_key VARCHAR(10) PATH "$.col_key")) AS innr1);
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t1 ALL NULL NULL NULL NULL 2
1 PRIMARY <subquery2> eq_ref distinct_key distinct_key 13 func 1 Using where
2 MATERIALIZED innr1 ALL NULL NULL NULL NULL 40 Table function: json_table
1 PRIMARY innr1 ALL NULL NULL NULL NULL 40 Table function: json_table; Using where; FirstMatch(t1); Using join buffer (flat, BNL join)
DROP TABLE t1;
#
# Bug#26711551: WL8867:CONDITIONAL JUMP IN JSON_TABLE_COLUMN::CLEANUP
@@ -1422,7 +1421,7 @@ FROM JSON_TABLE('"test"', '$' COLUMNS(col VARCHAR(10) PATH '$')) AS a;
SHOW CREATE TABLE t1;
Table Create Table
t1 CREATE TABLE `t1` (
`col` varchar(10) CHARACTER SET ascii DEFAULT NULL
`col` varchar(10) CHARACTER SET utf8mb4 DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1
SET @@SESSION.collation_connection = latin1_bin;
CREATE TABLE t2 SELECT a.col
@@ -1430,7 +1429,7 @@ FROM JSON_TABLE('"test"', '$' COLUMNS(col VARCHAR(10) PATH '$')) AS a;
SHOW CREATE TABLE t2;
Table Create Table
t2 CREATE TABLE `t2` (
`col` varchar(10) CHARACTER SET latin1 COLLATE latin1_bin DEFAULT NULL
`col` varchar(10) CHARACTER SET utf8mb4 DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1
DROP TABLE t1, t2;
SET @@SESSION.character_set_connection = DEFAULT;