Author: rohini Date: Mon May 29 21:46:57 2017 New Revision: 1796704 URL: http://svn.apache.org/viewvc?rev=1796704&view=rev Log: PIG-5184: set command to view value of a variable (daijy via rohini)
Modified: pig/trunk/CHANGES.txt pig/trunk/src/org/apache/pig/PigServer.java pig/trunk/src/org/apache/pig/impl/PigContext.java pig/trunk/src/org/apache/pig/tools/grunt/GruntParser.java pig/trunk/src/org/apache/pig/tools/pigscript/parser/PigScriptParser.jj pig/trunk/test/org/apache/pig/test/TestGrunt.java Modified: pig/trunk/CHANGES.txt URL: http://svn.apache.org/viewvc/pig/trunk/CHANGES.txt?rev=1796704&r1=1796703&r2=1796704&view=diff ============================================================================== --- pig/trunk/CHANGES.txt (original) +++ pig/trunk/CHANGES.txt Mon May 29 21:46:57 2017 @@ -36,6 +36,8 @@ PIG-5067: Revisit union on numeric type  IMPROVEMENTS +PIG-5184: set command to view value of a variable (daijy via rohini) + PIG-4059: Pig On Spark PIG-5188: Review pig-index.xml (szita) Modified: pig/trunk/src/org/apache/pig/PigServer.java URL: http://svn.apache.org/viewvc/pig/trunk/src/org/apache/pig/PigServer.java?rev=1796704&r1=1796703&r2=1796704&view=diff ============================================================================== --- pig/trunk/src/org/apache/pig/PigServer.java (original) +++ pig/trunk/src/org/apache/pig/PigServer.java Mon May 29 21:46:57 2017 @@ -43,6 +43,7 @@ import java.util.Queue; import java.util.Set; import java.util.concurrent.atomic.AtomicInteger; +import org.apache.commons.lang.StringUtils; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.apache.hadoop.conf.Configuration; @@ -1983,4 +1984,21 @@ public class PigServer { public String getLastRel() { return currDAG.getLastRel(); } + + public boolean isDebugOn() { + if (Logger.getLogger("org.apache.pig").getLevel() == Level.DEBUG) { + return true; + } else { + return false; + } + } + + public String getJobName() { + return jobName; + } + + public String getJobPriority() { + return jobPriority; + } + } Modified: pig/trunk/src/org/apache/pig/impl/PigContext.java URL: http://svn.apache.org/viewvc/pig/trunk/src/org/apache/pig/impl/PigContext.java?rev=1796704&r1=1796703&r2=1796704&view=diff ============================================================================== --- pig/trunk/src/org/apache/pig/impl/PigContext.java (original) +++ pig/trunk/src/org/apache/pig/impl/PigContext.java Mon May 29 21:46:57 2017 @@ -902,6 +902,11 @@ public class PigContext implements Seria { defaultLogLevel = l; } + + public int getDefaultParallel() { + return defaultParallel; + } + public static ClassLoader getClassLoader() { return classloader; } Modified: pig/trunk/src/org/apache/pig/tools/grunt/GruntParser.java URL: http://svn.apache.org/viewvc/pig/trunk/src/org/apache/pig/tools/grunt/GruntParser.java?rev=1796704&r1=1796703&r2=1796704&view=diff ============================================================================== --- pig/trunk/src/org/apache/pig/tools/grunt/GruntParser.java (original) +++ pig/trunk/src/org/apache/pig/tools/grunt/GruntParser.java Mon May 29 21:46:57 2017 @@ -44,6 +44,7 @@ import java.util.Set; import jline.console.ConsoleReader; import org.apache.commons.io.output.NullOutputStream; +import org.apache.commons.lang.StringUtils; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.apache.hadoop.fs.FileSystem; @@ -575,41 +576,69 @@ public class GruntParser extends PigScri value = parameterSubstitutionInGrunt(value); if (key.equals("debug")) { - if (value.equals("on")) - mPigServer.debugOn(); - else if (value.equals("off")) - mPigServer.debugOff(); - else - throw new ParseException("Invalid value " + value + " provided for " + key); + if (value != null) { + if (value.equals("on")) + mPigServer.debugOn(); + else if (value.equals("off")) + mPigServer.debugOff(); + else + throw new ParseException("Invalid value " + value + " provided for " + key); + } else { + System.out.println(key + "=" + mPigServer.isDebugOn()); + } } else if (key.equals("job.name")) { - mPigServer.setJobName(value); + if (value != null) { + mPigServer.setJobName(value); + } else { + System.out.println(key + "=" + mPigServer.getJobName()); + } } else if (key.equals("job.priority")) { - mPigServer.setJobPriority(value); + if (value != null) { + mPigServer.setJobPriority(value); + } else { + System.out.println(key + "=" + mPigServer.getJobPriority()); + } } else if (key.equals("stream.skippath")) { - // Validate - File file = new File(value); - if (!file.exists() || file.isDirectory()) { - throw new IOException("Invalid value for stream.skippath:" + - value); + if (value != null) { + // Validate + File file = new File(value); + if (!file.exists() || file.isDirectory()) { + throw new IOException("Invalid value for stream.skippath:" + + value); + } + mPigServer.addPathToSkip(value); + } else { + System.out.println(key + "=" + StringUtils.join(mPigServer.getPigContext().getPathsToSkip(), ",")); } - mPigServer.addPathToSkip(value); } else if (key.equals("default_parallel")) { - // Validate - try { - mPigServer.setDefaultParallel(Integer.parseInt(value)); - } catch (NumberFormatException e) { - throw new ParseException("Invalid value for default_parallel"); + if (value != null) { + // Validate + try { + mPigServer.setDefaultParallel(Integer.parseInt(value)); + } catch (NumberFormatException e) { + throw new ParseException("Invalid value for default_parallel"); + } + } else { + System.out.println(key + "=" + mPigServer.getPigContext().getDefaultParallel()); } } else { - mPigServer.getPigContext().getExecutionEngine().setProperty(key, value); + if (value != null) { + mPigServer.getPigContext().getExecutionEngine().setProperty(key, value); + } else { + if (mPigServer.getPigContext().getProperties().containsKey(key)) { + System.out.println(key + "=" + mPigServer.getPigContext().getProperties().getProperty(key)); + } else { + System.out.println(key + " is not defined"); + } + } } } Modified: pig/trunk/src/org/apache/pig/tools/pigscript/parser/PigScriptParser.jj URL: http://svn.apache.org/viewvc/pig/trunk/src/org/apache/pig/tools/pigscript/parser/PigScriptParser.jj?rev=1796704&r1=1796703&r2=1796704&view=diff ============================================================================== --- pig/trunk/src/org/apache/pig/tools/pigscript/parser/PigScriptParser.jj (original) +++ pig/trunk/src/org/apache/pig/tools/pigscript/parser/PigScriptParser.jj Mon May 29 21:46:57 2017 @@ -132,6 +132,13 @@ public abstract class PigScriptParser else return s; } + static boolean eolOrSemicolon(int kind) { + if (kind == EOL || kind == SEMICOLON) { + return true; + } else { + return false; + } + } } PARSER_END(PigScriptParser) @@ -626,8 +633,8 @@ void parse() throws IOException: <SET> ( t1 = GetKey() - t2 = GetValue() - {processSet(t1.image, unquote(t2.image));} + t2 = GetValueOrNull() + {processSet(t1.image, eolOrSemicolon(t2.kind)?null:unquote(t2.image));} | {processSet();} ) @@ -828,6 +835,22 @@ Token GetKey() : {return t;} } +Token GetValueOrNull() : +{ + Token t; +} +{ + ( + t = GetValue() + | + t = <EOL> + | + t = <SEMICOLON> + ) + + {return t;} +} + Token GetValue() : { Token t; Modified: pig/trunk/test/org/apache/pig/test/TestGrunt.java URL: http://svn.apache.org/viewvc/pig/trunk/test/org/apache/pig/test/TestGrunt.java?rev=1796704&r1=1796703&r2=1796704&view=diff ============================================================================== --- pig/trunk/test/org/apache/pig/test/TestGrunt.java (original) +++ pig/trunk/test/org/apache/pig/test/TestGrunt.java Mon May 29 21:46:57 2017 @@ -24,6 +24,7 @@ import static org.junit.Assert.fail; import java.io.BufferedReader; import java.io.ByteArrayInputStream; +import java.io.ByteArrayOutputStream; import java.io.File; import java.io.FileInputStream; import java.io.FileReader; @@ -32,6 +33,7 @@ import java.io.FilenameFilter; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; +import java.io.PrintStream; import java.io.PrintWriter; import java.io.StringReader; import java.util.ArrayList; @@ -1517,6 +1519,14 @@ public class TestGrunt { new Grunt(new BufferedReader(reader), pc).exec(); assertEquals("my.arbitrary.value", pc.getProperties().getProperty("my.arbitrary.key")); + + ByteArrayOutputStream baos = new ByteArrayOutputStream(); + System.setOut(new PrintStream(baos)); + strCmd = "set my.arbitrary.key\n"; + reader = new InputStreamReader(new ByteArrayInputStream(strCmd.getBytes())); + new Grunt(new BufferedReader(reader), pc).exec(); + + assertEquals(baos.toString(), "my.arbitrary.key=my.arbitrary.value\n"); } @Test