[MDEV-27412] JSON_TABLE doesn't properly unquote strings Created: 2022-01-03  Updated: 2023-12-27

Status: Open
Project: MariaDB Server
Component/s: JSON
Affects Version/s: 10.6.5
Fix Version/s: 10.6

Type: Bug Priority: Critical
Reporter: Louis Brauer Assignee: Rucha Deodhar
Resolution: Unresolved Votes: 3
Labels: None
Environment:

Ubuntu 20.04


Issue Links:
Relates
relates to MDEV-27346 JSON_TABLE() does not handle quoting ... Open

 Description   

I have trouble with the `JSON_TABLE` function in *MariaDB 10.6.5*. This is my query:

SET @data = '[{"Data": "<root language=\\"de\\"></root>"}]';
 
SELECT
  data
FROM JSON_TABLE (@data, '$[*]' COLUMNS (data text PATH '$.Data')) AS t;}}

What I get back is the XML string, but not properly unescaped:

<root language=\"de\"></root>

When I use then `JSON_VALUE` instead:

SET @data = '[{"Data": "<root language=\\"de\\"></root>"}]';
 
SELECT
  JSON_VALUE(@DATA, '$[0].Data');

then I get back the correctly unescaped string:

<root language="de"></root>

When I do the same on a MySQL *8.0.26* server, it works as expected:

SET @data = '[{"Data": "<root language=\\"de\\"></root>"}]';
 
SELECT
  data
FROM JSON_TABLE (@data, '$[*]' COLUMNS (data text PATH '$.Data')) AS t;
 
-- correct:
-- <root language="de"></root>
 
SELECT
  JSON_VALUE(@data, '$[0].Data');
 
-- correct:
-- <root language="de"></root>

It looks to me that this difference in behaviour is a bug in MariaDB's side.



 Comments   
Comment by Bernd Liebermann [ 2022-06-19 ]

This issue is a show stopper for our project at the moment. I hope it gets addressed soon.

Generated at Thu Feb 08 09:52:43 UTC 2024 using Jira 8.20.16#820016-sha1:9d11dbea5f4be3d4cc21f03a88dd11d8c8687422.