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.
---