Details
-
Bug
-
Status: Closed (View Workflow)
-
Major
-
Resolution: Fixed
-
10.3.9, 10.2(EOL), 10.3(EOL)
-
None
-
Ubuntu 18.04
Description
CREATE TEMPORARY TABLE a ( |
`data` mediumtext DEFAULT NULL |
) ENGINE=InnoDB DEFAULT CHARSET=utf8; |
|
INSERT INTO a VALUES ('{}'); |
|
UPDATE a SET |
data = JSON_INSERT(data, '$.messages', JSON_QUERY('[]', '$')) , |
data = JSON_ARRAY_APPEND(data, '$.messages', JSON_QUERY('{"date":"2018-09-03","text":"mmmmmmm"}', '$')); |
|
-- Error (4038): Syntax error in JSON text in argument 1 to function 'json_array_append' at position 15
|
|
-- BUT, If in "JSON_QUERY('[]', '$'))" array is not empty:
|
|
UPDATE a SET |
data = JSON_INSERT(data, '$.messages', JSON_QUERY('["AAAAA"]', '$')) , |
data = JSON_ARRAY_APPEND(data, '$.messages', JSON_QUERY('{"date":"2018-09-03","text":"mmmmmmm"}', '$')); |
|
-- Not errors |
Attachments
Issue Links
- relates to
-
MDEV-17001 JSON_MERGE returns nullwhen merging empty array
-
- Closed
-
Thanks for the report!
reproduced as described on MariaDB 10.2, 10.3
MariaDB [test]> select JSON_ARRAY_APPEND('{"a": []}', '$.a', JSON_QUERY('{"date":"2018-09-03","text":"mmmmmmm"}', '$')) ;
+--------------------------------------------------------------------------------------------------+
| JSON_ARRAY_APPEND('{"a": []}', '$.a', JSON_QUERY('{"date":"2018-09-03","text":"mmmmmmm"}', '$')) |
+--------------------------------------------------------------------------------------------------+
| NULL |
+--------------------------------------------------------------------------------------------------+
1 row in set, 1 warning (0.000 sec)
Warning (Code 4038): Syntax error in JSON text in argument 1 to function 'json_array_append' at position 8
MariaDB [test]> select JSON_ARRAY_APPEND('{"a": [{}]}', '$.a', JSON_QUERY('{"date":"2018-09-03","text":"mmmmmmm"}', '$')) ;
+----------------------------------------------------------------------------------------------------+
| JSON_ARRAY_APPEND('{"a": [{}]}', '$.a', JSON_QUERY('{"date":"2018-09-03","text":"mmmmmmm"}', '$')) |
+----------------------------------------------------------------------------------------------------+
| {"a": [{}, {"date": "2018-09-03", "text": "mmmmmmm"}]} |
+----------------------------------------------------------------------------------------------------+
1 row in set (0.000 sec)