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 >>>> >>> >>