Thanks a lot But I found if the select is from the subquery, `getFieldOrigins` returns null, because you can not find the table(see in the pic.).
String sql = "SELECT T1.NAME,\n" + " T1.NID,\n" + " T2.NID,\n" + " T2.COMPANY\n" + "FROM\n" + " (SELECT (U.ID +100) AS NID,\n" + " U.NAME AS NAME\n" + " FROM USERS U) T1\n" + "JOIN\n" + " (SELECT (J.ID +100) AS NID,\n" + " J.COMPANY\n" + " FROM JOBS J) T2 ON T1.NID = T2.NID"; [image: image.png] Regards! Aron Tao Seliverstov Igor <gvvinbl...@gmail.com> 于2020年2月19日周三 下午5:38写道: > Aron Tao, > > I think you need the next two methods: > > org.apache.calcite.sql.validate.SqlValidatorImpl#getFieldOrigins > java.sql.ResultSetMetaData#getTableName > > Regards, > Igor > > > 19 февр. 2020 г., в 10:29, JiaTao Tao <taojia...@gmail.com> написал(а): > > > > Hi > > Thanks a lot. > > Can you give more details, say which method/field? > > > > Regards! > > > > Aron Tao > > > > > > Seliverstov Igor <gvvinbl...@gmail.com> 于2020年2月19日周三 下午2:31写道: > > > >> You can use their origins (says where a column came from). > >> > >> It's accessable from SqlValidatorImpl or jdbc result set > >> > >> ср, 19 февр. 2020 г., 9:25 JiaTao Tao <t...@apache.org>: > >> > >>> What I really need is to collect every part of the SQL, Which columns > are > >>> used as filters, which are used as projection(Columns on the source > >>> table), But > >>> the existence of nested subqueries complicates the issue. > >>> > >>> > >>> Regards! > >>> > >>> Aron Tao > >>> > >>> > >>> JiaTao Tao <t...@apache.org> 于2020年2月19日周三 下午2:17写道: > >>> > >>>> SQL like this: > >>>> ``` > >>>> SELECT T1.NID, > >>>> T1.NAME, > >>>> T2.COMPANY > >>>> FROM > >>>> (SELECT (U.ID +100) AS NID, > >>>> U.NAME AS NAME > >>>> FROM USERS U) T1 > >>>> JOIN > >>>> (SELECT (J.ID +100) AS NID, > >>>> J.COMPANY > >>>> FROM JOBS J) T2 ON T1.NID = T2.NID > >>>> ``` > >>>> What I wanted is that T1.NID comes from USER.ID, T1.NAME comes from > >>>> USER.NAME. > >>>> > >>>> Has anyone done similar work? Is there a ready-made example to refer > >> to? > >>>> > >>>> > >>>> Regards! > >>>> > >>>> Aron Tao > >>>> > >>> > >> > >