mirror of
https://github.com/MariaDB/server.git
synced 2025-07-29 05:21:33 +03:00
Merge remote-tracking branch 'origin/10.2' into 10.3
This commit is contained in:
@ -297,7 +297,7 @@ json_quote('foo')
|
||||
show create table t1;
|
||||
Table Create Table
|
||||
t1 CREATE TABLE `t1` (
|
||||
`json_quote('foo')` varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL
|
||||
`json_quote('foo')` varchar(38) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=latin1
|
||||
drop table t1;
|
||||
select json_merge('string');
|
||||
@ -748,6 +748,19 @@ SELECT * FROM t1 WHERE c IN (JSON_EXTRACT('{"a":"b"}', '$.*'));
|
||||
c
|
||||
DROP TABLE t1;
|
||||
#
|
||||
# MDEV-16814 CREATE TABLE SELECT JSON_QUOTE(multibyte_charset_expr) makes a field of a wrong length
|
||||
#
|
||||
CREATE TABLE t1 AS SELECT
|
||||
JSON_QUOTE(_latin1'foo') AS c1,
|
||||
JSON_QUOTE(_utf8'foo') AS c2;
|
||||
SHOW CREATE TABLE t1;
|
||||
Table Create Table
|
||||
t1 CREATE TABLE `t1` (
|
||||
`c1` varchar(38) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL,
|
||||
`c2` varchar(38) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=latin1
|
||||
DROP TABLE t1;
|
||||
#
|
||||
# End of 10.2 tests
|
||||
#
|
||||
#
|
||||
|
@ -412,6 +412,16 @@ INSERT INTO t1 VALUES ('foo'),('bar');
|
||||
SELECT * FROM t1 WHERE c IN (JSON_EXTRACT('{"a":"b"}', '$.*'));
|
||||
DROP TABLE t1;
|
||||
|
||||
--echo #
|
||||
--echo # MDEV-16814 CREATE TABLE SELECT JSON_QUOTE(multibyte_charset_expr) makes a field of a wrong length
|
||||
--echo #
|
||||
|
||||
CREATE TABLE t1 AS SELECT
|
||||
JSON_QUOTE(_latin1'foo') AS c1,
|
||||
JSON_QUOTE(_utf8'foo') AS c2;
|
||||
SHOW CREATE TABLE t1;
|
||||
DROP TABLE t1;
|
||||
|
||||
--echo #
|
||||
--echo # End of 10.2 tests
|
||||
--echo #
|
||||
|
@ -575,7 +575,7 @@ bool Item_func_json_quote::fix_length_and_dec()
|
||||
Odd but realistic worst case is when all characters
|
||||
of the argument turn into '\uXXXX\uXXXX', which is 12.
|
||||
*/
|
||||
max_length= args[0]->max_length * 12 + 2;
|
||||
fix_char_length_ulonglong((ulonglong) args[0]->max_char_length() * 12 + 2);
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user