Commit a01abad6 authored by Oleksandr Byelkin's avatar Oleksandr Byelkin

Merge branch '10.5' into 10.6

parents a8c5635c da798c95
...@@ -54,8 +54,8 @@ MACRO(BUNDLE_PCRE2) ...@@ -54,8 +54,8 @@ MACRO(BUNDLE_PCRE2)
ExternalProject_Add( ExternalProject_Add(
pcre2 pcre2
PREFIX "${dir}" PREFIX "${dir}"
URL "https://github.com/PhilipHazel/pcre2/releases/download/pcre2-10.40/pcre2-10.40.zip" URL "https://github.com/PCRE2Project/pcre2/releases/download/pcre2-10.42/pcre2-10.42.zip"
URL_MD5 798698846982ce171d881ed0d7535c2a URL_MD5 fe90992fbfb03f854bd9f344074f49eb
INSTALL_COMMAND "" INSTALL_COMMAND ""
CMAKE_ARGS CMAKE_ARGS
"-DCMAKE_WARN_DEPRECATED=FALSE" "-DCMAKE_WARN_DEPRECATED=FALSE"
......
...@@ -157,6 +157,8 @@ IF(WOLFSSL_X86_64_BUILD) ...@@ -157,6 +157,8 @@ IF(WOLFSSL_X86_64_BUILD)
${WOLFCRYPT_SRCDIR}/sha512_asm.S ${WOLFCRYPT_SRCDIR}/sha512_asm.S
${WOLFCRYPT_SRCDIR}/sha256_asm.S) ${WOLFCRYPT_SRCDIR}/sha256_asm.S)
ADD_DEFINITIONS(-maes -msse4.2 -mpclmul) ADD_DEFINITIONS(-maes -msse4.2 -mpclmul)
# WolfSSL 5.5.4 bug - user_settings.h not included into aes_asm.S
SET_PROPERTY(SOURCE ${WOLFCRYPT_SRCDIR}/aes_asm.S APPEND PROPERTY COMPILE_OPTIONS "-DWOLFSSL_X86_64_BUILD")
ENDIF() ENDIF()
ENDIF() ENDIF()
......
Subproject commit f1e2165c591f074feb47872a8ff712713ec411e1 Subproject commit 4fbd4fd36a21efd9d1a7e17aba390e91c78693b1
...@@ -1611,6 +1611,18 @@ SELECT json_object('a', coalesce(json_object('b', 'c'))); ...@@ -1611,6 +1611,18 @@ SELECT json_object('a', coalesce(json_object('b', 'c')));
json_object('a', coalesce(json_object('b', 'c'))) json_object('a', coalesce(json_object('b', 'c')))
{"a": {"b": "c"}} {"a": {"b": "c"}}
# #
# MDEV-26392: Crash with json_get_path_next and 10.5.12
#
CREATE TABLE arrNestTest (
id VARCHAR(80) AS (JSON_COMPACT(JSON_EXTRACT(doc, "$._id"))) UNIQUE KEY,
doc JSON,
CONSTRAINT id_not_null CHECK(id IS NOT NULL));
INSERT INTO test.arrNestTest (doc) VALUES ('{ "_id" : { "$oid" : "611c0a463b150154132f6636" }, "a" : [ { "a" : [ { "a" : [ { "a" : [ { "a" : [ { "a" : [ { "a" : [ { "a" : [ { "a" : [ { "a" : [ { "a" : [ { "a" : [ { "a" : [ { "a" : [ { "a" : [ { "a" : 1.0 } ] } ] } ] } ] } ] } ] } ] } ] } ] } ] } ] } ] } ] } ] } ] }');
SELECT * FROM arrNestTest;
id doc
{"$oid":"611c0a463b150154132f6636"} { "_id" : { "$oid" : "611c0a463b150154132f6636" }, "a" : [ { "a" : [ { "a" : [ { "a" : [ { "a" : [ { "a" : [ { "a" : [ { "a" : [ { "a" : [ { "a" : [ { "a" : [ { "a" : [ { "a" : [ { "a" : [ { "a" : [ { "a" : 1.0 } ] } ] } ] } ] } ] } ] } ] } ] } ] } ] } ] } ] } ] } ] } ] }
DROP TABLE arrNestTest;
#
# MDEV-26054 Server crashes in Item_func_json_arrayagg::get_str_from_field # MDEV-26054 Server crashes in Item_func_json_arrayagg::get_str_from_field
# #
CREATE TABLE t (a VARCHAR(8)); CREATE TABLE t (a VARCHAR(8));
......
...@@ -1054,6 +1054,18 @@ DROP TABLE t2; ...@@ -1054,6 +1054,18 @@ DROP TABLE t2;
SELECT json_object('a', if(1, json_object('b', 'c'), json_object('e', 'f'))); SELECT json_object('a', if(1, json_object('b', 'c'), json_object('e', 'f')));
SELECT json_object('a', coalesce(json_object('b', 'c'))); SELECT json_object('a', coalesce(json_object('b', 'c')));
--echo #
--echo # MDEV-26392: Crash with json_get_path_next and 10.5.12
--echo #
CREATE TABLE arrNestTest (
id VARCHAR(80) AS (JSON_COMPACT(JSON_EXTRACT(doc, "$._id"))) UNIQUE KEY,
doc JSON,
CONSTRAINT id_not_null CHECK(id IS NOT NULL));
INSERT INTO test.arrNestTest (doc) VALUES ('{ "_id" : { "$oid" : "611c0a463b150154132f6636" }, "a" : [ { "a" : [ { "a" : [ { "a" : [ { "a" : [ { "a" : [ { "a" : [ { "a" : [ { "a" : [ { "a" : [ { "a" : [ { "a" : [ { "a" : [ { "a" : [ { "a" : [ { "a" : 1.0 } ] } ] } ] } ] } ] } ] } ] } ] } ] } ] } ] } ] } ] } ] } ] }');
SELECT * FROM arrNestTest;
DROP TABLE arrNestTest;
--echo # --echo #
--echo # MDEV-26054 Server crashes in Item_func_json_arrayagg::get_str_from_field --echo # MDEV-26054 Server crashes in Item_func_json_arrayagg::get_str_from_field
......
...@@ -1004,7 +1004,7 @@ String *Item_func_json_extract::read_json(String *str, ...@@ -1004,7 +1004,7 @@ String *Item_func_json_extract::read_json(String *str,
if (!possible_multiple_values) if (!possible_multiple_values)
{ {
/* Loop to the end of the JSON just to make sure it's valid. */ /* Loop to the end of the JSON just to make sure it's valid. */
while (json_get_path_next(&je, &p) == 0) {} while (json_scan_next(&je) == 0) {}
break; break;
} }
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment