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)

Reply via email to