Looks like session_id is not being treated as a *built-in* function.
However its in the same jar as other context-based-functions. It does
figure in the registry. Is there anything special needs to be done to get
session_id to be treated as a built-in function -- in Drill????

Best Regards,
Nagu.

On Fri, Dec 23, 2016 at 2:02 AM, Nagarajan Chinnasamy <
[email protected]> wrote:

> I have coded session_id same as other functions that work without
> parenthesis. That means, in Drill, there has to be a way to make a function
> to work without parenthesis (through Calcite). I researched enough and I
> could not find the place where I can configure to make it work so.... Drill
> Gurus have to help me here...
>
> Best Regards,
> Nagu.
>
> On Wed, Dec 21, 2016 at 1:20 AM, Jinfeng Ni <[email protected]> wrote:
>
>> For function without parentheses, Calcite validator checks a
>> SqlIdentifier against validator's operatorTable. If such identifier
>> appears in the operatorTable, the SqlIdentifier is converted to a
>> SqlCall. For your use case, you probably need add such function into
>> operatorTable. You may follow Julian's suggestion of looking at
>> CURRENT_DATE function.
>>
>> 1. https://github.com/apache/calcite/blob/master/core/src/main/
>> java/org/apache/calcite/sql/SqlIdentifier.java#L302-L308
>>
>> On Tue, Dec 20, 2016 at 11:19 AM, Julian Hyde <[email protected]> wrote:
>> > 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/cal
>> cite/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/s
>> rc/main/codegen/includes/parserImpls.ftl <https://github.com/apache/dri
>> ll/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