Hi Stamatis, Thanks for your great work!
Calcite is very good at semantic transformation of relational algebra. In the process of the project, users can optimize relational algebra by implementing RelOptRule or RelShuttle and so on, so as to bring relational algebra into physical query engine. Another point is the construction of materialized view recognition framework, which realizes the ability of materialized view recognition of common relational algebra. The expression of relational algebra is very flexible, and it can do better in identifying various materialized views. +1 for voting Haisheng. Best, Zhaohui Xu ------------------ ???????? ------------------ ??????: "dev" <zabe...@gmail.com>; ????????: 2020??11??5??(??????) ????6:26 ??????: "dev"<dev@calcite.apache.org>; ????: [DISCUSS] State of the project 2020 Hi Calcite community members, A bit more than five years ago (October 22, 2015) Calcite graduated to a top-level Apache project[1]. At that time, the community decided to have an annual ??state of the project?? discussion and to vote for a new PMC chair/VP[2]. So, I??m kicking off both of those discussions. I think it was an excellent year so far in many aspects. We were lucky to have many high quality contributions including: notable improvements in the Volcano planner (for speed, plan quality, extensibility) bringing it a bit closer to Cascades and Columbia [6, 7, 8, 9]; easier and more extensible parameterization of rules [3]; new dialects such as ClickHouse [4], and Presto [5]; support for SQL hints [10]; new adapters for querying Redis [11] and InnoDB [12] through Calcite; various enhancements in streaming SQL. The previous list is by no means exhaustive. Apart from the new features, certainly worth mentioning is the modernization of the build and test infrastructure (for both Calcite and Avatica), with the migration from maven to gradle, JUnit4 to JUnit5, and the introduction of GitHub actions as part of the CI. In terms of CI, I am happy to see a few more integration tests (IT) running on a regular basis on GitHub. Eventually, it will be nice to have even more IT tests to help us catch regressions early on and improve the quality of our releases. We wouldn??t have so many great contributions, if we didn??t also have prolific contributors. Our community has grown with Danny, Haisheng, Ruben, joining the PMC, Forward, Xing, Vineet, Yanlin, Feng, Rui, joining as committers, and many more people chiming in discussions, reviews, and submitting pull requests, who are not yet committers but I??m sure some of whom will become in the near future. We have had five Calcite releases (1.22.0 to 1.26.0), one Avatica release (1.17.0), and one Avatica Go (5.0.0) so far in 2020, and I think that is a great tempo that we should strive to maintain in the years to come. One thing to improve is the poor implication of other people than Francis on the Avatica side; the rest of us, putting myself first, should try to be more involved by reviewing PRs, preparing releases, voting etc. It was nice to see our community members giving talks to conferences such as ApacheCon, and Flink Forward presenting Calcite and/or its application. Some of us have also done presentations in universities in order to introduce Calcite to the next generation of computer engineers. One or two conferences per year is a good number but it would be even better if we could increase this frequency. There are still many people, especially younger engineers, who are not aware of Calcite (at least this is the impression that I get by speaking with people in Europe) and we should be more active on the project??s dissemination. Calcite is a very versatile library/framework that can be used in many contexts. On one side, it is used in many production systems and utility apps with the most recent adopters being Hazelcast, Ignite, SuperSQL (Tencent), and NeuroBlade. On the other side, its adoption in research projects and teaching could be boosted. Every university has multiple projects and courses around databases and data integration where Calcite could be a good fit. Over the past few years we always had problems with reviewing pull requests and I don??t think we made much progress on this aspect. In our last discussion around this topic, Julian suggested introducing some metrics and giving credit to those people that are doing the most in this area, and we all agreed to do so. Any ideas on improving this situation are highly appreciated. Calcite is a vivid community and we are lucky to participate in many fruitful discussions. Of course, in every community there is some friction from time to time and the same goes for Calcite. It is a bit unrealistic to claim that we can eliminate it entirely but we can try to reduce it, by being more attentive and patient. Being PMC chair was a big learning experience for me and I am very grateful for the opportunity that was given to me. It is certainly among the things that I am most proud of and I would like to thank everyone who trusted and helped me in this role. Last but not least, we should discuss who should be the new PMC chair of Calcite after I step down in December. I would like to nominate Haisheng Yuan as the first candidate in the vote. Apart from many high quality contributions, Haisheng has reviewed a big amount of PRs, and led many technical discussions to consensus. Haisheng has been in the community for a while and I believe he will be a great chair if he is willing to accept. To conclude, I will repeat the questions from previous years: 1) What else are we doing well in the project? 2) What areas do we need to do better? 3) Which other candidates should we consider for PMC chair? Please take some time to share your thoughts! Note that this discussion is for everyone; even if you have never sent an email to the list before now it is a good time to do so :) Best, Stamatis [1] http://calcite.apache.org/news/2015/10/22/calcite-graduates/ [2] http://mail-archives.apache.org/mod_mbox/incubator-calcite-dev/201509.mbox/%3CCF8D6F96-706F-4502-B41D-0689E357209D%40apache.org%3E [3] https://issues.apache.org/jira/browse/CALCITE-3923 [4] https://issues.apache.org/jira/browse/CALCITE-3724 [5] https://issues.apache.org/jira/browse/CALCITE-2157 [6] https://issues.apache.org/jira/browse/CALCITE-3916 [7] https://issues.apache.org/jira/browse/CALCITE-3896 [8] https://issues.apache.org/jira/browse/CALCITE-3753 [9] https://issues.apache.org/jira/browse/CALCITE-2970 [10] https://issues.apache.org/jira/browse/CALCITE-482 [11] https://issues.apache.org/jira/browse/CALCITE-3510 [12] https://issues.apache.org/jira/browse/CALCITE-4034