Liya Fan>is it possible to break the PR into a number of small ones? I can split the commit in two for review-only purposes: a commit that refactors the code, and the second commit that adds @Nullable annotations. Here you go: https://github.com/apache/calcite/pull/2273 (see [CALCITE-4199] Refactor: prepare code for nullability annotations) The "refactor" commit is still big though (757 files changed, 7487 insertions(+), 3827 deletions(-))
--- I tried logging findings as individual issues under CALCITE-4199, however, that resulted in quite an unfriendly "stop doing that" feedback from Julian (see [1]). * Nobody expressed "please create more of these" * It takes me time to create each ticket * That is why I stopped creating tickets and now I perform the refactoring as I add nullability annotations I would be glad if Julian admits the nullness checker finds useful bugs (e.g. see npeTest in [2], [3], etc). It would be great if Julian refrains from false allegations against me (e.g. "Vladimir has been trying to fix things that aren’t broken". "He did not leave time for anyone to review", etc, etc). I have provided countless samples when the nullness checker detects true bugs, and the detected bugs are both in old and in the recently added code. For instance, the recent discussion on SEARCH vs nullness (see [4]) was triggered by myself trying to rebase nullness annotations on top of Calcite 1.26. Search/Sarg failed nullness in a non-trivial way, and I asked Julian to fix the code. [1]: https://lists.apache.org/thread.html/rf2ee66ad385624a35829a4ce092ff13797e812e03abb80cb45b33421%40%3Cdev.calcite.apache.org%3E [2]: https://lists.apache.org/thread.html/rf863922cf4418f994a123ecbbb624a74e6e375aa421a4a7812ce52b0%40%3Cdev.calcite.apache.org%3E [3]: https://issues.apache.org/jira/browse/CALCITE-4234 [4]: https://lists.apache.org/thread.html/rce6e84d0e0cd5a227d64c9f670b43650833f43e0cbccb80e04f5e0cf%40%3Cdev.calcite.apache.org%3E Vladimir
