Re: How can I convert a BindableTableScan with projects and Fitlers back to a Rel Tree with a project node, a filter node and a tablescan node?

2022-08-23 Thread Jiajun Xie
Pranav, there are `QueryExecution` that holding logicalPlan, optimizedPlan and sparkPlan(physical) in Spark: https://github.com/apache/spark/blob/master/sql/core/src/main/scala/org/apache/spark/sql/execution/QueryExecution.scala In fact, my code is similar to it. I have an object holding

Re: How can I convert a BindableTableScan with projects and Fitlers back to a Rel Tree with a project node, a filter node and a tablescan node?

2022-08-23 Thread Benchao Li
Pranav, There is a doc[1] which talks about how to write a rule. You can also take a look at existing rules such as FilterTableScanRule[2], ProjectTableScanRule[3] for reference. [1] https://calcite.apache.org/docs/howto.html#create-a-planner-rule [2]

Re: How can I convert a BindableTableScan with projects and Fitlers back to a Rel Tree with a project node, a filter node and a tablescan node?

2022-08-22 Thread Pranav Deshpande
Hi Benchao, Thank you very much for referring me to this document. Could you please provide me with a pointer on how to write the optimizer rule(s) you mentioned in part I of your answer? Regards, Pranav On Sat, Aug 20, 2022 at 11:35 PM Benchao Li wrote: > I agree that a separate planner rule

Re: How can I convert a BindableTableScan with projects and Fitlers back to a Rel Tree with a project node, a filter node and a tablescan node?

2022-08-22 Thread Pranav Deshpande
Thank you Stamatis, I will take a look at the same. Regards, Pranav On Mon, Aug 22, 2022 at 8:36 AM Stamatis Zampetakis wrote: > There is a utility (ToLogicalConverter[1]) to convert some kinds of plans > to logical equivalents. However, the way it is right now it cannot handle > your

Re: How can I convert a BindableTableScan with projects and Fitlers back to a Rel Tree with a project node, a filter node and a tablescan node?

2022-08-22 Thread Pranav Deshpande
Hi Jiajun Xie, Thank you. Is there any open source reference for the code you are mentioning? Regards, Pranav On Sat, Aug 20, 2022 at 9:00 PM Jiajun Xie wrote: > Agree with Hyde, there are many problems when converting a physical > RelNode directly to SQL. For example, >

Re: How can I convert a BindableTableScan with projects and Fitlers back to a Rel Tree with a project node, a filter node and a tablescan node?

2022-08-22 Thread Stamatis Zampetakis
There is a utility (ToLogicalConverter[1]) to convert some kinds of plans to logical equivalents. However, the way it is right now it cannot handle your use-case. Since it handles some Enumerable operators, it wouldn't be surprising to support a few Bindable as well, although I would agree that

Re: How can I convert a BindableTableScan with projects and Fitlers back to a Rel Tree with a project node, a filter node and a tablescan node?

2022-08-20 Thread Benchao Li
I agree that a separate planner rule is better. Besides, if you are constructing the optimizing rules by yourself in your project, you can avoid this by not adding `FilterTableScanRule` and `ProjectTableScanRule`. Pranav, there is a doc[1] about how to contribute to Calcite. [1]

Re: How can I convert a BindableTableScan with projects and Fitlers back to a Rel Tree with a project node, a filter node and a tablescan node?

2022-08-20 Thread Jiajun Xie
Agree with Hyde, there are many problems when converting a physical RelNode directly to SQL. For example, https://issues.apache.org/jira/browse/CALCITE-2915 In my project, I have an object holding Logical RelNode and Physical RelNode. When I want to convert sql, I can use Logical RelNode. I

Re: How can I convert a BindableTableScan with projects and Fitlers back to a Rel Tree with a project node, a filter node and a tablescan node?

2022-08-20 Thread Julian Hyde
It doesn’t seem quite right to convert a physical RelNode directly to SQL. It’s probably better to map it back to logical RelNode(s) first. I don’t know whether we have the software to do that mapping. If we don’t, consider using planner rules. They’re often the right way in Calcite. Julian

Re: How can I convert a BindableTableScan with projects and Fitlers back to a Rel Tree with a project node, a filter node and a tablescan node?

2022-08-20 Thread Pranav Deshpande
Hi Bencaho, Thank you very much for your reply. Could you please tell me the procedure to create this issue on JIRA? Thanks & Regards, Pranav On Fri, Aug 19, 2022 at 11:13 PM Benchao Li wrote: > Pranav, > > This is a good question. To me, I would take this as a bug, and we could > improve the

Re: How can I convert a BindableTableScan with projects and Fitlers back to a Rel Tree with a project node, a filter node and a tablescan node?

2022-08-20 Thread Jiajun Xie
Hi benchao, I want to fix the bug, can I log a jira issue? On Sat, 20 Aug 2022 at 11:13, Benchao Li wrote: > Pranav, > > This is a good question. To me, I would take this as a bug, and we could > improve the > RelToSqlConverter to treat BindableTableScan specially. > Could you please help log

Re: How can I convert a BindableTableScan with projects and Fitlers back to a Rel Tree with a project node, a filter node and a tablescan node?

2022-08-19 Thread Benchao Li
Pranav, This is a good question. To me, I would take this as a bug, and we could improve the RelToSqlConverter to treat BindableTableScan specially. Could you please help log a Jira issue? Contributions are welcome! Pranav Deshpande 于2022年8月20日周六 02:13写道: > Hi Team, > How can I convert a

How can I convert a BindableTableScan with projects and Fitlers back to a Rel Tree with a project node, a filter node and a tablescan node?

2022-08-19 Thread Pranav Deshpande
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 >