Repository: hive
Updated Branches:
  refs/heads/branch-2.1 8c9085401 -> 3702cad74


HIVE-13861: Fix up nullability issue that might be created by pull up constants 
rules (Jesus Camacho Rodriguez, reviewed by Ashutosh Chauhan)


Project: http://git-wip-us.apache.org/repos/asf/hive/repo
Commit: http://git-wip-us.apache.org/repos/asf/hive/commit/3702cad7
Tree: http://git-wip-us.apache.org/repos/asf/hive/tree/3702cad7
Diff: http://git-wip-us.apache.org/repos/asf/hive/diff/3702cad7

Branch: refs/heads/branch-2.1
Commit: 3702cad7489e1dd68f0444fab6ab48593155ad58
Parents: 8c90854
Author: Jesus Camacho Rodriguez <[email protected]>
Authored: Mon May 30 15:46:28 2016 +0100
Committer: Jesus Camacho Rodriguez <[email protected]>
Committed: Mon May 30 15:46:28 2016 +0100

----------------------------------------------------------------------
 .../optimizer/calcite/rules/HiveSortLimitPullUpConstantsRule.java  | 2 ++
 .../ql/optimizer/calcite/rules/HiveUnionPullUpConstantsRule.java   | 2 ++
 2 files changed, 4 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/hive/blob/3702cad7/ql/src/java/org/apache/hadoop/hive/ql/optimizer/calcite/rules/HiveSortLimitPullUpConstantsRule.java
----------------------------------------------------------------------
diff --git 
a/ql/src/java/org/apache/hadoop/hive/ql/optimizer/calcite/rules/HiveSortLimitPullUpConstantsRule.java
 
b/ql/src/java/org/apache/hadoop/hive/ql/optimizer/calcite/rules/HiveSortLimitPullUpConstantsRule.java
index ebfabac..cc318db 100644
--- 
a/ql/src/java/org/apache/hadoop/hive/ql/optimizer/calcite/rules/HiveSortLimitPullUpConstantsRule.java
+++ 
b/ql/src/java/org/apache/hadoop/hive/ql/optimizer/calcite/rules/HiveSortLimitPullUpConstantsRule.java
@@ -154,7 +154,9 @@ public class HiveSortLimitPullUpConstantsRule extends 
RelOptRule {
             relBuilder.fields(RelCollations.of(fieldCollations));
     relBuilder.sortLimit(sort.offset == null ? -1 : 
RexLiteral.intValue(sort.offset),
             sort.fetch == null ? -1 : RexLiteral.intValue(sort.fetch), 
sortFields);
+    // Create top Project fixing nullability of fields
     relBuilder.project(topChildExprs, topChildExprsFields);
+    relBuilder.convert(sort.getRowType(), false);
 
     call.transformTo(parent.copy(parent.getTraitSet(), 
ImmutableList.of(relBuilder.build())));
   }

http://git-wip-us.apache.org/repos/asf/hive/blob/3702cad7/ql/src/java/org/apache/hadoop/hive/ql/optimizer/calcite/rules/HiveUnionPullUpConstantsRule.java
----------------------------------------------------------------------
diff --git 
a/ql/src/java/org/apache/hadoop/hive/ql/optimizer/calcite/rules/HiveUnionPullUpConstantsRule.java
 
b/ql/src/java/org/apache/hadoop/hive/ql/optimizer/calcite/rules/HiveUnionPullUpConstantsRule.java
index f071ddd..8333982 100644
--- 
a/ql/src/java/org/apache/hadoop/hive/ql/optimizer/calcite/rules/HiveUnionPullUpConstantsRule.java
+++ 
b/ql/src/java/org/apache/hadoop/hive/ql/optimizer/calcite/rules/HiveUnionPullUpConstantsRule.java
@@ -131,7 +131,9 @@ public class HiveUnionPullUpConstantsRule extends 
RelOptRule {
       relBuilder.project(Pair.left(newChildExprs), Pair.right(newChildExprs));
     }
     relBuilder.union(union.all, union.getInputs().size());
+    // Create top Project fixing nullability of fields
     relBuilder.project(topChildExprs, topChildExprsFields);
+    relBuilder.convert(union.getRowType(), false);
 
     call.transformTo(relBuilder.build());
   }

Reply via email to