BELUGA BEHR created HIVE-16890:
----------------------------------

             Summary: org.apache.hadoop.hive.serde2.io.HiveVarcharWritable - 
Adds Superfluous Wrapper
                 Key: HIVE-16890
                 URL: https://issues.apache.org/jira/browse/HIVE-16890
             Project: Hive
          Issue Type: Improvement
          Components: Serializers/Deserializers
            Reporter: BELUGA BEHR
            Priority: Trivial


Class {{org.apache.hadoop.hive.serde2.io.HiveVarcharWritable}} creates a 
superfluous wrapper and then immediately unwraps it.  Don't bother wrapping in 
this scenario.

{code}
  public void set(HiveVarchar val, int len) {
    set(val.getValue(), len);
  }

  public void set(String val, int maxLength) {
    value.set(HiveBaseChar.enforceMaxLength(val, maxLength));
  }

  public HiveVarchar getHiveVarchar() {
    return new HiveVarchar(value.toString(), -1);
  }

  // Here calls getHiveVarchar() which creates a new HiveVarchar object with a 
string in it
  // The object is passed to set(HiveVarchar val, int len)
  //  The string is pulled out
  public void enforceMaxLength(int maxLength) {
    // Might be possible to truncate the existing Text value, for now just do 
something simple.
    if (value.getLength()>maxLength && getCharacterLength()>maxLength)
      set(getHiveVarchar(), maxLength);
  }
{code}



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)

Reply via email to