anupamaggarwal commented on PR #24967:
URL: https://github.com/apache/flink/pull/24967#issuecomment-2219410170
thanks @snuyanzin for your review!
I think both these cases are related to inconsistent behavior (IIUC) of `IS
JSON` function which is used in json_unquote implementation for checking JSON
validity. I had observed something similar earlier (see `Open questions`
section of the PR description.
```
SELECT JSON_UNQUOTE('"1""1"');
```
As you pointed out this should ideally throw an exception (as mysql),
however IS JSON returns true in this case (IIUC this should be a bug? since
`1""1` is not a valid json)
```
select '"1""1"' is json; //true
```
If we fix this by throwing an exception (preferable), it could be
in-consistent with what IS JSON considers as valid json?
Should we care about compatibility with IS JSON behavior here (or just fix
this and file a JIRA for IS JSON?)
Same is the case with
```
SELECT JSON_UNQUOTE('"1""\uzzzz"')
select '"1""\uzzzz"' is JSON; //true
```
However in this case we throw an exception (from json_unquote) since \uzzzz
is not a valid literal
For
```
SELECT JSON_UNQUOTE('"1\uzzzz"')
```
IS JSON returns FALSE and we return the input string back per
documentation.
>SELECT JSON_UNQUOTE('"\"\ufffa"');
>it starts printing backslash as well which is NOT OK
Hmm, I tested this through the sql-client.sh, and I get `" ` which seems
expected? (as "\"\ufffa" is a valid JSON )
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]