calcite-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Nirav Patel <npa...@xactlycorp.com>
Subject Re: How to parse sql expression to obtain field names
Date Fri, 19 Jan 2018 00:01:38 GMT
Sorry my original expression had an extra ")" in the end. Thanks for
verifying.

Followup question:

How do I extract Field(Column) names from all such expressions? I tried
implementing SqlVisitor. I can see SqlCall has fields operators and operand
but when I fetch them I get List[SqlNode] can they be converted directly to
String? or any getNames() method? Or  do I need to do recursive traversal
and each time I get sqlNode I provide new visitor until I hit
SqlIdentifier? Can you provide some suggestion to effectively get all
column names from expression.

Thanks,
Nirav

On Thu, Jan 18, 2018 at 3:01 PM, Julian Hyde <jhyde@apache.org> wrote:

> It works for me.
>
> public static void main(String[] args) throws SqlParseException {
>   try {
>     SqlParser parser = SqlParser.create("SUM(t1.amount)/COUNT(t1)");
>     SqlNode sqlNode = parser.parseExpression();
>   } catch (Throwable e) {
>     e.printStackTrace();
>   }
> }
>
>
> > On Jan 18, 2018, at 1:44 PM, Nirav Patel <npatel@xactlycorp.com> wrote:
> >
> > Is it possible to just parse sql function expression which is not a
> > complete sql syntax.
> > e.g. I want to parse expression `SUM(t1.amount)/COUNT(t1)` instead of
> whole
> > sql like "select t1.name, SUM(t1.amount)/COUNT(t1) from mytable t1
> group by
> > t1.name". I tried
> >
> >    val parser = SqlParser.create("SUM(t1.amount)/COUNT(t1)")
> >    val sqlNode = parser.parseExpression()
> >
> > but it fails with parse exception.
> >
> > Thanks
> >
> > --
> >
> >
> > [image: What's New with Xactly] <http://www.xactlycorp.com/email-click/>
> >
> > <https://www.instagram.com/xactlycorp/>
> > <https://www.linkedin.com/company/xactly-corporation>
> > <https://twitter.com/Xactly>   <https://www.facebook.com/XactlyCorp>
> > <http://www.youtube.com/xactlycorporation>
>
>

-- 


[image: What's New with Xactly] <http://www.xactlycorp.com/email-click/>

<https://www.instagram.com/xactlycorp/>   
<https://www.linkedin.com/company/xactly-corporation>   
<https://twitter.com/Xactly>   <https://www.facebook.com/XactlyCorp>   
<http://www.youtube.com/xactlycorporation>

Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message