diff options
Diffstat (limited to 'mysql-test/main/func_json_notembedded.test')
-rw-r--r-- | mysql-test/main/func_json_notembedded.test | 61 |
1 files changed, 61 insertions, 0 deletions
diff --git a/mysql-test/main/func_json_notembedded.test b/mysql-test/main/func_json_notembedded.test new file mode 100644 index 00000000000..8108cf524fd --- /dev/null +++ b/mysql-test/main/func_json_notembedded.test @@ -0,0 +1,61 @@ +source include/have_sequence.inc; +source include/not_embedded.inc; + +set global max_allowed_packet=1073741824; +connect u,localhost,root; + +--echo # +--echo # MDEV-24909 JSON functions don't respect KILL QUERY / max_statement_time limit +--echo # +set group_concat_max_len= 4294967295; + +set @obj=concat('{', repeat('"a":"b",', 12500000), '"c":"d"}'); +set @arr=concat('[', repeat('1234567,', 12500000), '2345678]'); +select length(@obj), length(@arr); + +set @now=unix_timestamp(); +--error ER_STATEMENT_TIMEOUT +set statement max_statement_time= 1 for select json_array_append(@arr, '$[0]', 1); +select greatest(unix_timestamp()-@now, 2); set @now=unix_timestamp(); +--error ER_STATEMENT_TIMEOUT +set statement max_statement_time= 1 for select json_array_insert(@arr, '$[0]', 1); +select greatest(unix_timestamp()-@now, 2); set @now=unix_timestamp(); +--error ER_STATEMENT_TIMEOUT +set statement max_statement_time= 1 for select json_insert(@obj, '$.meta', 1); +select greatest(unix_timestamp()-@now, 2); set @now=unix_timestamp(); +--error ER_STATEMENT_TIMEOUT +set statement max_statement_time= 1 for select json_compact(@arr); +select greatest(unix_timestamp()-@now, 2); set @now=unix_timestamp(); +--error ER_STATEMENT_TIMEOUT +set statement max_statement_time= 1 for select json_detailed(@arr); +select greatest(unix_timestamp()-@now, 2); set @now=unix_timestamp(); +--error ER_STATEMENT_TIMEOUT +set statement max_statement_time= 1 for select json_loose(@arr); +select greatest(unix_timestamp()-@now, 2); set @now=unix_timestamp(); +--error ER_STATEMENT_TIMEOUT +set statement max_statement_time= 1 for select json_merge(@obj, @arr); +select greatest(unix_timestamp()-@now, 2); set @now=unix_timestamp(); +--error ER_STATEMENT_TIMEOUT +set statement max_statement_time= 1 for select json_merge_patch(@obj, @obj); +select greatest(unix_timestamp()-@now, 2); set @now=unix_timestamp(); +--error ER_STATEMENT_TIMEOUT +set statement max_statement_time= 1 for select json_merge_preserve(@obj, @arr); +select greatest(unix_timestamp()-@now, 2); set @now=unix_timestamp(); +--error ER_STATEMENT_TIMEOUT +set statement max_statement_time= 1 for select json_remove(@obj,'$.foo'); +select greatest(unix_timestamp()-@now, 2); set @now=unix_timestamp(); +--error ER_STATEMENT_TIMEOUT +set statement max_statement_time= 1 for select json_replace(@obj,'$.foo',1); +select greatest(unix_timestamp()-@now, 2); set @now=unix_timestamp(); +--error ER_STATEMENT_TIMEOUT +set statement max_statement_time= 1 for select json_set(@arr,'$[1000]',1); +select greatest(unix_timestamp()-@now, 2); set @now=unix_timestamp(); + +disconnect u; +connection default; +set group_concat_max_len= default; +set global max_allowed_packet=default; + +--echo # +--echo # End of 10.5 tests +--echo # |