You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tajo.apache.org by ji...@apache.org on 2016/01/06 08:57:34 UTC

tajo git commit: TAJO-2034: Files required for executing python functions are not copied in testEval().

Repository: tajo
Updated Branches:
  refs/heads/master f44f92fb0 -> 84ff9272e


TAJO-2034: Files required for executing python functions are not copied in testEval().

Closes #925


Project: http://git-wip-us.apache.org/repos/asf/tajo/repo
Commit: http://git-wip-us.apache.org/repos/asf/tajo/commit/84ff9272
Tree: http://git-wip-us.apache.org/repos/asf/tajo/tree/84ff9272
Diff: http://git-wip-us.apache.org/repos/asf/tajo/diff/84ff9272

Branch: refs/heads/master
Commit: 84ff9272e977ab45c8be6f9a5ac1a6b846084caf
Parents: f44f92f
Author: Jihoon Son <ji...@apache.org>
Authored: Wed Jan 6 16:57:15 2016 +0900
Committer: Jihoon Son <ji...@apache.org>
Committed: Wed Jan 6 16:57:15 2016 +0900

----------------------------------------------------------------------
 CHANGES                                            |  3 +++
 .../org/apache/tajo/engine/eval/ExprTestBase.java  | 17 +++++++++++++++--
 2 files changed, 18 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/tajo/blob/84ff9272/CHANGES
----------------------------------------------------------------------
diff --git a/CHANGES b/CHANGES
index 2184cde..62f889f 100644
--- a/CHANGES
+++ b/CHANGES
@@ -71,6 +71,9 @@ Release 0.12.0 - unreleased
 
   BUG FIXES
 
+    TAJO-2034: Files required for executing python functions are not copied in 
+    testEval(). (jihoon)
+
     TAJO-2037: tajo-storage-hdfs tests occasionally hangs. (jinho)
 
     TAJO-2025: HBASE_LIB/metrics-core-*.jar should be included in CLASSPATH.

http://git-wip-us.apache.org/repos/asf/tajo/blob/84ff9272/tajo-core-tests/src/test/java/org/apache/tajo/engine/eval/ExprTestBase.java
----------------------------------------------------------------------
diff --git a/tajo-core-tests/src/test/java/org/apache/tajo/engine/eval/ExprTestBase.java b/tajo-core-tests/src/test/java/org/apache/tajo/engine/eval/ExprTestBase.java
index 602d566..e52d3a0 100644
--- a/tajo-core-tests/src/test/java/org/apache/tajo/engine/eval/ExprTestBase.java
+++ b/tajo-core-tests/src/test/java/org/apache/tajo/engine/eval/ExprTestBase.java
@@ -34,15 +34,19 @@ import org.apache.tajo.engine.codegen.EvalCodeGenerator;
 import org.apache.tajo.engine.codegen.TajoClassLoader;
 import org.apache.tajo.engine.function.FunctionLoader;
 import org.apache.tajo.engine.json.CoreGsonHelper;
-import org.apache.tajo.parser.sql.SQLAnalyzer;
 import org.apache.tajo.engine.query.QueryContext;
 import org.apache.tajo.exception.TajoException;
 import org.apache.tajo.exception.TajoInternalError;
 import org.apache.tajo.function.FunctionSignature;
 import org.apache.tajo.master.exec.QueryExecutor;
-import org.apache.tajo.plan.*;
+import org.apache.tajo.parser.sql.SQLAnalyzer;
+import org.apache.tajo.plan.LogicalOptimizer;
+import org.apache.tajo.plan.LogicalPlan;
+import org.apache.tajo.plan.LogicalPlanner;
+import org.apache.tajo.plan.Target;
 import org.apache.tajo.plan.expr.EvalContext;
 import org.apache.tajo.plan.expr.EvalNode;
+import org.apache.tajo.plan.function.python.PythonScriptEngine;
 import org.apache.tajo.plan.serder.EvalNodeDeserializer;
 import org.apache.tajo.plan.serder.EvalNodeSerializer;
 import org.apache.tajo.plan.serder.PlanProto;
@@ -60,6 +64,7 @@ import org.apache.tajo.util.datetime.DateTimeUtil;
 import org.junit.AfterClass;
 import org.junit.BeforeClass;
 
+import java.io.File;
 import java.io.IOException;
 import java.util.ArrayList;
 import java.util.List;
@@ -278,6 +283,9 @@ public class ExprTestBase {
     EvalContext evalContext = new EvalContext();
 
     try {
+      if (needPythonFileCopy()) {
+        PythonScriptEngine.initPythonScriptEngineFiles();
+      }
       targets = getRawTargets(queryContext, query, condition);
 
       EvalCodeGenerator codegen = null;
@@ -335,6 +343,11 @@ public class ExprTestBase {
     }
   }
 
+  private static boolean needPythonFileCopy() {
+    File contoller = new File(PythonScriptEngine.getControllerPath());
+    return !contoller.exists();
+  }
+
   public static void assertEvalTreeProtoSerDer(OverridableConf context, EvalNode evalNode) {
     PlanProto.EvalNodeTree converted = EvalNodeSerializer.serialize(evalNode);
     assertEquals(evalNode, EvalNodeDeserializer.deserialize(context, null, converted));