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]


Reply via email to