You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@calcite.apache.org by "Stamatis Zampetakis (JIRA)" <ji...@apache.org> on 2019/08/12 14:42:00 UTC
[jira] [Created] (CALCITE-3243) Incomplete validation of operands
in JSON functions
Stamatis Zampetakis created CALCITE-3243:
--------------------------------------------
Summary: Incomplete validation of operands in JSON functions
Key: CALCITE-3243
URL: https://issues.apache.org/jira/browse/CALCITE-3243
Project: Calcite
Issue Type: Bug
Components: core
Affects Versions: 1.20.0
Reporter: Stamatis Zampetakis
The operands of various JSON functions are not validated correctly.
Consider for instance the {{JSON_VALUE}} function and the following calls:
{code:sql}
json_value('{\"foo\":100}', 'strict $.foo')"
json_value(1, 'strict $.foo')"
json_value(TRUE, 'strict $.foo')"
{code}
The first call is legal but the next are not; if I am not wrong the operands should be always CHAR or VARCHAR literals which is not the case above.
Queries involving such calls fail at runtime when compiling generated code. I guess that such kind of problems should be captured by the validator and we should not even arrive at the code generation step.
The problems can be easily reproduced by adding such calls in the {{SqlOperatorBaseTest}}.
The problem does not only affect {{JSON_VALUE}} but other JSON functions (such as {{JSON_QUERY}} etc.) as well.
--
This message was sent by Atlassian JIRA
(v7.6.14#76016)