diff --git a/ql/src/java/org/apache/hadoop/hive/ql/parse/CalcitePlanner.java b/ql/src/java/org/apache/hadoop/hive/ql/parse/CalcitePlanner.java index 48e3cc7..bff9772 100644 --- a/ql/src/java/org/apache/hadoop/hive/ql/parse/CalcitePlanner.java +++ b/ql/src/java/org/apache/hadoop/hive/ql/parse/CalcitePlanner.java @@ -2378,9 +2378,9 @@ private int getWindowSpecIndx(ASTNode wndAST) { WindowSpec wndSpec = ((WindowFunctionSpec) wExpSpec).getWindowSpec(); List partitionKeys = getPartitionKeys(wndSpec.getPartition(), converter, inputRR); List orderKeys = getOrderKeys(wndSpec.getOrder(), converter, inputRR); - RexWindowBound upperBound = getBound(wndSpec.windowFrame.start, converter); - RexWindowBound lowerBound = getBound(wndSpec.windowFrame.end, converter); - boolean isRows = ((wndSpec.windowFrame.start instanceof RangeBoundarySpec) || (wndSpec.windowFrame.end instanceof RangeBoundarySpec)) ? true + RexWindowBound upperBound = getBound(wndSpec.getWindowFrame().start, converter); + RexWindowBound lowerBound = getBound(wndSpec.getWindowFrame().end, converter); + boolean isRows = ((wndSpec.getWindowFrame().start instanceof RangeBoundarySpec) || (wndSpec.getWindowFrame().end instanceof RangeBoundarySpec)) ? true : false; w = cluster.getRexBuilder().makeOver(calciteAggFnRetType, calciteAggFn, calciteAggFnArgs, diff --git a/ql/src/java/org/apache/hadoop/hive/ql/parse/PTFInvocationSpec.java b/ql/src/java/org/apache/hadoop/hive/ql/parse/PTFInvocationSpec.java index 06d3f4b..29b8510 100644 --- a/ql/src/java/org/apache/hadoop/hive/ql/parse/PTFInvocationSpec.java +++ b/ql/src/java/org/apache/hadoop/hive/ql/parse/PTFInvocationSpec.java @@ -202,6 +202,7 @@ public PTFQueryInputSpec getQueryInput() { public static class PartitioningSpec { PartitionSpec partSpec; OrderSpec orderSpec; + public PartitionSpec getPartSpec() { return partSpec; } @@ -250,6 +251,13 @@ public boolean equals(Object obj) { } return true; } + + @Override + public String toString() { + return String.format("PartitioningSpec=[%s%s]", + partSpec == null ? "" : partSpec, + orderSpec == null ? "" : orderSpec); + } } /* diff --git a/ql/src/java/org/apache/hadoop/hive/ql/parse/WindowingSpec.java b/ql/src/java/org/apache/hadoop/hive/ql/parse/WindowingSpec.java index 953f3ae..a181f7c 100644 --- a/ql/src/java/org/apache/hadoop/hive/ql/parse/WindowingSpec.java +++ b/ql/src/java/org/apache/hadoop/hive/ql/parse/WindowingSpec.java @@ -58,20 +58,21 @@ * building RowResolvers. */ public class WindowingSpec { - HashMap aliasToWdwExpr; - HashMap windowSpecs; - ArrayList windowExpressions; + private HashMap aliasToWdwExpr; + private HashMap windowSpecs; + private ArrayList windowExpressions; + + public WindowingSpec() { + aliasToWdwExpr = new HashMap(); + windowSpecs = new HashMap(); + windowExpressions = new ArrayList(); + } public void addWindowSpec(String name, WindowSpec wdwSpec) { - windowSpecs = windowSpecs == null ? new HashMap() : windowSpecs; windowSpecs.put(name, wdwSpec); } public void addWindowFunction(WindowFunctionSpec wFn) { - windowExpressions = windowExpressions == null ? - new ArrayList() : windowExpressions; - aliasToWdwExpr = aliasToWdwExpr == null ? - new HashMap() : aliasToWdwExpr; windowExpressions.add(wFn); aliasToWdwExpr.put(wFn.getAlias(), wFn); } @@ -80,26 +81,14 @@ public void addWindowFunction(WindowFunctionSpec wFn) { return aliasToWdwExpr; } - public void setAliasToWdwExpr(HashMap aliasToWdwExpr) { - this.aliasToWdwExpr = aliasToWdwExpr; - } - public HashMap getWindowSpecs() { return windowSpecs; } - public void setWindowSpecs(HashMap windowSpecs) { - this.windowSpecs = windowSpecs; - } - public ArrayList getWindowExpressions() { return windowExpressions; } - public void setWindowExpressions(ArrayList windowExpressions) { - this.windowExpressions = windowExpressions; - } - public PartitioningSpec getQueryPartitioningSpec() { /* * Why no null and class checks? @@ -171,7 +160,7 @@ private void fillInWindowSpec(String sourceId, WindowSpec dest, ArrayList