[ 
https://issues.apache.org/jira/browse/PHOENIX-4996?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16670686#comment-16670686
 ] 

ASF GitHub Bot commented on PHOENIX-4996:
-----------------------------------------

Github user ChinmaySKulkarni commented on the issue:

    https://github.com/apache/phoenix/pull/401
  
    @vincentpoon the problem with that approach is that there are certain 
fields that are set inside `init` and changing those fields would require us to 
change other fields, for example, changing the columns would require us to 
recompute the `estimatedSize`, `pkColumns`, etc. so it's not sufficient to 
return the builder and then just set whatever are the new properties. On top of 
this, the user would need to keep track of the fact that `init` needs to be 
called again after some fields are changed, which is error-prone. I feel that 
we should keep this abstracted away from the user. Let me know what you think. 


> Refactor PTableImpl to use Builder Pattern
> ------------------------------------------
>
>                 Key: PHOENIX-4996
>                 URL: https://issues.apache.org/jira/browse/PHOENIX-4996
>             Project: Phoenix
>          Issue Type: Improvement
>            Reporter: Chinmay Kulkarni
>            Assignee: Chinmay Kulkarni
>            Priority: Major
>         Attachments: PHOENIX-4996.patch
>
>
> Currently _PTableImpl_ has many constructor parameters, overloaded 
> constructors as well as overloaded versions of _makePTable_ which basically 
> creates a new PTable itself. Because of this, constructing new PTable 
> instances is becoming very difficult and error-prone. We should refactor this 
> to use the builder pattern. This will improve usability and readability of 
> the code at the cost of some amount of code repetition due to limitations of 
> the builder pattern itself.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

Reply via email to