Code for session_id function can be viewed at: https://github.com/apache/drill/pull/685/files#diff-017c33174625f4e64c2aba21b59aadb6
Appreciate if you can check this and tell me how I can make it work without using parenthesis while calling. Best Regards, Nagu. On Fri, Dec 23, 2016 at 12:39 PM, Nagarajan Chinnasamy < [email protected]> wrote: > 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. >>> >>>> >>> >> >>> > >>> >> >> >
