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)