diff --git ql/src/java/org/apache/hadoop/hive/ql/parse/PTFTranslator.java ql/src/java/org/apache/hadoop/hive/ql/parse/PTFTranslator.java index 11c64d6..c78b8d6 100644 --- ql/src/java/org/apache/hadoop/hive/ql/parse/PTFTranslator.java +++ ql/src/java/org/apache/hadoop/hive/ql/parse/PTFTranslator.java @@ -689,7 +689,7 @@ static void setupWdwFnEvaluator(WindowFunctionDef def) throws HiveException GenericUDAFEvaluator wFnEval = FunctionRegistry.getGenericUDAFEvaluator(def.getName(), argOIs, def.isDistinct(), def.isStar()); ObjectInspector OI = wFnEval.init(GenericUDAFEvaluator.Mode.COMPLETE, funcArgOIs); - def.setwFnEval(wFnEval); + def.setWFnEval(wFnEval); def.setOI(OI); } diff --git ql/src/java/org/apache/hadoop/hive/ql/plan/PTFDesc.java ql/src/java/org/apache/hadoop/hive/ql/plan/PTFDesc.java index d210582..a0b86e6 100644 --- ql/src/java/org/apache/hadoop/hive/ql/plan/PTFDesc.java +++ ql/src/java/org/apache/hadoop/hive/ql/plan/PTFDesc.java @@ -407,13 +407,9 @@ public void setAlias(String alias) { boolean isDistinct; ArrayList args; WindowFrameDef windowFrame; - transient GenericUDAFEvaluator wFnEval; + GenericUDAFEvaluator wFnEval; boolean pivotResult; - static{ - PTFUtils.makeTransient(WindowFunctionDef.class, "wFnEval"); - } - public String getName() { return name; } @@ -459,11 +455,11 @@ public void setWindowFrame(WindowFrameDef windowFrame) { this.windowFrame = windowFrame; } - public GenericUDAFEvaluator getwFnEval() { + public GenericUDAFEvaluator getWFnEval() { return wFnEval; } - public void setwFnEval(GenericUDAFEvaluator wFnEval) { + public void setWFnEval(GenericUDAFEvaluator wFnEval) { this.wFnEval = wFnEval; } diff --git ql/src/java/org/apache/hadoop/hive/ql/plan/PTFDeserializer.java ql/src/java/org/apache/hadoop/hive/ql/plan/PTFDeserializer.java index 5954fa0..2aef84e 100644 --- ql/src/java/org/apache/hadoop/hive/ql/plan/PTFDeserializer.java +++ ql/src/java/org/apache/hadoop/hive/ql/plan/PTFDeserializer.java @@ -26,7 +26,6 @@ import org.apache.hadoop.hive.conf.HiveConf; import org.apache.hadoop.hive.ql.exec.ExprNodeEvaluator; -import org.apache.hadoop.hive.ql.exec.FunctionRegistry; import org.apache.hadoop.hive.ql.metadata.HiveException; import org.apache.hadoop.hive.ql.parse.PTFTranslator.LeadLagInfo; import org.apache.hadoop.hive.ql.parse.WindowingExprNodeEvaluatorFactory; @@ -226,9 +225,6 @@ protected void initialize(PartitionedTableFunctionDef def) throws HiveException initialize(def.getOutputShape()); } - /* - * consider getting rid of this step. During runtime just invoke GenericUDAFEvaluator.init - */ static void setupWdwFnEvaluator(WindowFunctionDef def) throws HiveException { ArrayList args = def.getArgs(); @@ -243,11 +239,9 @@ static void setupWdwFnEvaluator(WindowFunctionDef def) throws HiveException funcArgOIs = argOIs.toArray(funcArgOIs); } - GenericUDAFEvaluator wFnEval = FunctionRegistry.getGenericUDAFEvaluator( - def.getName(), argOIs, - def.isDistinct(), def.isStar()); + GenericUDAFEvaluator wFnEval = def.getWFnEval(); ObjectInspector OI = wFnEval.init(GenericUDAFEvaluator.Mode.COMPLETE, funcArgOIs); - def.setwFnEval(wFnEval); + def.setWFnEval(wFnEval); def.setOI(OI); } diff --git ql/src/java/org/apache/hadoop/hive/ql/udf/ptf/WindowingTableFunction.java ql/src/java/org/apache/hadoop/hive/ql/udf/ptf/WindowingTableFunction.java index 0010d0d..562ab19 100644 --- ql/src/java/org/apache/hadoop/hive/ql/udf/ptf/WindowingTableFunction.java +++ ql/src/java/org/apache/hadoop/hive/ql/udf/ptf/WindowingTableFunction.java @@ -84,7 +84,7 @@ public void execute(PTFPartitionIterator pItr, PTFPartition outP) throws pItr.reset(); if ( !processWindow ) { - GenericUDAFEvaluator fEval = wFn.getwFnEval(); + GenericUDAFEvaluator fEval = wFn.getWFnEval(); Object[] args = new Object[wFn.getArgs() == null ? 0 : wFn.getArgs().size()]; AggregationBuffer aggBuffer = fEval.getNewAggregationBuffer(); while(pItr.hasNext()) @@ -210,7 +210,7 @@ public boolean carryForwardNames() { { ArrayList vals = new ArrayList(); - GenericUDAFEvaluator fEval = wFnDef.getwFnEval(); + GenericUDAFEvaluator fEval = wFnDef.getWFnEval(); Object[] args = new Object[wFnDef.getArgs().size()]; for(int i=0; i < iPart.size(); i++) { diff --git ql/src/test/queries/clientpositive/ptf_general_queries.q ql/src/test/queries/clientpositive/ptf_general_queries.q index 98eef29..20c40cd 100644 --- ql/src/test/queries/clientpositive/ptf_general_queries.q +++ ql/src/test/queries/clientpositive/ptf_general_queries.q @@ -28,8 +28,6 @@ FL_NUM string LOAD DATA LOCAL INPATH '../data/files/flights_tiny.txt' OVERWRITE INTO TABLE flights_tiny; -set hive.ptf.partition.persistence.memsize=10485760; - --1. test1 select p_mfgr, p_name, p_size, rank() as r,