Hi Adam, Calcite defintely can do this. But can you first clarify what do you mean by all the columns in a query? e.g. R(r1, r2,r3), S(s1,s2,s3) SELECT r1+s1 FROM R,S WHERE r3=s3;
What do you want to extract from this query? r1,r3 for R and s1, s3 for S? And why do you want do that? - Haisheng Yuan------------------------------------------------------------------ 发件人:Stamatis Zampetakis<[email protected]> 日 期:2019年06月04日 17:26:18 收件人:<[email protected]> 主 题:Re: Extracting all columns used in a query Hey Adam, I am not sure exactly what information you need, and at which level (SqlNode/RelNode), but maybe you can exploit what is present in RelRoot [1]. Follow the calls to the constructor to see which APIs can provide you what you need (check for instance, SqlToRelConverter.convertQuery [2]). Best, Stamatis [1] https://github.com/apache/calcite/blob/7f33215ffaf9c0b8f4bef082913c910c77bf4427/core/src/main/java/org/apache/calcite/rel/RelRoot.java#L89 [2] https://github.com/apache/calcite/blob/7f33215ffaf9c0b8f4bef082913c910c77bf4427/core/src/main/java/org/apache/calcite/sql2rel/SqlToRelConverter.java#L553 On Tue, Jun 4, 2019 at 12:39 AM Muhammad Gelbana <[email protected]> wrote: > I don't konw if there is an API for that but visiting the parsed/validated > SqlNode tree can do what you asked for. > > Thanks, > Gelbana > > > On Tue, Jun 4, 2019 at 12:12 AM Adam Rivelli <[email protected]> wrote: > > > Hi all, > > > > I'm trying to extract all of the (fully qualified) columns used by a > query > > - similar to the information provided by > > RelMetadataQuery.getTableReferences() > > < > > > https://calcite.apache.org/apidocs/org/apache/calcite/rel/metadata/RelMetadataQuery.html#getTableReferences-org.apache.calcite.rel.RelNode- > > >, > > but for column references. Is this possible to do using Calcite? > > > > I've been looking through the API docs and experimenting with the API, > but > > I haven't found a straightforward way of doing this. Any help or > > information is appreciated. > > > > Adam > > >
