You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@pig.apache.org by da...@apache.org on 2010/10/20 20:11:33 UTC

svn commit: r1025658 - in /pig/trunk: CHANGES.txt src/org/apache/pig/tools/pigstats/PigStatsUtil.java test/org/apache/pig/test/TestPigRunner.java

Author: daijy
Date: Wed Oct 20 18:11:33 2010
New Revision: 1025658

URL: http://svn.apache.org/viewvc?rev=1025658&view=rev
Log:
PIG-1685: Pig is unable to handle counters for glob paths ?

Modified:
    pig/trunk/CHANGES.txt
    pig/trunk/src/org/apache/pig/tools/pigstats/PigStatsUtil.java
    pig/trunk/test/org/apache/pig/test/TestPigRunner.java

Modified: pig/trunk/CHANGES.txt
URL: http://svn.apache.org/viewvc/pig/trunk/CHANGES.txt?rev=1025658&r1=1025657&r2=1025658&view=diff
==============================================================================
--- pig/trunk/CHANGES.txt (original)
+++ pig/trunk/CHANGES.txt Wed Oct 20 18:11:33 2010
@@ -209,6 +209,8 @@ PIG-1309: Map-side Cogroup (ashutoshc)
 
 BUG FIXES
 
+PIG-1685: Pig is unable to handle counters for glob paths ? (daijy)
+
 PIG-1683: New logical plan: Nested foreach plan fail if one inner alias is refered more than once (daijy)
 
 PIG-1542: log level not propogated to MR task loggers (nrai via daijy)

Modified: pig/trunk/src/org/apache/pig/tools/pigstats/PigStatsUtil.java
URL: http://svn.apache.org/viewvc/pig/trunk/src/org/apache/pig/tools/pigstats/PigStatsUtil.java?rev=1025658&r1=1025657&r2=1025658&view=diff
==============================================================================
--- pig/trunk/src/org/apache/pig/tools/pigstats/PigStatsUtil.java (original)
+++ pig/trunk/src/org/apache/pig/tools/pigstats/PigStatsUtil.java Wed Oct 20 18:11:33 2010
@@ -106,12 +106,7 @@ public abstract class PigStatsUtil {
      * @return the counter name 
      */
     public static String getMultiStoreCounterName(POStore store) {
-        String shortName = null;
-        try {
-            shortName = getShortName(new URI(store.getSFile().getFileName()));
-        } catch (URISyntaxException e) {
-            LOG.warn("Invalid syntax for output location", e);
-        }
+        String shortName = getShortName(store.getSFile().getFileName());
         return (shortName == null) ? null 
                 : MULTI_STORE_RECORD_COUNTER + shortName;
     }
@@ -123,12 +118,7 @@ public abstract class PigStatsUtil {
      * @return the counter name
      */
     public static String getMultiInputsCounterName(String fname) {
-        String shortName = null;
-        try {
-            shortName = getShortName(new URI(fname));            
-        } catch (URISyntaxException e) {
-            LOG.warn("Invalid syntax for input location", e);
-        }
+        String shortName = getShortName(fname);            
         return (shortName == null) ? null 
                 : MULTI_INPUTS_RECORD_COUNTER + shortName;
     }
@@ -136,23 +126,21 @@ public abstract class PigStatsUtil {
     private static final String SEPARATOR = "/";
     private static final String SEMICOLON = ";";
     
-    private static String getShortName(URI uri) {  
-        String path = uri.getPath();
-        if (path != null) {
-            int slash = path.lastIndexOf(SEPARATOR);
-            return path.substring(slash+1);
-        } 
-        // for cases such as
-        // "jdbc:hsqldb:file:/tmp/batchtest;hsqldb.default_table_type=cached;hsqldb.cache_rows=100"
-        path = uri.getSchemeSpecificPart();
-        if (path != null) {
-            int slash = path.lastIndexOf(SEPARATOR);
-            int scolon = path.indexOf(SEMICOLON);
-            if (slash < scolon) {
-                return path.substring(slash+1, scolon);
-            }
+    private static String getShortName(String uri) {  
+        int scolon = uri.indexOf(SEMICOLON);
+        int slash;
+        if (scolon!=-1) {
+            slash = uri.lastIndexOf(SEPARATOR, scolon);
+        } else {
+            slash = uri.lastIndexOf(SEPARATOR);
+        }
+        if (scolon==-1) {
+            return uri.substring(slash+1);
+        }
+        if (slash < scolon) {
+            return uri.substring(slash+1, scolon);
         }
-        return null;       
+        return null;
     }
            
     /**

Modified: pig/trunk/test/org/apache/pig/test/TestPigRunner.java
URL: http://svn.apache.org/viewvc/pig/trunk/test/org/apache/pig/test/TestPigRunner.java?rev=1025658&r1=1025657&r2=1025658&view=diff
==============================================================================
--- pig/trunk/test/org/apache/pig/test/TestPigRunner.java (original)
+++ pig/trunk/test/org/apache/pig/test/TestPigRunner.java Wed Oct 20 18:11:33 2010
@@ -419,6 +419,12 @@ public class TestPigRunner {
         String s = "jdbc:hsqldb:file:/tmp/batchtest;hsqldb.default_table_type=cached;hsqldb.cache_rows=100";
         String name = PigStatsUtil.getMultiInputsCounterName(s);
         assertEquals(PigStatsUtil.MULTI_INPUTS_RECORD_COUNTER + "batchtest", name);
+        s = "file:///tmp/batchtest{1,2}.txt";
+        name = PigStatsUtil.getMultiInputsCounterName(s);
+        assertEquals(PigStatsUtil.MULTI_INPUTS_RECORD_COUNTER + "batchtest{1,2}.txt", name);
+        s = "file:///tmp/batchtest*.txt";
+        name = PigStatsUtil.getMultiInputsCounterName(s);
+        assertEquals(PigStatsUtil.MULTI_INPUTS_RECORD_COUNTER + "batchtest*.txt", name);
     }
     
     @Test