You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hive.apache.org by su...@apache.org on 2016/12/02 21:26:02 UTC
hive git commit: HIVE-15130: Fixing shifting index issue related to
object inspector caching (Chao Sun, reviewed by Ferdinand Xu)
Repository: hive
Updated Branches:
refs/heads/master 7065407e6 -> 98a25f2d8
HIVE-15130: Fixing shifting index issue related to object inspector caching (Chao Sun, reviewed by Ferdinand Xu)
Project: http://git-wip-us.apache.org/repos/asf/hive/repo
Commit: http://git-wip-us.apache.org/repos/asf/hive/commit/98a25f2d
Tree: http://git-wip-us.apache.org/repos/asf/hive/tree/98a25f2d
Diff: http://git-wip-us.apache.org/repos/asf/hive/diff/98a25f2d
Branch: refs/heads/master
Commit: 98a25f2d831ab27e174bc99792047eaa8ec08b82
Parents: 7065407
Author: Chao Sun <su...@apache.org>
Authored: Fri Dec 2 13:25:45 2016 -0800
Committer: Chao Sun <su...@apache.org>
Committed: Fri Dec 2 13:25:45 2016 -0800
----------------------------------------------------------------------
.../serde/ArrayWritableObjectInspector.java | 64 ++++++++++++++++----
1 file changed, 53 insertions(+), 11 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/hive/blob/98a25f2d/ql/src/java/org/apache/hadoop/hive/ql/io/parquet/serde/ArrayWritableObjectInspector.java
----------------------------------------------------------------------
diff --git a/ql/src/java/org/apache/hadoop/hive/ql/io/parquet/serde/ArrayWritableObjectInspector.java b/ql/src/java/org/apache/hadoop/hive/ql/io/parquet/serde/ArrayWritableObjectInspector.java
index 8df0cc1..d4f20fc 100644
--- a/ql/src/java/org/apache/hadoop/hive/ql/io/parquet/serde/ArrayWritableObjectInspector.java
+++ b/ql/src/java/org/apache/hadoop/hive/ql/io/parquet/serde/ArrayWritableObjectInspector.java
@@ -222,29 +222,39 @@ public class ArrayWritableObjectInspector extends SettableStructObjectInspector
}
@Override
- public boolean equals(Object obj) {
- if (obj == null) {
- return false;
+ public boolean equals(Object o) {
+ if (this == o) {
+ return true;
}
- if (getClass() != obj.getClass()) {
+ if (o == null || getClass() != o.getClass()) {
return false;
}
- final ArrayWritableObjectInspector other = (ArrayWritableObjectInspector) obj;
- if (this.typeInfo != other.typeInfo && (this.typeInfo == null || !this.typeInfo.equals(other.typeInfo))) {
+
+ ArrayWritableObjectInspector that = (ArrayWritableObjectInspector) o;
+
+ if (isRoot != that.isRoot ||
+ (typeInfo != null ? !typeInfo.equals(that.typeInfo) : that.typeInfo != null) ||
+ (fieldInfos != null ? !fieldInfos.equals(that.fieldInfos) : that.fieldInfos != null) ||
+ (fieldNames != null ? !fieldNames.equals(that.fieldNames) : that.fieldNames != null) ||
+ (fields != null ? !fields.equals(that.fields) : that.fields != null)) {
return false;
}
- return true;
+
+ return fieldsByName != null ? fieldsByName.equals(that.fieldsByName) : that.fieldsByName == null;
}
@Override
public int hashCode() {
- int hash = 5;
- hash = 29 * hash + (this.typeInfo != null ? this.typeInfo.hashCode() : 0);
- return hash;
+ int result = typeInfo != null ? typeInfo.hashCode() : 0;
+ result = 31 * result + (fieldInfos != null ? fieldInfos.hashCode() : 0);
+ result = 31 * result + (fieldNames != null ? fieldNames.hashCode() : 0);
+ result = 31 * result + (fields != null ? fields.hashCode() : 0);
+ result = 31 * result + (fieldsByName != null ? fieldsByName.hashCode() : 0);
+ result = 31 * result + (isRoot ? 1 : 0);
+ return result;
}
private class StructFieldImpl implements StructField {
-
private final String name;
private final ObjectInspector inspector;
private final int index;
@@ -288,5 +298,37 @@ public class ArrayWritableObjectInspector extends SettableStructObjectInspector
public int getFieldID() {
return index;
}
+
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (o == null || getClass() != o.getClass()) {
+ return false;
+ }
+
+ StructFieldImpl that = (StructFieldImpl) o;
+
+ if (index != that.index) {
+ return false;
+ }
+ if (adjustedIndex != that.adjustedIndex) {
+ return false;
+ }
+ if (name != null ? !name.equals(that.name) : that.name != null) {
+ return false;
+ }
+ return inspector != null ? inspector.equals(that.inspector) : that.inspector == null;
+ }
+
+ @Override
+ public int hashCode() {
+ int result = name != null ? name.hashCode() : 0;
+ result = 31 * result + (inspector != null ? inspector.hashCode() : 0);
+ result = 31 * result + index;
+ result = 31 * result + adjustedIndex;
+ return result;
+ }
}
}