You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@pig.apache.org by ch...@apache.org on 2013/08/22 21:27:22 UTC

svn commit: r1516545 - in /pig/trunk: src/org/apache/pig/tools/grunt/GruntParser.java test/org/apache/pig/test/TestMultiQueryBasic.java test/org/apache/pig/test/TestShortcuts.java

Author: cheolsoo
Date: Thu Aug 22 19:27:21 2013
New Revision: 1516545

URL: http://svn.apache.org/r1516545
Log:
PIG-3168: Revert the behavior of explain with no alias

Modified:
    pig/trunk/src/org/apache/pig/tools/grunt/GruntParser.java
    pig/trunk/test/org/apache/pig/test/TestMultiQueryBasic.java
    pig/trunk/test/org/apache/pig/test/TestShortcuts.java

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=1516545&r1=1516544&r2=1516545&view=diff
==============================================================================
--- pig/trunk/src/org/apache/pig/tools/grunt/GruntParser.java (original)
+++ pig/trunk/src/org/apache/pig/tools/grunt/GruntParser.java Thu Aug 22 19:27:21 2013
@@ -316,11 +316,13 @@ public class GruntParser extends PigScri
             mPigServer.parseAndBuild();
         }
         if (alias == null && script == null) {
-            alias = mPigServer.getPigContext().getLastAlias();
-            // if explain is used immediately after launching grunt shell then
-            // last defined alias will be null
-            if (alias == null) {
-                throw new ParseException("'explain' statement must be on an alias or on a script.");
+            if (mInteractive) {
+                alias = mPigServer.getPigContext().getLastAlias();
+                // if explain is used immediately after launching grunt shell then
+                // last defined alias will be null
+                if (alias == null) {
+                    throw new ParseException("'explain' statement must be on an alias or on a script.");
+                }
             }
         }
         if ("@".equals(alias)) {

Modified: pig/trunk/test/org/apache/pig/test/TestMultiQueryBasic.java
URL: http://svn.apache.org/viewvc/pig/trunk/test/org/apache/pig/test/TestMultiQueryBasic.java?rev=1516545&r1=1516544&r2=1516545&view=diff
==============================================================================
--- pig/trunk/test/org/apache/pig/test/TestMultiQueryBasic.java (original)
+++ pig/trunk/test/org/apache/pig/test/TestMultiQueryBasic.java Thu Aug 22 19:27:21 2013
@@ -466,7 +466,7 @@ public class TestMultiQueryBasic {
         "F2  = FOREACH F GENERATE f0, f7, f8;" +
         "I = GROUP F2 BY (f7, f8);" +
         "STORE I into 'foo4'  using BinStorage();" +
-        "explain I;";
+        "explain;";
         myPig.setBatchOn();
         Util.registerMultiLineQuery(myPig, query);
         myPig.executeBatch();

Modified: pig/trunk/test/org/apache/pig/test/TestShortcuts.java
URL: http://svn.apache.org/viewvc/pig/trunk/test/org/apache/pig/test/TestShortcuts.java?rev=1516545&r1=1516544&r2=1516545&view=diff
==============================================================================
--- pig/trunk/test/org/apache/pig/test/TestShortcuts.java (original)
+++ pig/trunk/test/org/apache/pig/test/TestShortcuts.java Thu Aug 22 19:27:21 2013
@@ -57,7 +57,7 @@ public class TestShortcuts {
     }
 
     /**
-     * When no alias is passed, last alias should be explained
+     * When no alias is passed, entire script should be explained
      *
      * @throws Throwable
      */
@@ -74,11 +74,12 @@ public class TestShortcuts {
     }
 
     /**
-     * When no alias is defined earlier, exception is expected
+     * When no alias is defined earlier, empty output is expected. Note that
+     * ParseException is thrown in interactive mode.
      *
      * @throws Throwable
      */
-    @Test(expected = ParseException.class)
+    @Test
     public void testExplainShortcutNoAliasDefined() throws Throwable {
         String cmd = "\\e";
 
@@ -86,7 +87,7 @@ public class TestShortcuts {
         InputStreamReader reader = new InputStreamReader(cmdstream);
 
         Grunt grunt = new Grunt(new BufferedReader(reader), context);
-        grunt.exec();
+        grunt.exec(); // Interactive is set to false.
     }
 
     @Test