Thanks, Julian I can see the fields in RelRoot, and I'm a little confused, I want to use RelVisitor to visit the RelNode, and here comes the RelRoot, any advice to deal with RelRoot when using RelVisitor?
Regards! Aron Tao Julian Hyde <[email protected]> 于2020年3月5日周四 上午2:03写道: > There is a class RelRoot that wraps the top-most RelNode, and projects > away columns that are only used for sorting. Read through > https://issues.apache.org/jira/browse/CALCITE-2999 < > https://issues.apache.org/jira/browse/CALCITE-2999>, where someone had > the same misunderstanding that you have. > > > > On Mar 4, 2020, at 3:43 AM, JiaTao Tao <[email protected]> wrote: > > > > SQL; > > ``` > > SELECT u.ID, u.NAME > > FROM USERS u > > ORDER BY u.AGE > > ``` > > > > PLAN: > > ``` > > LogicalSort(sort0=[$2], dir0=[ASC]) > > LogicalProject(ID=[$0], NAME=[$1], AGE=[$2]) > > EnumerableTableScan(table=[[RECR, USERS]]) > > ``` > > Plan's row type: RecordType(INTEGER ID, VARCHAR NAME, INTEGER AGE) > > > > But the SQL only project ID and NAME, there should be a LogicalProject > > (ID, NAME) on LogicalSort. Is this by design? And what about this extra > > column? > > > > > > > > Regards! > > > > Aron Tao > >
