You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hive.apache.org by br...@apache.org on 2013/10/04 16:51:39 UTC
svn commit: r1529174 - in /hive/trunk/ql/src/java/org/apache/hadoop/hive/ql:
exec/ optimizer/ parse/ plan/ plan/ptf/ udf/ptf/
Author: brock
Date: Fri Oct 4 14:51:38 2013
New Revision: 1529174
URL: http://svn.apache.org/r1529174
Log:
HIVE-5395 - Various cleanup in ptf code (Edward Capriolo via Brock Noland)
Added:
hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/plan/ptf/
hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/plan/ptf/BoundaryDef.java
hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/plan/ptf/CurrentRowDef.java
hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/plan/ptf/OrderDef.java
hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/plan/ptf/OrderExpressionDef.java
hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/plan/ptf/PTFExpressionDef.java
hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/plan/ptf/PTFInputDef.java
hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/plan/ptf/PTFQueryInputDef.java
hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/plan/ptf/PartitionDef.java
hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/plan/ptf/PartitionedTableFunctionDef.java
hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/plan/ptf/RangeBoundaryDef.java
hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/plan/ptf/ShapeDetails.java
hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/plan/ptf/ValueBoundaryDef.java
hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/plan/ptf/WindowExpressionDef.java
hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/plan/ptf/WindowFrameDef.java
hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/plan/ptf/WindowFunctionDef.java
hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/plan/ptf/WindowTableFunctionDef.java
Modified:
hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/exec/PTFOperator.java
hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/optimizer/ColumnPrunerProcFactory.java
hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/parse/PTFInvocationSpec.java
hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/parse/PTFTranslator.java
hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/parse/SemanticAnalyzer.java
hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/plan/PTFDesc.java
hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/plan/PTFDeserializer.java
hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/ptf/NPath.java
hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/ptf/Noop.java
hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/ptf/NoopWithMap.java
hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/ptf/TableFunctionEvaluator.java
hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/ptf/TableFunctionResolver.java
hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/ptf/WindowingTableFunction.java
Modified: hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/exec/PTFOperator.java
URL: http://svn.apache.org/viewvc/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/exec/PTFOperator.java?rev=1529174&r1=1529173&r2=1529174&view=diff
==============================================================================
--- hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/exec/PTFOperator.java (original)
+++ hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/exec/PTFOperator.java Fri Oct 4 14:51:38 2013
@@ -19,9 +19,9 @@
package org.apache.hadoop.hive.ql.exec;
import java.io.Serializable;
-import java.util.ArrayList;
+import java.util.ArrayDeque;
+import java.util.Deque;
import java.util.List;
-import java.util.Stack;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.hive.conf.HiveConf;
@@ -30,12 +30,12 @@ import org.apache.hadoop.hive.ql.metadat
import org.apache.hadoop.hive.ql.plan.ExprNodeGenericFuncDesc;
import org.apache.hadoop.hive.ql.plan.OperatorDesc;
import org.apache.hadoop.hive.ql.plan.PTFDesc;
-import org.apache.hadoop.hive.ql.plan.PTFDesc.PTFExpressionDef;
-import org.apache.hadoop.hive.ql.plan.PTFDesc.PTFInputDef;
-import org.apache.hadoop.hive.ql.plan.PTFDesc.PartitionDef;
-import org.apache.hadoop.hive.ql.plan.PTFDesc.PartitionedTableFunctionDef;
import org.apache.hadoop.hive.ql.plan.PTFDeserializer;
import org.apache.hadoop.hive.ql.plan.api.OperatorType;
+import org.apache.hadoop.hive.ql.plan.ptf.PTFExpressionDef;
+import org.apache.hadoop.hive.ql.plan.ptf.PTFInputDef;
+import org.apache.hadoop.hive.ql.plan.ptf.PartitionDef;
+import org.apache.hadoop.hive.ql.plan.ptf.PartitionedTableFunctionDef;
import org.apache.hadoop.hive.ql.udf.generic.GenericUDFLeadLag;
import org.apache.hadoop.hive.ql.udf.ptf.TableFunctionEvaluator;
import org.apache.hadoop.hive.serde2.SerDe;
@@ -147,7 +147,7 @@ public class PTFOperator extends Operato
protected void setupKeysWrapper(ObjectInspector inputOI) throws HiveException {
PartitionDef pDef = conf.getStartOfChain().getPartition();
- ArrayList<PTFExpressionDef> exprs = pDef.getExpressions();
+ List<PTFExpressionDef> exprs = pDef.getExpressions();
int numExprs = exprs.size();
ExprNodeEvaluator[] keyFields = new ExprNodeEvaluator[numExprs];
ObjectInspector[] keyOIs = new ObjectInspector[numExprs];
@@ -220,7 +220,7 @@ public class PTFOperator extends Operato
*/
private PTFPartition executeChain(PTFPartition part)
throws HiveException {
- Stack<PartitionedTableFunctionDef> fnDefs = new Stack<PartitionedTableFunctionDef>();
+ Deque<PartitionedTableFunctionDef> fnDefs = new ArrayDeque<PartitionedTableFunctionDef>();
PTFInputDef iDef = conf.getFuncDef();
while (iDef instanceof PartitionedTableFunctionDef) {
@@ -289,6 +289,4 @@ public class PTFOperator extends Operato
}
}
-
-
}
Modified: hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/optimizer/ColumnPrunerProcFactory.java
URL: http://svn.apache.org/viewvc/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/optimizer/ColumnPrunerProcFactory.java?rev=1529174&r1=1529173&r2=1529174&view=diff
==============================================================================
--- hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/optimizer/ColumnPrunerProcFactory.java (original)
+++ hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/optimizer/ColumnPrunerProcFactory.java Fri Oct 4 14:51:38 2013
@@ -67,14 +67,14 @@ import org.apache.hadoop.hive.ql.plan.Jo
import org.apache.hadoop.hive.ql.plan.MapJoinDesc;
import org.apache.hadoop.hive.ql.plan.OperatorDesc;
import org.apache.hadoop.hive.ql.plan.PTFDesc;
-import org.apache.hadoop.hive.ql.plan.PTFDesc.PTFExpressionDef;
-import org.apache.hadoop.hive.ql.plan.PTFDesc.WindowFunctionDef;
-import org.apache.hadoop.hive.ql.plan.PTFDesc.WindowTableFunctionDef;
import org.apache.hadoop.hive.ql.plan.PlanUtils;
import org.apache.hadoop.hive.ql.plan.ReduceSinkDesc;
import org.apache.hadoop.hive.ql.plan.SelectDesc;
import org.apache.hadoop.hive.ql.plan.TableDesc;
import org.apache.hadoop.hive.ql.plan.TableScanDesc;
+import org.apache.hadoop.hive.ql.plan.ptf.PTFExpressionDef;
+import org.apache.hadoop.hive.ql.plan.ptf.WindowFunctionDef;
+import org.apache.hadoop.hive.ql.plan.ptf.WindowTableFunctionDef;
import org.apache.hadoop.hive.serde2.objectinspector.StructField;
import org.apache.hadoop.hive.serde2.objectinspector.StructObjectInspector;
Modified: hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/parse/PTFInvocationSpec.java
URL: http://svn.apache.org/viewvc/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/parse/PTFInvocationSpec.java?rev=1529174&r1=1529173&r2=1529174&view=diff
==============================================================================
--- hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/parse/PTFInvocationSpec.java (original)
+++ hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/parse/PTFInvocationSpec.java Fri Oct 4 14:51:38 2013
@@ -19,6 +19,7 @@
package org.apache.hadoop.hive.ql.parse;
import java.util.ArrayList;
+import java.util.List;
import org.apache.hadoop.hive.ql.exec.PTFUtils;
@@ -124,7 +125,7 @@ public class PTFInvocationSpec {
public static class PartitionedTableFunctionSpec extends PTFInputSpec {
String name;
String alias;
- ArrayList<ASTNode> args;
+ List<ASTNode> args;
PartitioningSpec partitioning;
PTFInputSpec input;
public String getName() {
@@ -139,10 +140,10 @@ public class PTFInvocationSpec {
public void setAlias(String alias) {
this.alias = alias;
}
- public ArrayList<ASTNode> getArgs() {
+ public List<ASTNode> getArgs() {
return args;
}
- public void setArgs(ArrayList<ASTNode> args) {
+ public void setArgs(List<ASTNode> args) {
this.args = args;
}
public PartitioningSpec getPartitioning() {
Modified: hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/parse/PTFTranslator.java
URL: http://svn.apache.org/viewvc/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/parse/PTFTranslator.java?rev=1529174&r1=1529173&r2=1529174&view=diff
==============================================================================
--- hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/parse/PTFTranslator.java (original)
+++ hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/parse/PTFTranslator.java Fri Oct 4 14:51:38 2013
@@ -18,7 +18,9 @@
package org.apache.hadoop.hive.ql.parse;
+import java.util.ArrayDeque;
import java.util.ArrayList;
+import java.util.Deque;
import java.util.HashMap;
import java.util.LinkedHashMap;
import java.util.List;
@@ -60,22 +62,22 @@ import org.apache.hadoop.hive.ql.parse.W
import org.apache.hadoop.hive.ql.plan.ExprNodeDesc;
import org.apache.hadoop.hive.ql.plan.ExprNodeGenericFuncDesc;
import org.apache.hadoop.hive.ql.plan.PTFDesc;
-import org.apache.hadoop.hive.ql.plan.PTFDesc.BoundaryDef;
-import org.apache.hadoop.hive.ql.plan.PTFDesc.CurrentRowDef;
-import org.apache.hadoop.hive.ql.plan.PTFDesc.OrderDef;
-import org.apache.hadoop.hive.ql.plan.PTFDesc.OrderExpressionDef;
-import org.apache.hadoop.hive.ql.plan.PTFDesc.PTFExpressionDef;
-import org.apache.hadoop.hive.ql.plan.PTFDesc.PTFInputDef;
-import org.apache.hadoop.hive.ql.plan.PTFDesc.PTFQueryInputDef;
-import org.apache.hadoop.hive.ql.plan.PTFDesc.PartitionDef;
-import org.apache.hadoop.hive.ql.plan.PTFDesc.PartitionedTableFunctionDef;
-import org.apache.hadoop.hive.ql.plan.PTFDesc.RangeBoundaryDef;
-import org.apache.hadoop.hive.ql.plan.PTFDesc.ShapeDetails;
-import org.apache.hadoop.hive.ql.plan.PTFDesc.ValueBoundaryDef;
-import org.apache.hadoop.hive.ql.plan.PTFDesc.WindowFrameDef;
-import org.apache.hadoop.hive.ql.plan.PTFDesc.WindowFunctionDef;
-import org.apache.hadoop.hive.ql.plan.PTFDesc.WindowTableFunctionDef;
import org.apache.hadoop.hive.ql.plan.PTFDeserializer;
+import org.apache.hadoop.hive.ql.plan.ptf.BoundaryDef;
+import org.apache.hadoop.hive.ql.plan.ptf.CurrentRowDef;
+import org.apache.hadoop.hive.ql.plan.ptf.OrderDef;
+import org.apache.hadoop.hive.ql.plan.ptf.OrderExpressionDef;
+import org.apache.hadoop.hive.ql.plan.ptf.PTFExpressionDef;
+import org.apache.hadoop.hive.ql.plan.ptf.PTFInputDef;
+import org.apache.hadoop.hive.ql.plan.ptf.PTFQueryInputDef;
+import org.apache.hadoop.hive.ql.plan.ptf.PartitionDef;
+import org.apache.hadoop.hive.ql.plan.ptf.PartitionedTableFunctionDef;
+import org.apache.hadoop.hive.ql.plan.ptf.RangeBoundaryDef;
+import org.apache.hadoop.hive.ql.plan.ptf.ShapeDetails;
+import org.apache.hadoop.hive.ql.plan.ptf.ValueBoundaryDef;
+import org.apache.hadoop.hive.ql.plan.ptf.WindowFrameDef;
+import org.apache.hadoop.hive.ql.plan.ptf.WindowFunctionDef;
+import org.apache.hadoop.hive.ql.plan.ptf.WindowTableFunctionDef;
import org.apache.hadoop.hive.ql.udf.generic.GenericUDAFEvaluator;
import org.apache.hadoop.hive.ql.udf.generic.GenericUDFLeadLag;
import org.apache.hadoop.hive.ql.udf.ptf.TableFunctionEvaluator;
@@ -224,7 +226,7 @@ public class PTFTranslator {
private void translatePTFChain() throws SemanticException {
- Stack<PTFInputSpec> ptfChain = new Stack<PTFInvocationSpec.PTFInputSpec>();
+ Deque<PTFInputSpec> ptfChain = new ArrayDeque<PTFInvocationSpec.PTFInputSpec>();
PTFInputSpec currentSpec = ptfInvocation.getFunction();
while (currentSpec != null) {
ptfChain.push(currentSpec);
@@ -280,7 +282,7 @@ public class PTFTranslator {
/*
* translate args
*/
- ArrayList<ASTNode> args = spec.getArgs();
+ List<ASTNode> args = spec.getArgs();
if (args != null)
{
for (ASTNode expr : args)
@@ -303,7 +305,7 @@ public class PTFTranslator {
if (tFn.transformsRawInput()) {
StructObjectInspector rawInOutOI = tEval.getRawInputOI();
- ArrayList<String> rawInOutColNames = tFn.getRawInputColumnNames();
+ List<String> rawInOutColNames = tFn.getRawInputColumnNames();
RowResolver rawInRR = buildRowResolverForPTF(def.getName(),
spec.getAlias(),
rawInOutOI,
@@ -324,7 +326,7 @@ public class PTFTranslator {
tFn.setupOutputOI();
StructObjectInspector outputOI = tEval.getOutputOI();
- ArrayList<String> outColNames = tFn.getOutputColumnNames();
+ List<String> outColNames = tFn.getOutputColumnNames();
RowResolver outRR = buildRowResolverForPTF(def.getName(),
spec.getAlias(),
outputOI,
@@ -566,8 +568,8 @@ public class PTFTranslator {
}
static void setupWdwFnEvaluator(WindowFunctionDef def) throws HiveException {
- ArrayList<PTFExpressionDef> args = def.getArgs();
- ArrayList<ObjectInspector> argOIs = new ArrayList<ObjectInspector>();
+ List<PTFExpressionDef> args = def.getArgs();
+ List<ObjectInspector> argOIs = new ArrayList<ObjectInspector>();
ObjectInspector[] funcArgOIs = null;
if (args != null) {
@@ -619,7 +621,7 @@ public class PTFTranslator {
}
private ShapeDetails setupTableFnShape(String fnName, ShapeDetails inpShape,
- StructObjectInspector OI, ArrayList<String> columnNames, RowResolver rr)
+ StructObjectInspector OI, List<String> columnNames, RowResolver rr)
throws SemanticException {
if (fnName.equals(FunctionRegistry.NOOP_TABLE_FUNCTION)
|| fnName.equals(
@@ -630,7 +632,7 @@ public class PTFTranslator {
}
private ShapeDetails setupShape(StructObjectInspector OI,
- ArrayList<String> columnNames,
+ List<String> columnNames,
RowResolver rr) throws SemanticException {
Map<String, String> serdePropsMap = new LinkedHashMap<String, String>();
SerDe serde = null;
@@ -672,7 +674,7 @@ public class PTFTranslator {
private ShapeDetails setupShapeForNoop(ShapeDetails inpShape,
StructObjectInspector OI,
- ArrayList<String> columnNames,
+ List<String> columnNames,
RowResolver rr) throws SemanticException {
ShapeDetails shp = new ShapeDetails();
@@ -738,7 +740,7 @@ public class PTFTranslator {
throw new SemanticException("Ranking Functions can take no arguments");
}
OrderDef oDef = wdwTFnDef.getOrder();
- ArrayList<OrderExpressionDef> oExprs = oDef.getExpressions();
+ List<OrderExpressionDef> oExprs = oDef.getExpressions();
for (OrderExpressionDef oExpr : oExprs) {
wFnDef.addArg(oExpr);
}
@@ -871,7 +873,7 @@ public class PTFTranslator {
protected static RowResolver buildRowResolverForPTF(String tbFnName, String tabAlias,
StructObjectInspector rowObjectInspector,
- ArrayList<String> outputColNames, RowResolver inputRR) throws SemanticException {
+ List<String> outputColNames, RowResolver inputRR) throws SemanticException {
if (tbFnName.equals(FunctionRegistry.NOOP_TABLE_FUNCTION) ||
tbFnName.equals(FunctionRegistry.NOOP_MAP_TABLE_FUNCTION)) {
Modified: hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/parse/SemanticAnalyzer.java
URL: http://svn.apache.org/viewvc/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/parse/SemanticAnalyzer.java?rev=1529174&r1=1529173&r2=1529174&view=diff
==============================================================================
--- hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/parse/SemanticAnalyzer.java (original)
+++ hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/parse/SemanticAnalyzer.java Fri Oct 4 14:51:38 2013
@@ -139,9 +139,6 @@ import org.apache.hadoop.hive.ql.plan.Lo
import org.apache.hadoop.hive.ql.plan.MapJoinDesc;
import org.apache.hadoop.hive.ql.plan.OperatorDesc;
import org.apache.hadoop.hive.ql.plan.PTFDesc;
-import org.apache.hadoop.hive.ql.plan.PTFDesc.OrderExpressionDef;
-import org.apache.hadoop.hive.ql.plan.PTFDesc.PTFExpressionDef;
-import org.apache.hadoop.hive.ql.plan.PTFDesc.PartitionedTableFunctionDef;
import org.apache.hadoop.hive.ql.plan.PlanUtils;
import org.apache.hadoop.hive.ql.plan.ReduceSinkDesc;
import org.apache.hadoop.hive.ql.plan.ScriptDesc;
@@ -150,6 +147,9 @@ import org.apache.hadoop.hive.ql.plan.Ta
import org.apache.hadoop.hive.ql.plan.TableScanDesc;
import org.apache.hadoop.hive.ql.plan.UDTFDesc;
import org.apache.hadoop.hive.ql.plan.UnionDesc;
+import org.apache.hadoop.hive.ql.plan.ptf.OrderExpressionDef;
+import org.apache.hadoop.hive.ql.plan.ptf.PTFExpressionDef;
+import org.apache.hadoop.hive.ql.plan.ptf.PartitionedTableFunctionDef;
import org.apache.hadoop.hive.ql.session.SessionState;
import org.apache.hadoop.hive.ql.session.SessionState.ResourceType;
import org.apache.hadoop.hive.ql.udf.generic.GenericUDAFEvaluator;
@@ -9935,7 +9935,7 @@ public class SemanticAnalyzer extends Ba
RowResolver rsOpRR,
RowResolver extractRR) throws SemanticException {
- ArrayList<PTFExpressionDef> partColList = tabDef.getPartition().getExpressions();
+ List<PTFExpressionDef> partColList = tabDef.getPartition().getExpressions();
for (PTFExpressionDef colDef : partColList) {
partCols.add(colDef.getExprNode());
@@ -9950,7 +9950,7 @@ public class SemanticAnalyzer extends Ba
* we need to set includeKeyCols = false while creating the
* ReduceSinkDesc
*/
- ArrayList<OrderExpressionDef> orderColList = tabDef.getOrder().getExpressions();
+ List<OrderExpressionDef> orderColList = tabDef.getOrder().getExpressions();
for (int i = 0; i < orderColList.size(); i++) {
OrderExpressionDef colDef = orderColList.get(i);
org.apache.hadoop.hive.ql.parse.PTFInvocationSpec.Order order = colDef.getOrder();
Modified: hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/plan/PTFDesc.java
URL: http://svn.apache.org/viewvc/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/plan/PTFDesc.java?rev=1529174&r1=1529173&r2=1529174&view=diff
==============================================================================
--- hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/plan/PTFDesc.java (original)
+++ hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/plan/PTFDesc.java Fri Oct 4 14:51:38 2013
@@ -18,29 +18,19 @@
package org.apache.hadoop.hive.ql.plan;
-import java.util.ArrayList;
-import java.util.Map;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.apache.hadoop.hive.conf.HiveConf;
-import org.apache.hadoop.hive.ql.exec.ExprNodeEvaluator;
import org.apache.hadoop.hive.ql.exec.PTFUtils;
import org.apache.hadoop.hive.ql.parse.LeadLagInfo;
import org.apache.hadoop.hive.ql.parse.PTFInvocationSpec.Order;
import org.apache.hadoop.hive.ql.parse.PTFInvocationSpec.PTFQueryInputType;
-import org.apache.hadoop.hive.ql.parse.RowResolver;
-import org.apache.hadoop.hive.ql.parse.TypeCheckCtx;
-import org.apache.hadoop.hive.ql.parse.WindowingSpec.Direction;
-import org.apache.hadoop.hive.ql.udf.generic.GenericUDAFEvaluator;
-import org.apache.hadoop.hive.ql.udf.ptf.TableFunctionEvaluator;
-import org.apache.hadoop.hive.serde2.SerDe;
-import org.apache.hadoop.hive.serde2.objectinspector.ObjectInspector;
-import org.apache.hadoop.hive.serde2.objectinspector.StructObjectInspector;
+import org.apache.hadoop.hive.ql.plan.ptf.PartitionedTableFunctionDef;
+import org.apache.hadoop.hive.ql.plan.ptf.WindowTableFunctionDef;
@Explain(displayName = "PTF Operator")
-public class PTFDesc extends AbstractOperatorDesc
-{
+public class PTFDesc extends AbstractOperatorDesc {
private static final long serialVersionUID = 1L;
@SuppressWarnings("unused")
private static final Log LOG = LogFactory.getLog(PTFDesc.class.getName());
@@ -99,538 +89,4 @@ public class PTFDesc extends AbstractOpe
this.cfg = cfg;
}
- public abstract static class PTFInputDef {
- String expressionTreeString;
- ShapeDetails outputShape;
- String alias;
-
- public String getExpressionTreeString() {
- return expressionTreeString;
- }
-
- public void setExpressionTreeString(String expressionTreeString) {
- this.expressionTreeString = expressionTreeString;
- }
-
- public ShapeDetails getOutputShape() {
- return outputShape;
- }
-
- public void setOutputShape(ShapeDetails outputShape) {
- this.outputShape = outputShape;
- }
- public String getAlias() {
- return alias;
- }
- public void setAlias(String alias) {
- this.alias = alias;
- }
-
- public abstract PTFInputDef getInput();
- }
-
- public static class PTFQueryInputDef extends PTFInputDef {
- String destination;
- PTFQueryInputType type;
- public String getDestination() {
- return destination;
- }
- public void setDestination(String destination) {
- this.destination = destination;
- }
- public PTFQueryInputType getType() {
- return type;
- }
- public void setType(PTFQueryInputType type) {
- this.type = type;
- }
-
- @Override
- public PTFInputDef getInput() {
- return null;
- }
- }
-
- public static class PartitionedTableFunctionDef extends PTFInputDef {
- String name;
- String resolverClassName;
- ShapeDetails rawInputShape;
- boolean carryForwardNames;
- PTFInputDef input;
- ArrayList<PTFExpressionDef> args;
- PartitionDef partition;
- OrderDef order;
- TableFunctionEvaluator tFunction;
- boolean transformsRawInput;
- public String getName() {
- return name;
- }
- public void setName(String name) {
- this.name = name;
- }
- public ShapeDetails getRawInputShape() {
- return rawInputShape;
- }
- public void setRawInputShape(ShapeDetails rawInputShape) {
- this.rawInputShape = rawInputShape;
- }
- public boolean isCarryForwardNames() {
- return carryForwardNames;
- }
- public void setCarryForwardNames(boolean carryForwardNames) {
- this.carryForwardNames = carryForwardNames;
- }
- @Override
- public PTFInputDef getInput() {
- return input;
- }
- public void setInput(PTFInputDef input) {
- this.input = input;
- }
- public PartitionDef getPartition() {
- return partition;
- }
- public void setPartition(PartitionDef partition) {
- this.partition = partition;
- }
- public OrderDef getOrder() {
- return order;
- }
- public void setOrder(OrderDef order) {
- this.order = order;
- }
- public TableFunctionEvaluator getTFunction() {
- return tFunction;
- }
- public void setTFunction(TableFunctionEvaluator tFunction) {
- this.tFunction = tFunction;
- }
- public ArrayList<PTFExpressionDef> getArgs() {
- return args;
- }
-
- public void setArgs(ArrayList<PTFExpressionDef> args) {
- this.args = args;
- }
-
- public void addArg(PTFExpressionDef arg) {
- args = args == null ? new ArrayList<PTFExpressionDef>() : args;
- args.add(arg);
- }
-
- public PartitionedTableFunctionDef getStartOfChain() {
- if (input instanceof PartitionedTableFunctionDef ) {
- return ((PartitionedTableFunctionDef)input).getStartOfChain();
- }
- return this;
- }
- public boolean isTransformsRawInput() {
- return transformsRawInput;
- }
- public void setTransformsRawInput(boolean transformsRawInput) {
- this.transformsRawInput = transformsRawInput;
- }
- public String getResolverClassName() {
- return resolverClassName;
- }
- public void setResolverClassName(String resolverClassName) {
- this.resolverClassName = resolverClassName;
- }
- }
-
- public static class WindowTableFunctionDef extends PartitionedTableFunctionDef {
- ArrayList<WindowFunctionDef> windowFunctions;
-
- public ArrayList<WindowFunctionDef> getWindowFunctions() {
- return windowFunctions;
- }
- public void setWindowFunctions(ArrayList<WindowFunctionDef> windowFunctions) {
- this.windowFunctions = windowFunctions;
- }
- }
-
- public static class ShapeDetails {
- String serdeClassName;
- Map<String, String> serdeProps;
- ArrayList<String> columnNames;
- transient StructObjectInspector OI;
- transient SerDe serde;
- transient RowResolver rr;
- transient TypeCheckCtx typeCheckCtx;
-
- static{
- PTFUtils.makeTransient(ShapeDetails.class, "OI", "serde", "rr", "typeCheckCtx");
- }
-
- public String getSerdeClassName() {
- return serdeClassName;
- }
-
- public void setSerdeClassName(String serdeClassName) {
- this.serdeClassName = serdeClassName;
- }
-
- public Map<String, String> getSerdeProps() {
- return serdeProps;
- }
-
- public void setSerdeProps(Map<String, String> serdeProps) {
- this.serdeProps = serdeProps;
- }
-
- public ArrayList<String> getColumnNames() {
- return columnNames;
- }
-
- public void setColumnNames(ArrayList<String> columnNames) {
- this.columnNames = columnNames;
- }
-
- public StructObjectInspector getOI() {
- return OI;
- }
-
- public void setOI(StructObjectInspector oI) {
- OI = oI;
- }
-
- public SerDe getSerde() {
- return serde;
- }
-
- public void setSerde(SerDe serde) {
- this.serde = serde;
- }
-
- public RowResolver getRr() {
- return rr;
- }
-
- public void setRr(RowResolver rr) {
- this.rr = rr;
- }
-
- public TypeCheckCtx getTypeCheckCtx() {
- return typeCheckCtx;
- }
-
- public void setTypeCheckCtx(TypeCheckCtx typeCheckCtx) {
- this.typeCheckCtx = typeCheckCtx;
- }
- }
-
- public static class PartitionDef {
- ArrayList<PTFExpressionDef> expressions;
-
- public ArrayList<PTFExpressionDef> getExpressions() {
- return expressions;
- }
-
- public void setExpressions(ArrayList<PTFExpressionDef> expressions) {
- this.expressions = expressions;
- }
- public void addExpression(PTFExpressionDef e) {
- expressions = expressions == null ? new ArrayList<PTFExpressionDef>() : expressions;
- expressions.add(e);
- }
- }
-
- public static class OrderDef {
- ArrayList<OrderExpressionDef> expressions;
-
- public OrderDef() {}
-
- public OrderDef(PartitionDef pDef) {
- for(PTFExpressionDef eDef : pDef.getExpressions())
- {
- addExpression(new OrderExpressionDef(eDef));
- }
- }
-
- public ArrayList<OrderExpressionDef> getExpressions() {
- return expressions;
- }
-
- public void setExpressions(ArrayList<OrderExpressionDef> expressions) {
- this.expressions = expressions;
- }
- public void addExpression(OrderExpressionDef e) {
- expressions = expressions == null ? new ArrayList<OrderExpressionDef>() : expressions;
- expressions.add(e);
- }
- }
-
- public static class OrderExpressionDef extends PTFExpressionDef {
- Order order;
-
- public OrderExpressionDef() {}
- public OrderExpressionDef(PTFExpressionDef e) {
- super(e);
- order = Order.ASC;
- }
-
- public Order getOrder() {
- return order;
- }
-
- public void setOrder(Order order) {
- this.order = order;
- }
- }
-
- public static class WindowExpressionDef extends PTFExpressionDef {
- String alias;
-
- public WindowExpressionDef() {}
- public WindowExpressionDef(PTFExpressionDef eDef) {
- super(eDef);
- }
- public String getAlias() {
- return alias;
- }
-
- public void setAlias(String alias) {
- this.alias = alias;
- }
- }
-
- public static class WindowFunctionDef extends WindowExpressionDef
- {
- String name;
- boolean isStar;
- boolean isDistinct;
- ArrayList<PTFExpressionDef> args;
- WindowFrameDef windowFrame;
- GenericUDAFEvaluator wFnEval;
- boolean pivotResult;
-
- public String getName() {
- return name;
- }
-
- public void setName(String name) {
- this.name = name;
- }
-
- public boolean isStar() {
- return isStar;
- }
-
- public void setStar(boolean isStar) {
- this.isStar = isStar;
- }
-
- public boolean isDistinct() {
- return isDistinct;
- }
-
- public void setDistinct(boolean isDistinct) {
- this.isDistinct = isDistinct;
- }
-
- public ArrayList<PTFExpressionDef> getArgs() {
- return args;
- }
-
- public void setArgs(ArrayList<PTFExpressionDef> args) {
- this.args = args;
- }
-
- public void addArg(PTFExpressionDef arg) {
- args = args == null ? new ArrayList<PTFExpressionDef>() : args;
- args.add(arg);
- }
-
- public WindowFrameDef getWindowFrame() {
- return windowFrame;
- }
-
- public void setWindowFrame(WindowFrameDef windowFrame) {
- this.windowFrame = windowFrame;
- }
-
- public GenericUDAFEvaluator getWFnEval() {
- return wFnEval;
- }
-
- public void setWFnEval(GenericUDAFEvaluator wFnEval) {
- this.wFnEval = wFnEval;
- }
-
- public boolean isPivotResult() {
- return pivotResult;
- }
-
- public void setPivotResult(boolean pivotResult) {
- this.pivotResult = pivotResult;
- }
-
- }
-
- public static class WindowFrameDef
- {
- BoundaryDef start;
- BoundaryDef end;
- public BoundaryDef getStart() {
- return start;
- }
- public void setStart(BoundaryDef start) {
- this.start = start;
- }
- public BoundaryDef getEnd() {
- return end;
- }
- public void setEnd(BoundaryDef end) {
- this.end = end;
- }
- }
-
- public static abstract class BoundaryDef {
- Direction direction;
-
- public Direction getDirection() {
- return direction;
- }
-
- public void setDirection(Direction direction) {
- this.direction = direction;
- }
-
- public abstract int getAmt();
- }
-
- public static class RangeBoundaryDef extends BoundaryDef {
- int amt;
-
- public int compareTo(BoundaryDef other)
- {
- int c = getDirection().compareTo(other.getDirection());
- if ( c != 0) {
- return c;
- }
- RangeBoundaryDef rb = (RangeBoundaryDef) other;
- return getAmt() - rb.getAmt();
- }
-
- @Override
- public int getAmt() {
- return amt;
- }
-
- public void setAmt(int amt) {
- this.amt = amt;
- }
- }
-
- public static class CurrentRowDef extends BoundaryDef
- {
- public int compareTo(BoundaryDef other)
- {
- return getDirection().compareTo(other.getDirection());
- }
- @Override
- public Direction getDirection() {
- return Direction.CURRENT;
- }
-
- @Override
- public int getAmt() { return 0; }
- }
-
- public static class ValueBoundaryDef extends BoundaryDef
- {
- PTFExpressionDef expressionDef;
- int amt;
-
- public int compareTo(BoundaryDef other) {
- int c = getDirection().compareTo(other.getDirection());
- if ( c != 0) {
- return c;
- }
- ValueBoundaryDef vb = (ValueBoundaryDef) other;
- return getAmt() - vb.getAmt();
- }
-
- public PTFExpressionDef getExpressionDef() {
- return expressionDef;
- }
-
- public void setExpressionDef(PTFExpressionDef expressionDef) {
- this.expressionDef = expressionDef;
- }
-
- public ExprNodeDesc getExprNode() {
- return expressionDef == null ? null : expressionDef.getExprNode();
- }
-
- public ExprNodeEvaluator getExprEvaluator() {
- return expressionDef == null ? null : expressionDef.getExprEvaluator();
- }
-
- public ObjectInspector getOI() {
- return expressionDef == null ? null : expressionDef.getOI();
- }
-
- @Override
- public int getAmt() {
- return amt;
- }
-
- public void setAmt(int amt) {
- this.amt = amt;
- }
- }
-
- public static class PTFExpressionDef
- {
- String expressionTreeString;
- ExprNodeDesc exprNode;
- transient ExprNodeEvaluator exprEvaluator;
- transient ObjectInspector OI;
-
- static{
- PTFUtils.makeTransient(PTFExpressionDef.class, "exprEvaluator", "OI");
- }
-
- public PTFExpressionDef() {}
- public PTFExpressionDef(PTFExpressionDef e) {
- expressionTreeString = e.getExpressionTreeString();
- exprNode = e.getExprNode();
- exprEvaluator = e.getExprEvaluator();
- OI = e.getOI();
- }
-
- public String getExpressionTreeString() {
- return expressionTreeString;
- }
-
- public void setExpressionTreeString(String expressionTreeString) {
- this.expressionTreeString = expressionTreeString;
- }
-
- public ExprNodeDesc getExprNode() {
- return exprNode;
- }
-
- public void setExprNode(ExprNodeDesc exprNode) {
- this.exprNode = exprNode;
- }
-
- public ExprNodeEvaluator getExprEvaluator() {
- return exprEvaluator;
- }
-
- public void setExprEvaluator(ExprNodeEvaluator exprEvaluator) {
- this.exprEvaluator = exprEvaluator;
- }
-
- public ObjectInspector getOI() {
- return OI;
- }
-
- public void setOI(ObjectInspector oI) {
- OI = oI;
- }
- }
-
}
Modified: hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/plan/PTFDeserializer.java
URL: http://svn.apache.org/viewvc/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/plan/PTFDeserializer.java?rev=1529174&r1=1529173&r2=1529174&view=diff
==============================================================================
--- hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/plan/PTFDeserializer.java (original)
+++ hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/plan/PTFDeserializer.java Fri Oct 4 14:51:38 2013
@@ -18,12 +18,13 @@
package org.apache.hadoop.hive.ql.plan;
+import java.util.ArrayDeque;
import java.util.ArrayList;
+import java.util.Deque;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
import java.util.Properties;
-import java.util.Stack;
import org.apache.hadoop.hive.conf.HiveConf;
import org.apache.hadoop.hive.ql.exec.ExprNodeEvaluator;
@@ -31,16 +32,16 @@ import org.apache.hadoop.hive.ql.exec.PT
import org.apache.hadoop.hive.ql.metadata.HiveException;
import org.apache.hadoop.hive.ql.parse.LeadLagInfo;
import org.apache.hadoop.hive.ql.parse.WindowingExprNodeEvaluatorFactory;
-import org.apache.hadoop.hive.ql.plan.PTFDesc.BoundaryDef;
-import org.apache.hadoop.hive.ql.plan.PTFDesc.PTFExpressionDef;
-import org.apache.hadoop.hive.ql.plan.PTFDesc.PTFInputDef;
-import org.apache.hadoop.hive.ql.plan.PTFDesc.PTFQueryInputDef;
-import org.apache.hadoop.hive.ql.plan.PTFDesc.PartitionedTableFunctionDef;
-import org.apache.hadoop.hive.ql.plan.PTFDesc.ShapeDetails;
-import org.apache.hadoop.hive.ql.plan.PTFDesc.ValueBoundaryDef;
-import org.apache.hadoop.hive.ql.plan.PTFDesc.WindowFrameDef;
-import org.apache.hadoop.hive.ql.plan.PTFDesc.WindowFunctionDef;
-import org.apache.hadoop.hive.ql.plan.PTFDesc.WindowTableFunctionDef;
+import org.apache.hadoop.hive.ql.plan.ptf.BoundaryDef;
+import org.apache.hadoop.hive.ql.plan.ptf.PTFExpressionDef;
+import org.apache.hadoop.hive.ql.plan.ptf.PTFInputDef;
+import org.apache.hadoop.hive.ql.plan.ptf.PTFQueryInputDef;
+import org.apache.hadoop.hive.ql.plan.ptf.PartitionedTableFunctionDef;
+import org.apache.hadoop.hive.ql.plan.ptf.ShapeDetails;
+import org.apache.hadoop.hive.ql.plan.ptf.ValueBoundaryDef;
+import org.apache.hadoop.hive.ql.plan.ptf.WindowFrameDef;
+import org.apache.hadoop.hive.ql.plan.ptf.WindowFunctionDef;
+import org.apache.hadoop.hive.ql.plan.ptf.WindowTableFunctionDef;
import org.apache.hadoop.hive.ql.udf.generic.GenericUDAFEvaluator;
import org.apache.hadoop.hive.ql.udf.generic.GenericUDFLeadLag;
import org.apache.hadoop.hive.ql.udf.ptf.TableFunctionEvaluator;
@@ -76,7 +77,7 @@ public class PTFDeserializer {
}
public void initializePTFChain(PartitionedTableFunctionDef tblFnDef) throws HiveException {
- Stack<PTFInputDef> ptfChain = new Stack<PTFInputDef>();
+ Deque<PTFInputDef> ptfChain = new ArrayDeque<PTFInputDef>();
PTFInputDef currentDef = tblFnDef;
while (currentDef != null) {
ptfChain.push(currentDef);
@@ -188,8 +189,8 @@ public class PTFDeserializer {
}
static void setupWdwFnEvaluator(WindowFunctionDef def) throws HiveException {
- ArrayList<PTFExpressionDef> args = def.getArgs();
- ArrayList<ObjectInspector> argOIs = new ArrayList<ObjectInspector>();
+ List<PTFExpressionDef> args = def.getArgs();
+ List<ObjectInspector> argOIs = new ArrayList<ObjectInspector>();
ObjectInspector[] funcArgOIs = null;
if (args != null) {
Added: hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/plan/ptf/BoundaryDef.java
URL: http://svn.apache.org/viewvc/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/plan/ptf/BoundaryDef.java?rev=1529174&view=auto
==============================================================================
--- hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/plan/ptf/BoundaryDef.java (added)
+++ hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/plan/ptf/BoundaryDef.java Fri Oct 4 14:51:38 2013
@@ -0,0 +1,17 @@
+package org.apache.hadoop.hive.ql.plan.ptf;
+
+import org.apache.hadoop.hive.ql.parse.WindowingSpec.Direction;
+
+public abstract class BoundaryDef {
+ Direction direction;
+
+ public Direction getDirection() {
+ return direction;
+ }
+
+ public void setDirection(Direction direction) {
+ this.direction = direction;
+ }
+
+ public abstract int getAmt();
+}
\ No newline at end of file
Added: hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/plan/ptf/CurrentRowDef.java
URL: http://svn.apache.org/viewvc/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/plan/ptf/CurrentRowDef.java?rev=1529174&view=auto
==============================================================================
--- hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/plan/ptf/CurrentRowDef.java (added)
+++ hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/plan/ptf/CurrentRowDef.java Fri Oct 4 14:51:38 2013
@@ -0,0 +1,20 @@
+package org.apache.hadoop.hive.ql.plan.ptf;
+
+import org.apache.hadoop.hive.ql.parse.WindowingSpec.Direction;
+
+public class CurrentRowDef extends BoundaryDef {
+
+ public int compareTo(BoundaryDef other) {
+ return getDirection().compareTo(other.getDirection());
+ }
+
+ @Override
+ public Direction getDirection() {
+ return Direction.CURRENT;
+ }
+
+ @Override
+ public int getAmt() {
+ return 0;
+ }
+}
\ No newline at end of file
Added: hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/plan/ptf/OrderDef.java
URL: http://svn.apache.org/viewvc/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/plan/ptf/OrderDef.java?rev=1529174&view=auto
==============================================================================
--- hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/plan/ptf/OrderDef.java (added)
+++ hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/plan/ptf/OrderDef.java Fri Oct 4 14:51:38 2013
@@ -0,0 +1,29 @@
+package org.apache.hadoop.hive.ql.plan.ptf;
+
+import java.util.ArrayList;
+import java.util.List;
+
+public class OrderDef {
+ List<OrderExpressionDef> expressions;
+
+ public OrderDef() {}
+
+ public OrderDef(PartitionDef pDef) {
+ for(PTFExpressionDef eDef : pDef.getExpressions()) {
+ addExpression(new OrderExpressionDef(eDef));
+ }
+ }
+
+ public List<OrderExpressionDef> getExpressions() {
+ return expressions;
+ }
+
+ public void setExpressions(ArrayList<OrderExpressionDef> expressions) {
+ this.expressions = expressions;
+ }
+ public void addExpression(OrderExpressionDef e) {
+ expressions = expressions == null ? new ArrayList<OrderExpressionDef>() : expressions;
+ expressions.add(e);
+ }
+}
+
Added: hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/plan/ptf/OrderExpressionDef.java
URL: http://svn.apache.org/viewvc/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/plan/ptf/OrderExpressionDef.java?rev=1529174&view=auto
==============================================================================
--- hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/plan/ptf/OrderExpressionDef.java (added)
+++ hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/plan/ptf/OrderExpressionDef.java Fri Oct 4 14:51:38 2013
@@ -0,0 +1,22 @@
+package org.apache.hadoop.hive.ql.plan.ptf;
+
+import org.apache.hadoop.hive.ql.parse.PTFInvocationSpec.Order;
+
+public class OrderExpressionDef extends PTFExpressionDef {
+ private Order order;
+
+ public OrderExpressionDef() {}
+ public OrderExpressionDef(PTFExpressionDef e) {
+ super(e);
+ order = Order.ASC;
+ }
+
+ public Order getOrder() {
+ return order;
+ }
+
+ public void setOrder(Order order) {
+ this.order = order;
+ }
+}
+
Added: hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/plan/ptf/PTFExpressionDef.java
URL: http://svn.apache.org/viewvc/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/plan/ptf/PTFExpressionDef.java?rev=1529174&view=auto
==============================================================================
--- hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/plan/ptf/PTFExpressionDef.java (added)
+++ hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/plan/ptf/PTFExpressionDef.java Fri Oct 4 14:51:38 2013
@@ -0,0 +1,58 @@
+package org.apache.hadoop.hive.ql.plan.ptf;
+
+import org.apache.hadoop.hive.ql.exec.ExprNodeEvaluator;
+import org.apache.hadoop.hive.ql.exec.PTFUtils;
+import org.apache.hadoop.hive.ql.plan.ExprNodeDesc;
+import org.apache.hadoop.hive.serde2.objectinspector.ObjectInspector;
+
+public class PTFExpressionDef {
+ String expressionTreeString;
+ ExprNodeDesc exprNode;
+ transient ExprNodeEvaluator exprEvaluator;
+ transient ObjectInspector OI;
+
+ static{
+ PTFUtils.makeTransient(PTFExpressionDef.class, "exprEvaluator", "OI");
+ }
+
+ public PTFExpressionDef() {}
+
+ public PTFExpressionDef(PTFExpressionDef e) {
+ expressionTreeString = e.getExpressionTreeString();
+ exprNode = e.getExprNode();
+ exprEvaluator = e.getExprEvaluator();
+ OI = e.getOI();
+ }
+
+ public String getExpressionTreeString() {
+ return expressionTreeString;
+ }
+
+ public void setExpressionTreeString(String expressionTreeString) {
+ this.expressionTreeString = expressionTreeString;
+ }
+
+ public ExprNodeDesc getExprNode() {
+ return exprNode;
+ }
+
+ public void setExprNode(ExprNodeDesc exprNode) {
+ this.exprNode = exprNode;
+ }
+
+ public ExprNodeEvaluator getExprEvaluator() {
+ return exprEvaluator;
+ }
+
+ public void setExprEvaluator(ExprNodeEvaluator exprEvaluator) {
+ this.exprEvaluator = exprEvaluator;
+ }
+
+ public ObjectInspector getOI() {
+ return OI;
+ }
+
+ public void setOI(ObjectInspector oI) {
+ OI = oI;
+ }
+}
Added: hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/plan/ptf/PTFInputDef.java
URL: http://svn.apache.org/viewvc/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/plan/ptf/PTFInputDef.java?rev=1529174&view=auto
==============================================================================
--- hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/plan/ptf/PTFInputDef.java (added)
+++ hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/plan/ptf/PTFInputDef.java Fri Oct 4 14:51:38 2013
@@ -0,0 +1,32 @@
+package org.apache.hadoop.hive.ql.plan.ptf;
+
+
+public abstract class PTFInputDef {
+ private String expressionTreeString;
+ private ShapeDetails outputShape;
+ private String alias;
+
+ public String getExpressionTreeString() {
+ return expressionTreeString;
+ }
+
+ public void setExpressionTreeString(String expressionTreeString) {
+ this.expressionTreeString = expressionTreeString;
+ }
+
+ public ShapeDetails getOutputShape() {
+ return outputShape;
+ }
+
+ public void setOutputShape(ShapeDetails outputShape) {
+ this.outputShape = outputShape;
+ }
+ public String getAlias() {
+ return alias;
+ }
+ public void setAlias(String alias) {
+ this.alias = alias;
+ }
+
+ public abstract PTFInputDef getInput();
+}
\ No newline at end of file
Added: hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/plan/ptf/PTFQueryInputDef.java
URL: http://svn.apache.org/viewvc/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/plan/ptf/PTFQueryInputDef.java?rev=1529174&view=auto
==============================================================================
--- hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/plan/ptf/PTFQueryInputDef.java (added)
+++ hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/plan/ptf/PTFQueryInputDef.java Fri Oct 4 14:51:38 2013
@@ -0,0 +1,29 @@
+package org.apache.hadoop.hive.ql.plan.ptf;
+
+import org.apache.hadoop.hive.ql.parse.PTFInvocationSpec.PTFQueryInputType;
+
+public class PTFQueryInputDef extends PTFInputDef {
+ private String destination;
+ private PTFQueryInputType type;
+
+ public String getDestination() {
+ return destination;
+ }
+
+ public void setDestination(String destination) {
+ this.destination = destination;
+ }
+
+ public PTFQueryInputType getType() {
+ return type;
+ }
+
+ public void setType(PTFQueryInputType type) {
+ this.type = type;
+ }
+
+ @Override
+ public PTFInputDef getInput() {
+ return null;
+ }
+}
\ No newline at end of file
Added: hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/plan/ptf/PartitionDef.java
URL: http://svn.apache.org/viewvc/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/plan/ptf/PartitionDef.java?rev=1529174&view=auto
==============================================================================
--- hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/plan/ptf/PartitionDef.java (added)
+++ hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/plan/ptf/PartitionDef.java Fri Oct 4 14:51:38 2013
@@ -0,0 +1,21 @@
+package org.apache.hadoop.hive.ql.plan.ptf;
+
+import java.util.ArrayList;
+import java.util.List;
+
+
+public class PartitionDef {
+ private List<PTFExpressionDef> expressions;
+
+ public List<PTFExpressionDef> getExpressions() {
+ return expressions;
+ }
+
+ public void setExpressions(List<PTFExpressionDef> expressions) {
+ this.expressions = expressions;
+ }
+ public void addExpression(PTFExpressionDef e) {
+ expressions = expressions == null ? new ArrayList<PTFExpressionDef>() : expressions;
+ expressions.add(e);
+ }
+}
Added: hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/plan/ptf/PartitionedTableFunctionDef.java
URL: http://svn.apache.org/viewvc/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/plan/ptf/PartitionedTableFunctionDef.java?rev=1529174&view=auto
==============================================================================
--- hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/plan/ptf/PartitionedTableFunctionDef.java (added)
+++ hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/plan/ptf/PartitionedTableFunctionDef.java Fri Oct 4 14:51:38 2013
@@ -0,0 +1,111 @@
+package org.apache.hadoop.hive.ql.plan.ptf;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.apache.hadoop.hive.ql.udf.ptf.TableFunctionEvaluator;
+
+public class PartitionedTableFunctionDef extends PTFInputDef {
+ private String name;
+ private String resolverClassName;
+ private ShapeDetails rawInputShape;
+ private boolean carryForwardNames;
+ private PTFInputDef input;
+ private List<PTFExpressionDef> args;
+ private PartitionDef partition;
+ private OrderDef order;
+ private TableFunctionEvaluator tFunction;
+ boolean transformsRawInput;
+
+ public String getName() {
+ return name;
+ }
+
+ public void setName(String name) {
+ this.name = name;
+ }
+
+ public ShapeDetails getRawInputShape() {
+ return rawInputShape;
+ }
+
+ public void setRawInputShape(ShapeDetails rawInputShape) {
+ this.rawInputShape = rawInputShape;
+ }
+
+ public boolean isCarryForwardNames() {
+ return carryForwardNames;
+ }
+
+ public void setCarryForwardNames(boolean carryForwardNames) {
+ this.carryForwardNames = carryForwardNames;
+ }
+
+ @Override
+ public PTFInputDef getInput() {
+ return input;
+ }
+
+ public void setInput(PTFInputDef input) {
+ this.input = input;
+ }
+
+ public PartitionDef getPartition() {
+ return partition;
+ }
+
+ public void setPartition(PartitionDef partition) {
+ this.partition = partition;
+ }
+
+ public OrderDef getOrder() {
+ return order;
+ }
+
+ public void setOrder(OrderDef order) {
+ this.order = order;
+ }
+
+ public TableFunctionEvaluator getTFunction() {
+ return tFunction;
+ }
+ public void setTFunction(TableFunctionEvaluator tFunction) {
+ this.tFunction = tFunction;
+ }
+
+ public List<PTFExpressionDef> getArgs() {
+ return args;
+ }
+
+ public void setArgs(List<PTFExpressionDef> args) {
+ this.args = args;
+ }
+
+ public void addArg(PTFExpressionDef arg) {
+ args = args == null ? new ArrayList<PTFExpressionDef>() : args;
+ args.add(arg);
+ }
+
+ public PartitionedTableFunctionDef getStartOfChain() {
+ if (input instanceof PartitionedTableFunctionDef ) {
+ return ((PartitionedTableFunctionDef)input).getStartOfChain();
+ }
+ return this;
+ }
+
+ public boolean isTransformsRawInput() {
+ return transformsRawInput;
+ }
+
+ public void setTransformsRawInput(boolean transformsRawInput) {
+ this.transformsRawInput = transformsRawInput;
+ }
+
+ public String getResolverClassName() {
+ return resolverClassName;
+ }
+
+ public void setResolverClassName(String resolverClassName) {
+ this.resolverClassName = resolverClassName;
+ }
+}
\ No newline at end of file
Added: hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/plan/ptf/RangeBoundaryDef.java
URL: http://svn.apache.org/viewvc/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/plan/ptf/RangeBoundaryDef.java?rev=1529174&view=auto
==============================================================================
--- hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/plan/ptf/RangeBoundaryDef.java (added)
+++ hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/plan/ptf/RangeBoundaryDef.java Fri Oct 4 14:51:38 2013
@@ -0,0 +1,24 @@
+package org.apache.hadoop.hive.ql.plan.ptf;
+
+
+public class RangeBoundaryDef extends BoundaryDef {
+ private int amt;
+
+ public int compareTo(BoundaryDef other) {
+ int c = getDirection().compareTo(other.getDirection());
+ if (c != 0) {
+ return c;
+ }
+ RangeBoundaryDef rb = (RangeBoundaryDef) other;
+ return getAmt() - rb.getAmt();
+ }
+
+ @Override
+ public int getAmt() {
+ return amt;
+ }
+
+ public void setAmt(int amt) {
+ this.amt = amt;
+ }
+}
\ No newline at end of file
Added: hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/plan/ptf/ShapeDetails.java
URL: http://svn.apache.org/viewvc/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/plan/ptf/ShapeDetails.java?rev=1529174&view=auto
==============================================================================
--- hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/plan/ptf/ShapeDetails.java (added)
+++ hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/plan/ptf/ShapeDetails.java Fri Oct 4 14:51:38 2013
@@ -0,0 +1,80 @@
+package org.apache.hadoop.hive.ql.plan.ptf;
+
+import java.util.List;
+import java.util.Map;
+
+import org.apache.hadoop.hive.ql.exec.PTFUtils;
+import org.apache.hadoop.hive.ql.parse.RowResolver;
+import org.apache.hadoop.hive.ql.parse.TypeCheckCtx;
+import org.apache.hadoop.hive.serde2.SerDe;
+import org.apache.hadoop.hive.serde2.objectinspector.StructObjectInspector;
+
+public class ShapeDetails {
+ String serdeClassName;
+ Map<String, String> serdeProps;
+ List<String> columnNames;
+ transient StructObjectInspector OI;
+ transient SerDe serde;
+ transient RowResolver rr;
+ transient TypeCheckCtx typeCheckCtx;
+
+ static {
+ PTFUtils.makeTransient(ShapeDetails.class, "OI", "serde", "rr", "typeCheckCtx");
+ }
+
+ public String getSerdeClassName() {
+ return serdeClassName;
+ }
+
+ public void setSerdeClassName(String serdeClassName) {
+ this.serdeClassName = serdeClassName;
+ }
+
+ public Map<String, String> getSerdeProps() {
+ return serdeProps;
+ }
+
+ public void setSerdeProps(Map<String, String> serdeProps) {
+ this.serdeProps = serdeProps;
+ }
+
+ public List<String> getColumnNames() {
+ return columnNames;
+ }
+
+ public void setColumnNames(List<String> columnNames) {
+ this.columnNames = columnNames;
+ }
+
+ public StructObjectInspector getOI() {
+ return OI;
+ }
+
+ public void setOI(StructObjectInspector oI) {
+ OI = oI;
+ }
+
+ public SerDe getSerde() {
+ return serde;
+ }
+
+ public void setSerde(SerDe serde) {
+ this.serde = serde;
+ }
+
+ public RowResolver getRr() {
+ return rr;
+ }
+
+ public void setRr(RowResolver rr) {
+ this.rr = rr;
+ }
+
+ public TypeCheckCtx getTypeCheckCtx() {
+ return typeCheckCtx;
+ }
+
+ public void setTypeCheckCtx(TypeCheckCtx typeCheckCtx) {
+ this.typeCheckCtx = typeCheckCtx;
+ }
+}
\ No newline at end of file
Added: hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/plan/ptf/ValueBoundaryDef.java
URL: http://svn.apache.org/viewvc/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/plan/ptf/ValueBoundaryDef.java?rev=1529174&view=auto
==============================================================================
--- hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/plan/ptf/ValueBoundaryDef.java (added)
+++ hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/plan/ptf/ValueBoundaryDef.java Fri Oct 4 14:51:38 2013
@@ -0,0 +1,48 @@
+package org.apache.hadoop.hive.ql.plan.ptf;
+
+import org.apache.hadoop.hive.ql.exec.ExprNodeEvaluator;
+import org.apache.hadoop.hive.ql.plan.ExprNodeDesc;
+import org.apache.hadoop.hive.serde2.objectinspector.ObjectInspector;
+
+public class ValueBoundaryDef extends BoundaryDef {
+ private PTFExpressionDef expressionDef;
+ private int amt;
+
+ public int compareTo(BoundaryDef other) {
+ int c = getDirection().compareTo(other.getDirection());
+ if (c != 0) {
+ return c;
+ }
+ ValueBoundaryDef vb = (ValueBoundaryDef) other;
+ return getAmt() - vb.getAmt();
+ }
+
+ public PTFExpressionDef getExpressionDef() {
+ return expressionDef;
+ }
+
+ public void setExpressionDef(PTFExpressionDef expressionDef) {
+ this.expressionDef = expressionDef;
+ }
+
+ public ExprNodeDesc getExprNode() {
+ return expressionDef == null ? null : expressionDef.getExprNode();
+ }
+
+ public ExprNodeEvaluator getExprEvaluator() {
+ return expressionDef == null ? null : expressionDef.getExprEvaluator();
+ }
+
+ public ObjectInspector getOI() {
+ return expressionDef == null ? null : expressionDef.getOI();
+ }
+
+ @Override
+ public int getAmt() {
+ return amt;
+ }
+
+ public void setAmt(int amt) {
+ this.amt = amt;
+ }
+}
\ No newline at end of file
Added: hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/plan/ptf/WindowExpressionDef.java
URL: http://svn.apache.org/viewvc/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/plan/ptf/WindowExpressionDef.java?rev=1529174&view=auto
==============================================================================
--- hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/plan/ptf/WindowExpressionDef.java (added)
+++ hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/plan/ptf/WindowExpressionDef.java Fri Oct 4 14:51:38 2013
@@ -0,0 +1,20 @@
+package org.apache.hadoop.hive.ql.plan.ptf;
+
+
+public class WindowExpressionDef extends PTFExpressionDef {
+ private String alias;
+
+ public WindowExpressionDef() {}
+
+ public WindowExpressionDef(PTFExpressionDef eDef) {
+ super(eDef);
+ }
+
+ public String getAlias() {
+ return alias;
+ }
+
+ public void setAlias(String alias) {
+ this.alias = alias;
+ }
+}
\ No newline at end of file
Added: hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/plan/ptf/WindowFrameDef.java
URL: http://svn.apache.org/viewvc/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/plan/ptf/WindowFrameDef.java?rev=1529174&view=auto
==============================================================================
--- hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/plan/ptf/WindowFrameDef.java (added)
+++ hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/plan/ptf/WindowFrameDef.java Fri Oct 4 14:51:38 2013
@@ -0,0 +1,23 @@
+package org.apache.hadoop.hive.ql.plan.ptf;
+
+
+public class WindowFrameDef {
+ private BoundaryDef start;
+ private BoundaryDef end;
+
+ public BoundaryDef getStart() {
+ return start;
+ }
+
+ public void setStart(BoundaryDef start) {
+ this.start = start;
+ }
+
+ public BoundaryDef getEnd() {
+ return end;
+ }
+
+ public void setEnd(BoundaryDef end) {
+ this.end = end;
+ }
+}
\ No newline at end of file
Added: hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/plan/ptf/WindowFunctionDef.java
URL: http://svn.apache.org/viewvc/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/plan/ptf/WindowFunctionDef.java?rev=1529174&view=auto
==============================================================================
--- hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/plan/ptf/WindowFunctionDef.java (added)
+++ hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/plan/ptf/WindowFunctionDef.java Fri Oct 4 14:51:38 2013
@@ -0,0 +1,78 @@
+package org.apache.hadoop.hive.ql.plan.ptf;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.apache.hadoop.hive.ql.udf.generic.GenericUDAFEvaluator;
+
+public class WindowFunctionDef extends WindowExpressionDef {
+ String name;
+ boolean isStar;
+ boolean isDistinct;
+ List<PTFExpressionDef> args;
+ WindowFrameDef windowFrame;
+ GenericUDAFEvaluator wFnEval;
+ boolean pivotResult;
+
+ public String getName() {
+ return name;
+ }
+
+ public void setName(String name) {
+ this.name = name;
+ }
+
+ public boolean isStar() {
+ return isStar;
+ }
+
+ public void setStar(boolean isStar) {
+ this.isStar = isStar;
+ }
+
+ public boolean isDistinct() {
+ return isDistinct;
+ }
+
+ public void setDistinct(boolean isDistinct) {
+ this.isDistinct = isDistinct;
+ }
+
+ public List<PTFExpressionDef> getArgs() {
+ return args;
+ }
+
+ public void setArgs(List<PTFExpressionDef> args) {
+ this.args = args;
+ }
+
+ public void addArg(PTFExpressionDef arg) {
+ args = args == null ? new ArrayList<PTFExpressionDef>() : args;
+ args.add(arg);
+ }
+
+ public WindowFrameDef getWindowFrame() {
+ return windowFrame;
+ }
+
+ public void setWindowFrame(WindowFrameDef windowFrame) {
+ this.windowFrame = windowFrame;
+ }
+
+ public GenericUDAFEvaluator getWFnEval() {
+ return wFnEval;
+ }
+
+ public void setWFnEval(GenericUDAFEvaluator wFnEval) {
+ this.wFnEval = wFnEval;
+ }
+
+ public boolean isPivotResult() {
+ return pivotResult;
+ }
+
+ public void setPivotResult(boolean pivotResult) {
+ this.pivotResult = pivotResult;
+ }
+
+}
\ No newline at end of file
Added: hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/plan/ptf/WindowTableFunctionDef.java
URL: http://svn.apache.org/viewvc/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/plan/ptf/WindowTableFunctionDef.java?rev=1529174&view=auto
==============================================================================
--- hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/plan/ptf/WindowTableFunctionDef.java (added)
+++ hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/plan/ptf/WindowTableFunctionDef.java Fri Oct 4 14:51:38 2013
@@ -0,0 +1,15 @@
+package org.apache.hadoop.hive.ql.plan.ptf;
+
+import java.util.List;
+
+
+public class WindowTableFunctionDef extends PartitionedTableFunctionDef {
+ List<WindowFunctionDef> windowFunctions;
+
+ public List<WindowFunctionDef> getWindowFunctions() {
+ return windowFunctions;
+ }
+ public void setWindowFunctions(List<WindowFunctionDef> windowFunctions) {
+ this.windowFunctions = windowFunctions;
+ }
+}
Modified: hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/ptf/NPath.java
URL: http://svn.apache.org/viewvc/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/ptf/NPath.java?rev=1529174&r1=1529173&r2=1529174&view=diff
==============================================================================
--- hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/ptf/NPath.java (original)
+++ hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/ptf/NPath.java Fri Oct 4 14:51:38 2013
@@ -40,9 +40,9 @@ import org.apache.hadoop.hive.ql.parse.W
import org.apache.hadoop.hive.ql.plan.ExprNodeColumnDesc;
import org.apache.hadoop.hive.ql.plan.ExprNodeDesc;
import org.apache.hadoop.hive.ql.plan.PTFDesc;
-import org.apache.hadoop.hive.ql.plan.PTFDesc.PTFExpressionDef;
-import org.apache.hadoop.hive.ql.plan.PTFDesc.PTFInputDef;
-import org.apache.hadoop.hive.ql.plan.PTFDesc.PartitionedTableFunctionDef;
+import org.apache.hadoop.hive.ql.plan.ptf.PTFExpressionDef;
+import org.apache.hadoop.hive.ql.plan.ptf.PTFInputDef;
+import org.apache.hadoop.hive.ql.plan.ptf.PartitionedTableFunctionDef;
import org.apache.hadoop.hive.serde2.objectinspector.ConstantObjectInspector;
import org.apache.hadoop.hive.serde2.objectinspector.ObjectInspector;
import org.apache.hadoop.hive.serde2.objectinspector.ObjectInspectorConverters;
@@ -101,7 +101,7 @@ public class NPath extends TableFunction
{
int sz = syFnRes.nextRow - (pItr.getIndex() - 1);
Object selectListInput = NPath.getSelectListInput(iRow,
- tDef.getInput().getOutputShape().getOI(), pItr, sz);
+ tableDef.getInput().getOutputShape().getOI(), pItr, sz);
ArrayList<Object> oRow = new ArrayList<Object>();
for(ExprNodeEvaluator resExprEval : resultExprInfo.resultExprEvals)
{
@@ -161,7 +161,7 @@ public class NPath extends TableFunction
NPath evaluator = (NPath) getEvaluator();
PartitionedTableFunctionDef tDef = evaluator.getTableDef();
- ArrayList<PTFExpressionDef> args = tDef.getArgs();
+ List<PTFExpressionDef> args = tDef.getArgs();
int argsNum = args == null ? 0 : args.size();
if ( argsNum < 4 )
@@ -199,7 +199,7 @@ public class NPath extends TableFunction
* validate and setup patternStr
*/
private void validateAndSetupPatternStr(NPath evaluator,
- ArrayList<PTFExpressionDef> args) throws SemanticException {
+ List<PTFExpressionDef> args) throws SemanticException {
PTFExpressionDef symboPatternArg = args.get(0);
ObjectInspector symbolPatternArgOI = symboPatternArg.getOI();
@@ -219,7 +219,7 @@ public class NPath extends TableFunction
* validate and setup SymbolInfo
*/
private void validateAndSetupSymbolInfo(NPath evaluator,
- ArrayList<PTFExpressionDef> args,
+ List<PTFExpressionDef> args,
int argsNum) throws SemanticException {
int symbolArgsSz = argsNum - 2;
if ( symbolArgsSz % 2 != 0)
@@ -263,7 +263,7 @@ public class NPath extends TableFunction
* validate and setup resultExprStr
*/
private void validateAndSetupResultExprStr(NPath evaluator,
- ArrayList<PTFExpressionDef> args,
+ List<PTFExpressionDef> args,
int argsNum) throws SemanticException {
PTFExpressionDef resultExprArg = args.get(argsNum - 1);
ObjectInspector resultExprArgOI = resultExprArg.getOI();
@@ -303,7 +303,7 @@ public class NPath extends TableFunction
NPath evaluator = (NPath) getEvaluator();
PartitionedTableFunctionDef tDef = evaluator.getTableDef();
- ArrayList<PTFExpressionDef> args = tDef.getArgs();
+ List<PTFExpressionDef> args = tDef.getArgs();
int argsNum = args.size();
validateAndSetupPatternStr(evaluator, args);
Modified: hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/ptf/Noop.java
URL: http://svn.apache.org/viewvc/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/ptf/Noop.java?rev=1529174&r1=1529173&r2=1529174&view=diff
==============================================================================
--- hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/ptf/Noop.java (original)
+++ hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/ptf/Noop.java Fri Oct 4 14:51:38 2013
@@ -18,43 +18,37 @@
package org.apache.hadoop.hive.ql.udf.ptf;
-import java.util.ArrayList;
+import java.util.List;
import org.apache.hadoop.hive.ql.exec.PTFPartition;
import org.apache.hadoop.hive.ql.exec.PTFPartition.PTFPartitionIterator;
import org.apache.hadoop.hive.ql.metadata.HiveException;
import org.apache.hadoop.hive.ql.parse.SemanticException;
import org.apache.hadoop.hive.ql.plan.PTFDesc;
-import org.apache.hadoop.hive.ql.plan.PTFDesc.PartitionedTableFunctionDef;
+import org.apache.hadoop.hive.ql.plan.ptf.PartitionedTableFunctionDef;
import org.apache.hadoop.hive.serde2.objectinspector.StructObjectInspector;
-public class Noop extends TableFunctionEvaluator
-{
+public class Noop extends TableFunctionEvaluator {
@Override
- public PTFPartition execute(PTFPartition iPart) throws HiveException
- {
+ public PTFPartition execute(PTFPartition iPart) throws HiveException {
return iPart;
}
@Override
- protected void execute(PTFPartitionIterator<Object> pItr, PTFPartition oPart)
- {
+ protected void execute(PTFPartitionIterator<Object> pItr, PTFPartition oPart) {
throw new UnsupportedOperationException();
}
- public static class NoopResolver extends TableFunctionResolver
- {
+ public static class NoopResolver extends TableFunctionResolver {
@Override
- protected TableFunctionEvaluator createEvaluator(PTFDesc ptfDesc, PartitionedTableFunctionDef tDef)
- {
+ protected TableFunctionEvaluator createEvaluator(PTFDesc ptfDesc, PartitionedTableFunctionDef tDef) {
return new Noop();
}
@Override
- public void setupOutputOI() throws SemanticException
- {
+ public void setupOutputOI() throws SemanticException {
StructObjectInspector OI = getEvaluator().getTableDef().getInput().getOutputShape().getOI();
setOutputOI(OI);
}
@@ -75,7 +69,7 @@ public class Noop extends TableFunctionE
* Set to null only because carryForwardNames is true.
*/
@Override
- public ArrayList<String> getOutputColumnNames() {
+ public List<String> getOutputColumnNames() {
return null;
}
Modified: hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/ptf/NoopWithMap.java
URL: http://svn.apache.org/viewvc/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/ptf/NoopWithMap.java?rev=1529174&r1=1529173&r2=1529174&view=diff
==============================================================================
--- hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/ptf/NoopWithMap.java (original)
+++ hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/ptf/NoopWithMap.java Fri Oct 4 14:51:38 2013
@@ -24,7 +24,7 @@ import org.apache.hadoop.hive.ql.exec.PT
import org.apache.hadoop.hive.ql.metadata.HiveException;
import org.apache.hadoop.hive.ql.parse.SemanticException;
import org.apache.hadoop.hive.ql.plan.PTFDesc;
-import org.apache.hadoop.hive.ql.plan.PTFDesc.PartitionedTableFunctionDef;
+import org.apache.hadoop.hive.ql.plan.ptf.PartitionedTableFunctionDef;
import org.apache.hadoop.hive.serde2.objectinspector.StructObjectInspector;
public class NoopWithMap extends Noop
Modified: hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/ptf/TableFunctionEvaluator.java
URL: http://svn.apache.org/viewvc/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/ptf/TableFunctionEvaluator.java?rev=1529174&r1=1529173&r2=1529174&view=diff
==============================================================================
--- hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/ptf/TableFunctionEvaluator.java (original)
+++ hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/ptf/TableFunctionEvaluator.java Fri Oct 4 14:51:38 2013
@@ -24,7 +24,7 @@ import org.apache.hadoop.hive.ql.exec.PT
import org.apache.hadoop.hive.ql.exec.PTFUtils;
import org.apache.hadoop.hive.ql.metadata.HiveException;
import org.apache.hadoop.hive.ql.plan.PTFDesc;
-import org.apache.hadoop.hive.ql.plan.PTFDesc.PartitionedTableFunctionDef;
+import org.apache.hadoop.hive.ql.plan.ptf.PartitionedTableFunctionDef;
import org.apache.hadoop.hive.ql.udf.generic.GenericUDAFEvaluator;
import org.apache.hadoop.hive.serde2.objectinspector.StructObjectInspector;
@@ -46,8 +46,7 @@ import org.apache.hadoop.hive.serde2.obj
* </ol>
*
*/
-public abstract class TableFunctionEvaluator
-{
+public abstract class TableFunctionEvaluator {
/*
* how is this different from the OutpuShape set on the TableDef.
* This is the OI of the object coming out of the PTF.
@@ -59,52 +58,45 @@ public abstract class TableFunctionEvalu
* same comment as OI applies here.
*/
transient protected StructObjectInspector rawInputOI;
- protected PartitionedTableFunctionDef tDef;
+ protected PartitionedTableFunctionDef tableDef;
protected PTFDesc ptfDesc;
boolean transformsRawInput;
transient protected PTFPartition outputPartition;
- static{
+ static {
+ //TODO is this a bug? The field is not named outputOI it is named OI
PTFUtils.makeTransient(TableFunctionEvaluator.class, "outputOI", "rawInputOI");
}
- public StructObjectInspector getOutputOI()
- {
+ public StructObjectInspector getOutputOI() {
return OI;
}
- protected void setOutputOI(StructObjectInspector outputOI)
- {
+ protected void setOutputOI(StructObjectInspector outputOI) {
OI = outputOI;
}
- public PartitionedTableFunctionDef getTableDef()
- {
- return tDef;
+ public PartitionedTableFunctionDef getTableDef() {
+ return tableDef;
}
- public void setTableDef(PartitionedTableFunctionDef tDef)
- {
- this.tDef = tDef;
+ public void setTableDef(PartitionedTableFunctionDef tDef) {
+ this.tableDef = tDef;
}
- protected PTFDesc getQueryDef()
- {
+ protected PTFDesc getQueryDef() {
return ptfDesc;
}
- protected void setQueryDef(PTFDesc ptfDesc)
- {
+ protected void setQueryDef(PTFDesc ptfDesc) {
this.ptfDesc = ptfDesc;
}
- public StructObjectInspector getRawInputOI()
- {
+ public StructObjectInspector getRawInputOI() {
return rawInputOI;
}
- protected void setRawInputOI(StructObjectInspector rawInputOI)
- {
+ protected void setRawInputOI(StructObjectInspector rawInputOI) {
this.rawInputOI = rawInputOI;
}
@@ -117,17 +109,15 @@ public abstract class TableFunctionEvalu
}
public PTFPartition execute(PTFPartition iPart)
- throws HiveException
- {
+ throws HiveException {
PTFPartitionIterator<Object> pItr = iPart.iterator();
PTFOperator.connectLeadLagFunctionsToPartition(ptfDesc, pItr);
if ( outputPartition == null ) {
outputPartition = PTFPartition.create(ptfDesc.getCfg(),
- tDef.getOutputShape().getSerde(),
- OI, tDef.getOutputShape().getOI());
- }
- else {
+ tableDef.getOutputShape().getSerde(),
+ OI, tableDef.getOutputShape().getOI());
+ } else {
outputPartition.reset();
}
@@ -137,17 +127,14 @@ public abstract class TableFunctionEvalu
protected abstract void execute(PTFPartitionIterator<Object> pItr, PTFPartition oPart) throws HiveException;
- public PTFPartition transformRawInput(PTFPartition iPart) throws HiveException
- {
- if ( !isTransformsRawInput())
- {
- throw new HiveException(String.format("Internal Error: mapExecute called on function (%s)that has no Map Phase", tDef.getName()));
+ public PTFPartition transformRawInput(PTFPartition iPart) throws HiveException {
+ if (!isTransformsRawInput()) {
+ throw new HiveException(String.format("Internal Error: mapExecute called on function (%s)that has no Map Phase", tableDef.getName()));
}
return _transformRawInput(iPart);
}
- protected PTFPartition _transformRawInput(PTFPartition iPart) throws HiveException
- {
+ protected PTFPartition _transformRawInput(PTFPartition iPart) throws HiveException {
return null;
}
}
Modified: hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/ptf/TableFunctionResolver.java
URL: http://svn.apache.org/viewvc/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/ptf/TableFunctionResolver.java?rev=1529174&r1=1529173&r2=1529174&view=diff
==============================================================================
--- hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/ptf/TableFunctionResolver.java (original)
+++ hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/ptf/TableFunctionResolver.java Fri Oct 4 14:51:38 2013
@@ -18,7 +18,7 @@
package org.apache.hadoop.hive.ql.udf.ptf;
-import java.util.ArrayList;
+import java.util.List;
import org.apache.hadoop.hive.conf.HiveConf;
import org.apache.hadoop.hive.ql.exec.ExprNodeEvaluator;
@@ -27,7 +27,7 @@ import org.apache.hadoop.hive.ql.metadat
import org.apache.hadoop.hive.ql.parse.SemanticException;
import org.apache.hadoop.hive.ql.plan.ExprNodeDesc;
import org.apache.hadoop.hive.ql.plan.PTFDesc;
-import org.apache.hadoop.hive.ql.plan.PTFDesc.PartitionedTableFunctionDef;
+import org.apache.hadoop.hive.ql.plan.ptf.PartitionedTableFunctionDef;
import org.apache.hadoop.hive.ql.udf.generic.GenericUDAFResolver;
import org.apache.hadoop.hive.serde2.objectinspector.StructObjectInspector;
@@ -53,8 +53,7 @@ import org.apache.hadoop.hive.serde2.obj
* </ol>
*/
@SuppressWarnings("deprecation")
-public abstract class TableFunctionResolver
-{
+public abstract class TableFunctionResolver {
TableFunctionEvaluator evaluator;
PTFDesc ptfDesc;
@@ -65,8 +64,7 @@ public abstract class TableFunctionResol
* the transformsRawInput boolean.
*/
public void initialize(HiveConf cfg, PTFDesc ptfDesc, PartitionedTableFunctionDef tDef)
- throws SemanticException
- {
+ throws SemanticException {
this.ptfDesc = ptfDesc;
evaluator = createEvaluator(ptfDesc, tDef);
@@ -79,16 +77,14 @@ public abstract class TableFunctionResol
* called during deserialization of a QueryDef during runtime.
*/
public void initialize(PTFDesc ptfDesc, PartitionedTableFunctionDef tDef, TableFunctionEvaluator evaluator)
- throws HiveException
- {
+ throws HiveException {
this.evaluator = evaluator;
this.ptfDesc = ptfDesc;
evaluator.setTableDef(tDef);
evaluator.setQueryDef(ptfDesc);
}
- public TableFunctionEvaluator getEvaluator()
- {
+ public TableFunctionEvaluator getEvaluator() {
return evaluator;
}
@@ -105,7 +101,7 @@ public abstract class TableFunctionResol
* A PTF Function must provide the 'external' names of the columns in its Output.
*
*/
- public abstract ArrayList<String> getOutputColumnNames() throws SemanticException;
+ public abstract List<String> getOutputColumnNames() throws SemanticException;
/**
@@ -127,10 +123,8 @@ public abstract class TableFunctionResol
* - subsequent to this call, a call to getRawInputOI call on the {@link TableFunctionEvaluator} must return the OI
* of the output of this function.
*/
- public void setupRawInputOI() throws SemanticException
- {
- if (!transformsRawInput())
- {
+ public void setupRawInputOI() throws SemanticException {
+ if (!transformsRawInput()) {
return;
}
throw new SemanticException(
@@ -141,9 +135,8 @@ public abstract class TableFunctionResol
* A PTF Function must provide the 'external' names of the columns in the transformed Raw Input.
*
*/
- public ArrayList<String> getRawInputColumnNames() throws SemanticException {
- if (!transformsRawInput())
- {
+ public List<String> getRawInputColumnNames() throws SemanticException {
+ if (!transformsRawInput()) {
return null;
}
throw new SemanticException(
@@ -153,10 +146,8 @@ public abstract class TableFunctionResol
/*
* Same responsibility as initializeOI, but for the RawInput.
*/
- public void initializeRawInputOI() throws HiveException
- {
- if (!transformsRawInput())
- {
+ public void initializeRawInputOI() throws HiveException {
+ if (!transformsRawInput()) {
return;
}
throw new HiveException(
@@ -166,21 +157,18 @@ public abstract class TableFunctionResol
/*
* callback method used by subclasses to set the RawInputOI on the Evaluator.
*/
- protected void setRawInputOI(StructObjectInspector rawInputOI)
- {
+ protected void setRawInputOI(StructObjectInspector rawInputOI) {
evaluator.setRawInputOI(rawInputOI);
}
/*
* callback method used by subclasses to set the OutputOI on the Evaluator.
*/
- protected void setOutputOI(StructObjectInspector outputOI)
- {
+ protected void setOutputOI(StructObjectInspector outputOI) {
evaluator.setOutputOI(outputOI);
}
- public PTFDesc getPtfDesc()
- {
+ public PTFDesc getPtfDesc() {
return ptfDesc;
}
Modified: hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/ptf/WindowingTableFunction.java
URL: http://svn.apache.org/viewvc/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/ptf/WindowingTableFunction.java?rev=1529174&r1=1529173&r2=1529174&view=diff
==============================================================================
--- hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/ptf/WindowingTableFunction.java (original)
+++ hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/ptf/WindowingTableFunction.java Fri Oct 4 14:51:38 2013
@@ -31,13 +31,13 @@ import org.apache.hadoop.hive.ql.parse.S
import org.apache.hadoop.hive.ql.parse.WindowingSpec.BoundarySpec;
import org.apache.hadoop.hive.ql.parse.WindowingSpec.Direction;
import org.apache.hadoop.hive.ql.plan.PTFDesc;
-import org.apache.hadoop.hive.ql.plan.PTFDesc.BoundaryDef;
-import org.apache.hadoop.hive.ql.plan.PTFDesc.PTFExpressionDef;
-import org.apache.hadoop.hive.ql.plan.PTFDesc.PartitionedTableFunctionDef;
-import org.apache.hadoop.hive.ql.plan.PTFDesc.ValueBoundaryDef;
-import org.apache.hadoop.hive.ql.plan.PTFDesc.WindowFrameDef;
-import org.apache.hadoop.hive.ql.plan.PTFDesc.WindowFunctionDef;
-import org.apache.hadoop.hive.ql.plan.PTFDesc.WindowTableFunctionDef;
+import org.apache.hadoop.hive.ql.plan.ptf.BoundaryDef;
+import org.apache.hadoop.hive.ql.plan.ptf.PTFExpressionDef;
+import org.apache.hadoop.hive.ql.plan.ptf.PartitionedTableFunctionDef;
+import org.apache.hadoop.hive.ql.plan.ptf.ValueBoundaryDef;
+import org.apache.hadoop.hive.ql.plan.ptf.WindowFrameDef;
+import org.apache.hadoop.hive.ql.plan.ptf.WindowFunctionDef;
+import org.apache.hadoop.hive.ql.plan.ptf.WindowTableFunctionDef;
import org.apache.hadoop.hive.ql.udf.generic.GenericUDAFEvaluator;
import org.apache.hadoop.hive.ql.udf.generic.GenericUDAFEvaluator.AggregationBuffer;
import org.apache.hadoop.hive.serde2.objectinspector.ObjectInspectorUtils;