Repository: hive Updated Branches: refs/heads/master c7c4ec4ce -> d17d07ef5
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/d17d07ef Tree: http://git-wip-us.apache.org/repos/asf/hive/tree/d17d07ef Diff: http://git-wip-us.apache.org/repos/asf/hive/diff/d17d07ef Branch: refs/heads/master Commit: d17d07ef5f61838e6922b5e81b28f0c8e82e98c7 Parents: c7c4ec4 Author: Jesus Camacho Rodriguez <[email protected]> Authored: Mon May 30 15:45:45 2016 +0100 Committer: Jesus Camacho Rodriguez <[email protected]> Committed: Mon May 30 15:45:45 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/d17d07ef/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/d17d07ef/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()); }
