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/ > src/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. > >>>> > >> > > >
