tristaZero commented on issue #8284: URL: https://github.com/apache/shardingsphere/issues/8284#issuecomment-735756045
Hi @junwen12221 , Very appreciated your explanation. Just to follow your last comment, I gave a detailed look at `TranslatableTable` and `ProjectableFilterableTable`. Here is my understanding, `ProjectableFilterableTable` provide some simple interfaces (Nothing to do with rules) to allow users to focus on `project` and `filter` optimization. At the same time `TranslatableTable` gives users the most possibilities to control all the relNode conversions (Optimizations), like `project`, `count()`, `limit` etc. The function of `Rule` is to match and convert `RelNode`. Later, I tried to learn more about plan rules, which is a headache for me. For example, what's the difference between `ConverterRule` and `RelRule`? What are the `CoreRules` and `EnumerableRules` for? Worse still, the document of Calcite is too skimped to get the answer to these questions above. :( I wonder how you master this complicated tool? Are there any links or docs that can teach users more? BTW, do you mind exchanging weChat number? If it is possible, could you send your weChat number to `[email protected]`? No doubt, talking here is still a good way if you like. :) Best, Trista ---------------------------------------------------------------- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. For queries about this service, please contact Infrastructure at: [email protected]
