diff --git serde/src/java/org/apache/hadoop/hive/serde2/io/HiveCharWritable.java serde/src/java/org/apache/hadoop/hive/serde2/io/HiveCharWritable.java index 2aaa90c..2236a87 100644 --- serde/src/java/org/apache/hadoop/hive/serde2/io/HiveCharWritable.java +++ serde/src/java/org/apache/hadoop/hive/serde2/io/HiveCharWritable.java @@ -73,7 +73,8 @@ public HiveChar getHiveChar() { } public void enforceMaxLength(int maxLength) { - set(getHiveChar(), maxLength); + if (getCharacterLength()!=maxLength) + set(getHiveChar(), maxLength); } public Text getStrippedValue() { diff --git serde/src/java/org/apache/hadoop/hive/serde2/io/HiveVarcharWritable.java serde/src/java/org/apache/hadoop/hive/serde2/io/HiveVarcharWritable.java index 2e24730..ae53bec 100644 --- serde/src/java/org/apache/hadoop/hive/serde2/io/HiveVarcharWritable.java +++ serde/src/java/org/apache/hadoop/hive/serde2/io/HiveVarcharWritable.java @@ -65,7 +65,8 @@ public HiveVarchar getHiveVarchar() { public void enforceMaxLength(int maxLength) { // Might be possible to truncate the existing Text value, for now just do something simple. - set(getHiveVarchar(), maxLength); + if (value.getLength()>maxLength && getCharacterLength()>maxLength) + set(getHiveVarchar(), maxLength); } @Override