aboutsummaryrefslogtreecommitdiff
path: root/exec/java-exec/src/main/java/org/apache/drill/exec/planner
diff options
context:
space:
mode:
authorIgor Guzenko <ihor.huzenko.igs@gmail.com>2018-10-22 14:33:49 +0300
committerAman Sinha <asinha@maprtech.com>2019-02-01 16:18:01 -0800
commit3bec197bce73ed7aa2ae3fabf457c408aa7aff87 (patch)
tree2faf657f38ed91dda5b79b57fef5f432fb1c2cd7 /exec/java-exec/src/main/java/org/apache/drill/exec/planner
parent35b42ebdfd645b92330ad5dcac363aa0036696a7 (diff)
DRILL-6862: Update Calcite to 1.18.0
1. Moved Calcite dependency from profile hadoop-default to general dependency managment 2. Updated Calcite version to 1.18.0-drill-r0 and Avatica version to 1.13.0 3. Hook.REL_BUILDER_SIMPLIFY moved to static block, cause now it can't be removed (fixes DRILL-6830) 4. Removed WrappedAccessor, since it was workaround fixed in CALCITE-1408 5. Fixed setting of multiple options in TestBuilder 6. Timstampadd type inference aligned with CALCITE-2699 7. Dependency update caused 417 kB increase of jdb-all jar size, so the maxsize limit was increased from 39.5 to 40 MB 8. Added test into TestDrillParquetReader to ensure that DRILL-6856 was fixed by Calcite update close apache/drill#1631
Diffstat (limited to 'exec/java-exec/src/main/java/org/apache/drill/exec/planner')
-rw-r--r--exec/java-exec/src/main/java/org/apache/drill/exec/planner/DrillRelBuilder.java10
-rw-r--r--exec/java-exec/src/main/java/org/apache/drill/exec/planner/sql/SqlConverter.java15
-rw-r--r--exec/java-exec/src/main/java/org/apache/drill/exec/planner/sql/TypeInferenceUtils.java6
3 files changed, 23 insertions, 8 deletions
diff --git a/exec/java-exec/src/main/java/org/apache/drill/exec/planner/DrillRelBuilder.java b/exec/java-exec/src/main/java/org/apache/drill/exec/planner/DrillRelBuilder.java
index 1ec300daf..22597dc51 100644
--- a/exec/java-exec/src/main/java/org/apache/drill/exec/planner/DrillRelBuilder.java
+++ b/exec/java-exec/src/main/java/org/apache/drill/exec/planner/DrillRelBuilder.java
@@ -67,4 +67,14 @@ public class DrillRelBuilder extends RelBuilder {
public static RelBuilderFactory proto(Object... factories) {
return proto(Contexts.of(factories));
}
+
+ /**
+ * Disables combining of consecutive {@link org.apache.calcite.rel.core.Project} nodes.
+ * See comments under CALCITE-2470 for details.
+ * @return false
+ */
+ @Override
+ protected boolean shouldMergeProject() {
+ return false;
+ }
}
diff --git a/exec/java-exec/src/main/java/org/apache/drill/exec/planner/sql/SqlConverter.java b/exec/java-exec/src/main/java/org/apache/drill/exec/planner/sql/SqlConverter.java
index 154bf8cbb..62d6f325d 100644
--- a/exec/java-exec/src/main/java/org/apache/drill/exec/planner/sql/SqlConverter.java
+++ b/exec/java-exec/src/main/java/org/apache/drill/exec/planner/sql/SqlConverter.java
@@ -119,6 +119,14 @@ public class SqlConverter {
private VolcanoPlanner planner;
private boolean useRootSchema = false;
+ static {
+ /*
+ * Sets value to false to avoid simplifying project expressions
+ * during creating new projects since it may cause changing data mode
+ * which causes to assertion errors during type validation
+ */
+ Hook.REL_BUILDER_SIMPLIFY.add(Hook.propertyJ(false));
+ }
public SqlConverter(QueryContext context) {
this.settings = context.getPlannerSettings();
@@ -373,13 +381,6 @@ public class SqlConverter {
new SqlToRelConverter(new Expander(), validator, catalog, cluster, DrillConvertletTable.INSTANCE,
sqlToRelConverterConfig);
- /*
- * Sets value to false to avoid simplifying project expressions
- * during creating new projects since it may cause changing data mode
- * which causes to assertion errors during type validation
- */
- Hook.REL_BUILDER_SIMPLIFY.add(Hook.propertyJ(false));
-
//To avoid unexpected column errors set a value of top to false
final RelRoot rel = sqlToRelConverter.convertQuery(validatedNode, false, false);
return rel.withRel(sqlToRelConverter.flattenTypes(rel.rel, true));
diff --git a/exec/java-exec/src/main/java/org/apache/drill/exec/planner/sql/TypeInferenceUtils.java b/exec/java-exec/src/main/java/org/apache/drill/exec/planner/sql/TypeInferenceUtils.java
index 3319104dc..9b0142405 100644
--- a/exec/java-exec/src/main/java/org/apache/drill/exec/planner/sql/TypeInferenceUtils.java
+++ b/exec/java-exec/src/main/java/org/apache/drill/exec/planner/sql/TypeInferenceUtils.java
@@ -593,7 +593,11 @@ public class TypeInferenceUtils {
case SECOND:
case MINUTE:
case HOUR:
- sqlTypeName = SqlTypeName.TIMESTAMP;
+ if (inputTypeName == SqlTypeName.TIME) {
+ sqlTypeName = SqlTypeName.TIME;
+ } else {
+ sqlTypeName = SqlTypeName.TIMESTAMP;
+ }
break;
default:
sqlTypeName = SqlTypeName.ANY;