liyafan82 opened a new pull request #2120: URL: https://github.com/apache/calcite/pull/2120
According to the current code base, the only way to create AggregateCall objects is by calling one of the two AggregateCall#create methods (other create methods are deprecated). The two create methods have 9 and 11 parameters, respectively, 3 of which are booleans and 2 are ints. We find this makes the code less readable and error-prone, as some bugs are caused by specifying the wrong parameters. In this issue, we improve the related logic by the builder pattern, which results in the following benefits: 1. By creating the objects by the builder pattern, there is no need to maintain multiple overrides of the create methods. 2. There is no need to maintain multiple overrides of the copy methods, either. 3. The code becomes more readable and less error-prone, as it is less like to specify the wrong parameter. 4. Creating AggregateCall objects becomes easier, as the user does not have specify the default parameters repeatedly. Options ---------------------------------------------------------------- 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]
