Hi Team, How can I convert a BindableTableScan with projects and Filters back to a RelTree with a project node, a filter node and a tablescan node?
I am doing this because I encountered the following issue (steps detailed below). 1. I have a query:eg. Select colA, colB from myTable where colA > 1; 2. The logical plan for this is a filter on top of a project on top of a TableScan. 3. If the table we created is a ProjectableFilterableTable and we have added the ProjectTableScan rule etc., then after optimization we have a single node which is a tablescan that contains filters and project and can be executed by the bindable convention. 4. If I convert this node to a SQL, I get the wrong SQL. To get a SQL, I do the following: RelToSqlConverter converter = new RelToSqlConverter(SqlDialect.DatabaseProduct.CALCITE.getDialect()); SqlNode sqlNode = converter.visitRoot(rablescan).asStatement(); This only gives me Select * from myTable; However, if I only have a ScannableTable and we haven't added the ProjectTableScan rule etc. then for the physical plan we also get a BindableFilter on top of a BindableProject on top of a BindableTablescan. If i convert this back using the same code then I get the correct statement back: Select colA, colB from myTable where colA > 1 Hence I would like to know how to convert a BindableTableScan with projects and Filters back to a RelTree with a project node, a filter node and a tablescan node & would appreciate the community's help on the same. Thanks & Regards, Pranav
