You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@carbondata.apache.org by gv...@apache.org on 2018/06/08 11:40:36 UTC
[11/50] [abbrv] carbondata git commit: [CARBONDATA-2493]
DataType.equals() failes for complex types
[CARBONDATA-2493] DataType.equals() failes for complex types
This closes #2319
Project: http://git-wip-us.apache.org/repos/asf/carbondata/repo
Commit: http://git-wip-us.apache.org/repos/asf/carbondata/commit/33941281
Tree: http://git-wip-us.apache.org/repos/asf/carbondata/tree/33941281
Diff: http://git-wip-us.apache.org/repos/asf/carbondata/diff/33941281
Branch: refs/heads/spark-2.3
Commit: 33941281ea3b0e9a3c623179642dd1f41b263551
Parents: 7cba44b
Author: ajantha-bhat <aj...@gmail.com>
Authored: Fri May 18 13:21:33 2018 +0530
Committer: Venkata Ramana G <ra...@huawei.com>
Committed: Mon May 21 23:54:08 2018 +0530
----------------------------------------------------------------------
.../core/metadata/datatype/ArrayType.java | 10 ++++-
.../core/metadata/datatype/DataType.java | 24 ++++++++++++
.../core/metadata/datatype/DecimalType.java | 11 ++++--
.../core/metadata/datatype/MapType.java | 34 +++++++++++++++++
.../core/metadata/datatype/StructField.java | 40 ++++++++++++++++++++
.../core/metadata/datatype/StructType.java | 9 ++++-
6 files changed, 120 insertions(+), 8 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/carbondata/blob/33941281/core/src/main/java/org/apache/carbondata/core/metadata/datatype/ArrayType.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/carbondata/core/metadata/datatype/ArrayType.java b/core/src/main/java/org/apache/carbondata/core/metadata/datatype/ArrayType.java
index 94a4e89..9dea241 100644
--- a/core/src/main/java/org/apache/carbondata/core/metadata/datatype/ArrayType.java
+++ b/core/src/main/java/org/apache/carbondata/core/metadata/datatype/ArrayType.java
@@ -39,10 +39,14 @@ public class ArrayType extends DataType {
if (obj == null) {
return false;
}
- if (!(obj instanceof ArrayType)) {
+ if (getClass() != obj.getClass()) {
return false;
}
- if (!this.getName().equalsIgnoreCase(((ArrayType) obj).getName())) {
+ ArrayType other = (ArrayType) obj;
+ if (!this.getName().equalsIgnoreCase(other.getName())) {
+ return false;
+ }
+ if (!this.getElementType().equals(other.getElementType())) {
return false;
}
return true;
@@ -53,10 +57,12 @@ public class ArrayType extends DataType {
final int prime = 31;
int result = 1;
result = prime * result + getName().hashCode();
+ result = prime * result + getElementType().hashCode();
return result;
}
public DataType getElementType() {
return elementType;
}
+
}
http://git-wip-us.apache.org/repos/asf/carbondata/blob/33941281/core/src/main/java/org/apache/carbondata/core/metadata/datatype/DataType.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/carbondata/core/metadata/datatype/DataType.java b/core/src/main/java/org/apache/carbondata/core/metadata/datatype/DataType.java
index 8e08436..d71f984 100644
--- a/core/src/main/java/org/apache/carbondata/core/metadata/datatype/DataType.java
+++ b/core/src/main/java/org/apache/carbondata/core/metadata/datatype/DataType.java
@@ -115,4 +115,28 @@ public class DataType implements Serializable {
}
}
+ @Override
+ public int hashCode() {
+ final int prime = 31;
+ int result = 1;
+ result = prime * result + getName().hashCode();
+ return result;
+ }
+
+ @Override
+ public boolean equals(Object obj) {
+ if (this == obj) {
+ return true;
+ }
+ if (obj == null) {
+ return false;
+ }
+ if (getClass() != obj.getClass()) {
+ return false;
+ }
+ if (!this.getName().equalsIgnoreCase(((DataType) obj).getName())) {
+ return false;
+ }
+ return true;
+ }
}
http://git-wip-us.apache.org/repos/asf/carbondata/blob/33941281/core/src/main/java/org/apache/carbondata/core/metadata/datatype/DecimalType.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/carbondata/core/metadata/datatype/DecimalType.java b/core/src/main/java/org/apache/carbondata/core/metadata/datatype/DecimalType.java
index 8536222..a7f7a4e 100644
--- a/core/src/main/java/org/apache/carbondata/core/metadata/datatype/DecimalType.java
+++ b/core/src/main/java/org/apache/carbondata/core/metadata/datatype/DecimalType.java
@@ -37,16 +37,17 @@ public class DecimalType extends DataType {
if (obj == null) {
return false;
}
- if (!(obj instanceof DecimalType)) {
+ if (getClass() != obj.getClass()) {
return false;
}
- if (!this.getName().equalsIgnoreCase(((DecimalType) obj).getName())) {
+ DecimalType other = (DecimalType)obj;
+ if (!this.getName().equalsIgnoreCase(other.getName())) {
return false;
}
- if (this.precision != ((DecimalType) obj).precision) {
+ if (this.precision != other.precision) {
return false;
}
- if (this.scale != ((DecimalType) obj).scale) {
+ if (this.scale != other.scale) {
return false;
}
return true;
@@ -57,6 +58,8 @@ public class DecimalType extends DataType {
final int prime = 31;
int result = 1;
result = prime * result + getName().hashCode();
+ result = prime * result + getPrecision();
+ result = prime * result + getScale();
return result;
}
http://git-wip-us.apache.org/repos/asf/carbondata/blob/33941281/core/src/main/java/org/apache/carbondata/core/metadata/datatype/MapType.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/carbondata/core/metadata/datatype/MapType.java b/core/src/main/java/org/apache/carbondata/core/metadata/datatype/MapType.java
index 69d49b8..47e536a 100644
--- a/core/src/main/java/org/apache/carbondata/core/metadata/datatype/MapType.java
+++ b/core/src/main/java/org/apache/carbondata/core/metadata/datatype/MapType.java
@@ -32,4 +32,38 @@ public class MapType extends DataType {
public boolean isComplexType() {
return true;
}
+
+ @Override
+ public boolean equals(Object obj) {
+ if (this == obj) {
+ return true;
+ }
+ if (obj == null) {
+ return false;
+ }
+ if (getClass() != obj.getClass()) {
+ return false;
+ }
+ MapType other = (MapType) obj;
+ if (!this.getName().equalsIgnoreCase(other.getName())) {
+ return false;
+ }
+ if (!this.keyType.equals(other.keyType)) {
+ return false;
+ }
+ if (!this.valueType.equals(other.valueType)) {
+ return false;
+ }
+ return true;
+ }
+
+ @Override
+ public int hashCode() {
+ final int prime = 31;
+ int result = 1;
+ result = prime * result + getName().hashCode();
+ result = prime * result + keyType.hashCode();
+ result = prime * result + valueType.hashCode();
+ return result;
+ }
}
http://git-wip-us.apache.org/repos/asf/carbondata/blob/33941281/core/src/main/java/org/apache/carbondata/core/metadata/datatype/StructField.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/carbondata/core/metadata/datatype/StructField.java b/core/src/main/java/org/apache/carbondata/core/metadata/datatype/StructField.java
index bfca057..c076f69 100644
--- a/core/src/main/java/org/apache/carbondata/core/metadata/datatype/StructField.java
+++ b/core/src/main/java/org/apache/carbondata/core/metadata/datatype/StructField.java
@@ -54,4 +54,44 @@ public class StructField implements Serializable {
public List<StructField> getChildren() {
return children;
}
+
+ @Override
+ public int hashCode() {
+ final int prime = 31;
+ int result = 1;
+ result = prime * result + fieldName.hashCode();
+ result = prime * result + dataType.hashCode();
+ result = prime * result + ((children == null) ? 0 : children.hashCode());
+ return result;
+ }
+
+ @Override
+ public boolean equals(Object obj) {
+ if (this == obj) {
+ return true;
+ }
+ if (obj == null) {
+ return false;
+ }
+ if (getClass() != obj.getClass()) {
+ return false;
+ }
+ StructField other = (StructField) obj;
+ if (!this.fieldName.equalsIgnoreCase(other.fieldName)) {
+ return false;
+ }
+ if (!this.dataType.equals(other.dataType)) {
+ return false;
+ }
+ if (children == null) {
+ if (other.children != null) {
+ return false;
+ }
+ } else if (other.children == null) {
+ return false;
+ } else if (!children.equals(other.children)) {
+ return false;
+ }
+ return true;
+ }
}
http://git-wip-us.apache.org/repos/asf/carbondata/blob/33941281/core/src/main/java/org/apache/carbondata/core/metadata/datatype/StructType.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/carbondata/core/metadata/datatype/StructType.java b/core/src/main/java/org/apache/carbondata/core/metadata/datatype/StructType.java
index 90b7374..e8559b2 100644
--- a/core/src/main/java/org/apache/carbondata/core/metadata/datatype/StructType.java
+++ b/core/src/main/java/org/apache/carbondata/core/metadata/datatype/StructType.java
@@ -41,10 +41,14 @@ public class StructType extends DataType {
if (obj == null) {
return false;
}
- if (!(obj instanceof StructType)) {
+ if (getClass() != obj.getClass()) {
return false;
}
- if (!this.getName().equalsIgnoreCase(((StructType) obj).getName())) {
+ StructType other = (StructType) obj;
+ if (!this.getName().equalsIgnoreCase(other.getName())) {
+ return false;
+ }
+ if (!this.getFields().equals(other.getFields())) {
return false;
}
return true;
@@ -55,6 +59,7 @@ public class StructType extends DataType {
final int prime = 31;
int result = 1;
result = prime * result + getName().hashCode();
+ result = prime * result + getFields().hashCode();
return result;
}