I don’t think you need to change the parser, just the validator (the changes to 
SqlOperator.getSyntax I described already). The parser will parse an 
identifier, and the validator will recognize that it is a call to a function 
with no arguments.

Unless Drill has diverged further from Calcite than I imagine it has.

Julian


> On Dec 20, 2016, at 10:51 AM, Sudheesh Katkam <[email protected]> wrote:
> 
> I do not know the exact answer.
> 
> Quite likely the Calcite parser needs to be changed, this blob:
> 
> https://github.com/apache/calcite/blob/master/core/src/main/codegen/templates/Parser.jj#L4765
>  
> <https://github.com/apache/calcite/blob/master/core/src/main/codegen/templates/Parser.jj#L4765>
> 
> Drill extends the Calcite parser, not sure if the change can be made here:
> 
> https://github.com/apache/drill/blob/master/exec/java-exec/src/main/codegen/includes/parserImpls.ftl
>  
> <https://github.com/apache/drill/blob/master/exec/java-exec/src/main/codegen/includes/parserImpls.ftl>
> 
> Thank you,
> Sudheesh
> 
>> On Dec 19, 2016, at 3:00 PM, Nagarajan Chinnasamy 
>> <[email protected]> wrote:
>> 
>> Hi Julian Hyde,
>> 
>> Thanks for your response. I am looking for the Drill way of doing it.
>> 
>> In fact I have coded session_id function exactly as one of other
>> ContextFunctions of Drill. I seem to be missing something :(
>> 
>> 
>> 
>> 
>> Best Regards,
>> Nagu.
>> 
>> On Mon, Dec 19, 2016 at 1:30 PM, Nagarajan Chinnasamy <
>> [email protected]> wrote:
>> 
>>> Hi,
>>> 
>>> Am developing a UDF called SESSION_ID as detailed in issue:
>>> 
>>>   https://issues.apache.org/jira/browse/DRILL-5043
>>> 
>>> It does not take any input parameters. Now, I can only invoke it using
>>> parenthesis as in:
>>> 
>>>   SELECT SESSION_ID() FROM (Values(1));
>>> 
>>> I would like to know what do I need to do if I need to invoke it without
>>> paranthesis like:
>>> 
>>>   SELECT SESSION_ID FROM (Values(1));
>>> 
>>> Appreciate your input.
>>> 
>>> Best Regards,
>>> Nagu.
>>> 
> 

Reply via email to