You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@drill.apache.org by me...@apache.org on 2015/08/04 02:30:54 UTC
drill git commit: DRILL-3554: Given types timestamp and time,
implicit casting casts them to time
Repository: drill
Updated Branches:
refs/heads/master 6d5d7cc27 -> 357d0202c
DRILL-3554: Given types timestamp and time, implicit casting casts them to time
Project: http://git-wip-us.apache.org/repos/asf/drill/repo
Commit: http://git-wip-us.apache.org/repos/asf/drill/commit/357d0202
Tree: http://git-wip-us.apache.org/repos/asf/drill/tree/357d0202
Diff: http://git-wip-us.apache.org/repos/asf/drill/diff/357d0202
Branch: refs/heads/master
Commit: 357d0202cc6197921cfa50ccfcd39e2925362bce
Parents: 6d5d7cc
Author: Hsuan-Yi Chu <hs...@usc.edu>
Authored: Mon Jul 27 12:12:35 2015 -0700
Committer: Hsuan-Yi Chu <hs...@usc.edu>
Committed: Sun Aug 2 16:35:13 2015 -0700
----------------------------------------------------------------------
.../exec/resolver/ResolverTypePrecedence.java | 2 +-
.../drill/exec/resolver/TypeCastRules.java | 3 +-
.../org/apache/drill/TestImplicitCasting.java | 41 ++++++++++++++++++++
3 files changed, 43 insertions(+), 3 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/drill/blob/357d0202/exec/java-exec/src/main/java/org/apache/drill/exec/resolver/ResolverTypePrecedence.java
----------------------------------------------------------------------
diff --git a/exec/java-exec/src/main/java/org/apache/drill/exec/resolver/ResolverTypePrecedence.java b/exec/java-exec/src/main/java/org/apache/drill/exec/resolver/ResolverTypePrecedence.java
index ea3155d..29dd6a5 100644
--- a/exec/java-exec/src/main/java/org/apache/drill/exec/resolver/ResolverTypePrecedence.java
+++ b/exec/java-exec/src/main/java/org/apache/drill/exec/resolver/ResolverTypePrecedence.java
@@ -69,11 +69,11 @@ public class ResolverTypePrecedence {
precedenceMap.put(MinorType.DECIMAL38DENSE, i += 2);
precedenceMap.put(MinorType.DECIMAL38SPARSE, i += 2);
precedenceMap.put(MinorType.FLOAT8, i += 2);
- precedenceMap.put(MinorType.TIME, i += 2);
precedenceMap.put(MinorType.DATE, i += 2);
precedenceMap.put(MinorType.TIMESTAMP, i += 2);
precedenceMap.put(MinorType.TIMETZ, i += 2);
precedenceMap.put(MinorType.TIMESTAMPTZ, i += 2);
+ precedenceMap.put(MinorType.TIME, i += 2);
precedenceMap.put(MinorType.INTERVALDAY, i+= 2);
precedenceMap.put(MinorType.INTERVALYEAR, i+= 2);
precedenceMap.put(MinorType.INTERVAL, i+= 2);
http://git-wip-us.apache.org/repos/asf/drill/blob/357d0202/exec/java-exec/src/main/java/org/apache/drill/exec/resolver/TypeCastRules.java
----------------------------------------------------------------------
diff --git a/exec/java-exec/src/main/java/org/apache/drill/exec/resolver/TypeCastRules.java b/exec/java-exec/src/main/java/org/apache/drill/exec/resolver/TypeCastRules.java
index f861586..3278d3e 100644
--- a/exec/java-exec/src/main/java/org/apache/drill/exec/resolver/TypeCastRules.java
+++ b/exec/java-exec/src/main/java/org/apache/drill/exec/resolver/TypeCastRules.java
@@ -426,7 +426,6 @@ public class TypeCastRules {
rule.add(MinorType.UINT4);
rule.add(MinorType.UINT8);
rule.add(MinorType.DATE);
- rule.add(MinorType.TIME);
rule.add(MinorType.TIMESTAMPTZ);
rules.put(MinorType.TIMESTAMP, rule);
@@ -786,7 +785,7 @@ public class TypeCastRules {
}
}
- /*
+ /*
* Function checks if casting is allowed from the 'from' -> 'to' minor type. If its allowed
* we also check if the precedence map allows such a cast and return true if both cases are satisfied
*/
http://git-wip-us.apache.org/repos/asf/drill/blob/357d0202/exec/java-exec/src/test/java/org/apache/drill/TestImplicitCasting.java
----------------------------------------------------------------------
diff --git a/exec/java-exec/src/test/java/org/apache/drill/TestImplicitCasting.java b/exec/java-exec/src/test/java/org/apache/drill/TestImplicitCasting.java
new file mode 100644
index 0000000..ae94e36
--- /dev/null
+++ b/exec/java-exec/src/test/java/org/apache/drill/TestImplicitCasting.java
@@ -0,0 +1,41 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.drill;
+
+import org.apache.drill.common.types.MinorType;
+import org.apache.drill.common.types.TypeProtos;
+import org.apache.drill.exec.resolver.TypeCastRules;
+import org.junit.Test;
+
+import com.google.common.collect.Lists;
+
+import java.util.List;
+
+import static org.junit.Assert.assertEquals;
+
+public class TestImplicitCasting {
+ @Test
+ public void testTimeStampAndTime() {
+ final List<TypeProtos.MinorType> inputTypes = Lists.newArrayList();
+ inputTypes.add(TypeProtos.MinorType.TIME);
+ inputTypes.add(TypeProtos.MinorType.TIMESTAMP);
+ final TypeProtos.MinorType result = TypeCastRules.getLeastRestrictiveType(inputTypes);
+
+ assertEquals(result, TypeProtos.MinorType.TIME);
+ }
+}