Yes, it is a good idea to get `shardingsphere-query-optimizer` module into 'Open Source Promotion Plan - Summer 2020', but this task is pretty difficult for students. We need to discuss more details about this task. I just post some questions to make the task more clear.
1. What kind of SQL can be pushed down? 2. How to recognize the SQL pattern for pushdown SQL? 3. What is the interface to process current route module and calcite? 4. How to evaluate the performance improvement of predicate pushdown? ------------------ Liang Zhang (John) Apache ShardingSphere & Dubbo 蒋晓峰 <[email protected]> 于2020年5月18日周一 下午8:44写道: > Hi Community, > Module `shardingsphere-query-optimizer` is designed to process SQL Query > Optimizer. I prefer use Apache Calcite to recognize SQL like subquery, join > query cross actual databases, etc. which couldn't execute to databases > directly. Common optimization rules include Predicate Pushdown, Constant > Folding, and Column Pruning etc. which have implementation in HepPlanner > and VolcanoPlanner of Calcite. In my opinion, > `shardingsphere-query-optimizer` module could be one of task topics for > 'Open Source Promotion Plan - Summer 2020', which includes tasks for reuse > optimization rules of HepPlanner and VolcanoPlanner to optimize partial SQL > in ShardingSphere for performance improvement. Through previous experience > using Calcite with Flink SQL, I'd like to support > `shardingsphere-query-optimizer` module, welcome anyone to work on this > module together. > > Thanks, > Nicholas Jiang >
