PIG-5185: Job name show "DefaultJobName" when running a Python script
git-svn-id: https://svn.apache.org/repos/asf/pig/trunk@1796119 13f79535-47bb-0310-9956-ffa450edef68
diff --git a/CHANGES.txt b/CHANGES.txt
index d6fcf6c..4790219 100644
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@ -97,6 +97,8 @@
BUG FIXES
+PIG-5185: Job name show "DefaultJobName" when running a Python script (daijy)
+
PIG-4748: DateTimeWritable forgets Chronology (szita)
PIG-5229: TestPigTest.testSpecificOrderOutput and testSpecificOrderOutputForAlias failing (knoguchi)
diff --git a/src/org/apache/pig/scripting/BoundScript.java b/src/org/apache/pig/scripting/BoundScript.java
index 3416499..c50f45b 100644
--- a/src/org/apache/pig/scripting/BoundScript.java
+++ b/src/org/apache/pig/scripting/BoundScript.java
@@ -17,6 +17,7 @@
*/
package org.apache.pig.scripting;
+import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.StringReader;
@@ -264,13 +265,18 @@
LOG.info("Query to run:\n" + query);
List<PigProgressNotificationListener> listeners = ScriptState.get().getAllListeners();
PigContext pc = scriptContext.getPigContext();
+ String scriptName = new File(ScriptState.get().getFileName()).getName();
ScriptState scriptState = pc.getExecutionEngine().instantiateScriptState();
+ scriptState.setFileName(scriptName);
ScriptState.start(scriptState);
ScriptState.get().setScript(query);
for (PigProgressNotificationListener listener : listeners) {
ScriptState.get().registerListener(listener);
}
PigServer pigServer = new PigServer(scriptContext.getPigContext(), false);
+ if (!pigServer.getPigContext().getProperties().containsKey("jobName")) {
+ pigServer.setJobName(scriptName);
+ }
GruntParser grunt = new GruntParser(new StringReader(query), pigServer);
grunt.setInteractive(false);
try {
diff --git a/test/org/apache/pig/test/TestScriptLanguage.java b/test/org/apache/pig/test/TestScriptLanguage.java
index 79571f5..1e1aa55 100644
--- a/test/org/apache/pig/test/TestScriptLanguage.java
+++ b/test/org/apache/pig/test/TestScriptLanguage.java
@@ -31,6 +31,7 @@
import org.apache.pig.PigRunner;
import org.apache.pig.PigServer;
import org.apache.pig.data.Tuple;
+import org.apache.pig.impl.PigContext;
import org.apache.pig.scripting.ScriptEngine;
import org.apache.pig.tools.pigstats.OutputStats;
import org.apache.pig.tools.pigstats.PigStats;
@@ -248,6 +249,8 @@
assertEquals("simple_out", name);
assertEquals(12, stats.getBytesWritten());
assertEquals(3, stats.getRecordWritten());
+ String jobName = stats.getPigProperties().getProperty(PigContext.JOB_NAME);
+ assertTrue(jobName.contains("pigRunnerTest"));
}
@Test
@@ -260,6 +263,7 @@
"Pig.fs(\"rmr simple_out2\")",
"output1 = 'simple_out'",
"output2 = 'simple_out2'",
+ "P.set(\"jobName\", \"myjob\")",
"P = Pig.compile(\"mypipeline\", \"\"\"a = load '$input';store a into '$output';\"\"\")",
"Q = P.bind([{'input':input, 'output':output1}, {'input':input, 'output':output2}])",
"stats = Q.run()"
@@ -284,6 +288,8 @@
assertEquals(1, stats.getNumberJobs());
assertEquals(12, stats.getBytesWritten());
assertEquals(3, stats.getRecordWritten());
+ String jobName = stats.getPigProperties().getProperty(PigContext.JOB_NAME);
+ assertTrue(jobName.contains("myjob"));
}
}