DRILL-650: Left outer join sometimes fails sometimes with Failure while setting up Foreman error
Project: http://git-wip-us.apache.org/repos/asf/incubator-drill/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-drill/commit/65f6bcbf Tree: http://git-wip-us.apache.org/repos/asf/incubator-drill/tree/65f6bcbf Diff: http://git-wip-us.apache.org/repos/asf/incubator-drill/diff/65f6bcbf Branch: refs/heads/master Commit: 65f6bcbfc32a8dd3c69e1de127ad79ece0556b20 Parents: 4d13046 Author: Aditya Kishore <[email protected]> Authored: Fri Jun 20 07:18:35 2014 -0700 Committer: Jacques Nadeau <[email protected]> Committed: Fri Jun 20 10:58:10 2014 -0700 ---------------------------------------------------------------------- .../planner/types/RelDataTypeDrillImpl.java | 23 ++++++++++++++++++++ .../exec/planner/types/RelDataTypeHolder.java | 15 ++++++++++++- 2 files changed, 37 insertions(+), 1 deletion(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-drill/blob/65f6bcbf/exec/java-exec/src/main/java/org/apache/drill/exec/planner/types/RelDataTypeDrillImpl.java ---------------------------------------------------------------------- diff --git a/exec/java-exec/src/main/java/org/apache/drill/exec/planner/types/RelDataTypeDrillImpl.java b/exec/java-exec/src/main/java/org/apache/drill/exec/planner/types/RelDataTypeDrillImpl.java index 0f3c24f..bb97992 100644 --- a/exec/java-exec/src/main/java/org/apache/drill/exec/planner/types/RelDataTypeDrillImpl.java +++ b/exec/java-exec/src/main/java/org/apache/drill/exec/planner/types/RelDataTypeDrillImpl.java @@ -84,4 +84,27 @@ public class RelDataTypeDrillImpl extends RelDataTypeImpl { public boolean isStruct() { return true; } + + @Override + public int hashCode() { + return holder == null ? 0 : holder.hashCode(); + } + + @Override + public boolean equals(Object obj) { + if (this == obj) + return true; + if (!super.equals(obj)) + return false; + if (getClass() != obj.getClass()) + return false; + RelDataTypeDrillImpl other = (RelDataTypeDrillImpl) obj; + if (holder == null) { + if (other.holder != null) + return false; + } else if (!holder.equals(other.holder)) + return false; + return true; + } + } \ No newline at end of file http://git-wip-us.apache.org/repos/asf/incubator-drill/blob/65f6bcbf/exec/java-exec/src/main/java/org/apache/drill/exec/planner/types/RelDataTypeHolder.java ---------------------------------------------------------------------- diff --git a/exec/java-exec/src/main/java/org/apache/drill/exec/planner/types/RelDataTypeHolder.java b/exec/java-exec/src/main/java/org/apache/drill/exec/planner/types/RelDataTypeHolder.java index 201e520..1485aa3 100644 --- a/exec/java-exec/src/main/java/org/apache/drill/exec/planner/types/RelDataTypeHolder.java +++ b/exec/java-exec/src/main/java/org/apache/drill/exec/planner/types/RelDataTypeHolder.java @@ -34,7 +34,6 @@ public class RelDataTypeHolder { private RelDataTypeFactory typeFactory; public List<RelDataTypeField> getFieldList(RelDataTypeFactory typeFactory) { - addStarIfEmpty(typeFactory); return fields; } @@ -81,4 +80,18 @@ public class RelDataTypeHolder { this.typeFactory = typeFactory; } + @Override + public int hashCode() { + return System.identityHashCode(this); + } + + @Override + public boolean equals(Object obj) { + return (this == obj); + } + + private List<RelDataTypeField> getFieldList() { + return getFieldList(this.typeFactory); + } + }
