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]


Reply via email to