Github user wgtmac commented on a diff in the pull request:

    https://github.com/apache/orc/pull/116#discussion_r114469297
  
    --- Diff: c++/src/Statistics.hh ---
    @@ -41,49 +41,181 @@ namespace orc {
       };
     
     /**
    + * Internal Statistics Implementation
    + */
    +
    +  template <typename T>
    +  class InternalStatisticsImpl {
    +  private:
    +    bool hasNull_;
    +    bool hasMinimum_;
    +    bool hasMaximum_;
    +    bool hasSum_;
    +    bool hasTotalLength_;
    +    uint64_t totalLength_;
    +    uint64_t valueCount_;
    +    T minimum_;
    +    T maximum_;
    +    T sum_;
    +  public:
    +    InternalStatisticsImpl() {
    +      hasNull_ = false;
    +      hasMinimum_ = false;
    +      hasMaximum_ = false;
    +      hasSum_ = false;
    +      hasTotalLength_ = false;
    +      totalLength_ = -1;
    --- End diff --
    
    If I add a function called void update(std::string str) for 
StringColumnStatistics to update string stats and it will see problem. For the 
first string, it needs to change totalLength_ to its length. For the following 
strings we use addition. This works but the code is not elegant. 
    
    Similarly, if I add a function called void increase(uint64_t count), the 
same thing happens. I think making default value to 0 is more cleaner in these 
cases.


---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at [email protected] or file a JIRA ticket
with INFRA.
---

Reply via email to