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


Reply via email to